// ============================================================
// CONTAX · ICONS — Lucide-style line icons
// ============================================================

const Icon = ({ d, size = 18, stroke = 1.6, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d}
  </svg>
);

const I = {
  Home: (p) => <Icon {...p} d={<><path d="M3 12l9-9 9 9"/><path d="M5 10v10a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1V10"/></>}/>,
  Box:  (p) => <Icon {...p} d={<><path d="M3 7l9-4 9 4v10l-9 4-9-4V7z"/><path d="M3 7l9 4 9-4"/><path d="M12 11v10"/></>}/>,
  Receipt: (p) => <Icon {...p} d={<><path d="M5 3h14v18l-3-2-2 2-2-2-2 2-2-2-3 2V3z"/><path d="M9 8h6M9 12h6M9 16h4"/></>}/>,
  FileText: (p) => <Icon {...p} d={<><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M14 3v6h6"/><path d="M9 13h6M9 17h6"/></>}/>,
  Smartphone: (p) => <Icon {...p} d={<><rect x="6" y="2" width="12" height="20" rx="2"/><path d="M11 18h2"/></>}/>,
  ChevronLeft: (p) => <Icon {...p} d={<path d="M15 18l-6-6 6-6"/>}/>,
  ChevronRight: (p) => <Icon {...p} d={<path d="M9 18l6-6-6-6"/>}/>,
  ChevronDown: (p) => <Icon {...p} d={<path d="M6 9l6 6 6-6"/>}/>,
  ChevronUp: (p) => <Icon {...p} d={<path d="M18 15l-6-6-6 6"/>}/>,
  ArrowUp: (p) => <Icon {...p} d={<><path d="M12 19V5"/><path d="M5 12l7-7 7 7"/></>}/>,
  ArrowDown: (p) => <Icon {...p} d={<><path d="M12 5v14"/><path d="M19 12l-7 7-7-7"/></>}/>,
  ArrowUpRight: (p) => <Icon {...p} d={<><path d="M7 17L17 7"/><path d="M7 7h10v10"/></>}/>,
  ArrowDownRight: (p) => <Icon {...p} d={<><path d="M7 7l10 10"/><path d="M17 7v10H7"/></>}/>,
  Bell: (p) => <Icon {...p} d={<><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9z"/><path d="M10 21a2 2 0 0 0 4 0"/></>}/>,
  Sun: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></>}/>,
  Moon: (p) => <Icon {...p} d={<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>}/>,
  Search: (p) => <Icon {...p} d={<><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></>}/>,
  Plus: (p) => <Icon {...p} d={<><path d="M12 5v14"/><path d="M5 12h14"/></>}/>,
  Filter: (p) => <Icon {...p} d={<path d="M22 3H2l8 9v7l4 2v-9l8-9z"/>}/>,
  Download: (p) => <Icon {...p} d={<><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M7 10l5 5 5-5"/><path d="M12 15V3"/></>}/>,
  Settings: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></>}/>,
  LogOut: (p) => <Icon {...p} d={<><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="M16 17l5-5-5-5"/><path d="M21 12H9"/></>}/>,
  Check: (p) => <Icon {...p} d={<path d="M20 6L9 17l-5-5"/>}/>,
  X: (p) => <Icon {...p} d={<><path d="M18 6L6 18"/><path d="M6 6l18 18"/></>}/>,
  Camera: (p) => <Icon {...p} d={<><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></>}/>,
  Wifi: (p) => <Icon {...p} d={<><path d="M5 13a10 10 0 0 1 14 0"/><path d="M8.5 16.5a5 5 0 0 1 7 0"/><path d="M12 20h0"/></>}/>,
  TrendingUp: (p) => <Icon {...p} d={<><path d="M22 7l-9.5 9.5-5-5L1 18"/><path d="M16 7h6v6"/></>}/>,
  TrendingDown: (p) => <Icon {...p} d={<><path d="M22 17l-9.5-9.5-5 5L1 6"/><path d="M16 17h6v-6"/></>}/>,
  Calendar: (p) => <Icon {...p} d={<><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></>}/>,
  PiggyBank: (p) => <Icon {...p} d={<><path d="M19 5c-1.5 0-2.8 1.4-3 2-3.5-1.5-7.5-1.5-11 0V13a4 4 0 0 0 4 4h6a4 4 0 0 0 4-4v-1l1.5-2L21 9V7c0-1-1-2-2-2z"/><path d="M9 12h0"/></>}/>,
  Coins: (p) => <Icon {...p} d={<><circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18M7 6h1v4M16.71 13.88l.7.71-2.82 2.82"/></>}/>,
  Layers: (p) => <Icon {...p} d={<><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></>}/>,
  PanelLeft: (p) => <Icon {...p} d={<><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18"/></>}/>,
  MoreHorizontal: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></>}/>,
  Zap: (p) => <Icon {...p} d={<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>}/>,
  Building: (p) => <Icon {...p} d={<><path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18"/><path d="M2 22h20"/><path d="M10 6h4M10 10h4M10 14h4M10 18h4"/></>}/>,
  Edit3: (p) => <Icon {...p} d={<><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></>}/>,
  AlertCircle: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="10"/><path d="M12 8v4M12 16h.01"/></>}/>,
  Loader: (p) => <Icon {...p} d={<><path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83"/></>}/>,
  Battery: (p) => <Icon {...p} d={<><rect x="2" y="7" width="18" height="10" rx="2"/><path d="M22 11v2"/><rect x="4" y="9" width="14" height="6" rx="1" fill="currentColor" stroke="none"/></>}/>,
  AlertTriangle: (p) => <Icon {...p} d={<><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><path d="M12 9v4M12 17h.01"/></>}/>,
  HelpCircle: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></>}/>,
  List: (p) => <Icon {...p} d={<><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"/></>}/>,
};

window.I = I;
