// Minimal line-icons (Lucide-style). 18x18 default.
const I = ({ d, size = 18, stroke = 1.6, fill = "none" }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round">
    {d}
  </svg>
);

const Icon = {
  Dashboard: (p) => <I {...p} d={<><rect x="3" y="3" width="7" height="9" /><rect x="14" y="3" width="7" height="5" /><rect x="14" y="12" width="7" height="9" /><rect x="3" y="16" width="7" height="5" /></>} />,
  Receipt: (p) => <I {...p} d={<><path d="M4 3h16v18l-3-2-3 2-3-2-3 2-3-2-1 2z"/><path d="M8 8h8M8 12h8M8 16h5"/></>} />,
  Broadcast: (p) => <I {...p} d={<><circle cx="12" cy="12" r="2"/><path d="M16.24 7.76a6 6 0 0 1 0 8.49M7.76 7.76a6 6 0 0 0 0 8.49M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"/></>} />,
  File: (p) => <I {...p} d={<><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></>} />,
  Wallet: (p) => <I {...p} d={<><path d="M20 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2zM16 12h3"/><path d="M2 9V6a2 2 0 0 1 2-2h14v3"/></>} />,
  Mosque: (p) => <I {...p} d={<><path d="M12 2c-2 3-4 5-4 8v3"/><path d="M12 2c2 3 4 5 4 8v3"/><path d="M4 21v-8a4 4 0 0 1 4-4"/><path d="M20 21v-8a4 4 0 0 0-4-4"/><path d="M4 21h16M10 21v-5a2 2 0 0 1 4 0v5"/></>} />,
  Chart: (p) => <I {...p} d={<><path d="M3 3v18h18"/><path d="M7 15l4-4 4 3 5-7"/></>} />,
  Calendar: (p) => <I {...p} d={<><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></>} />,
  Settings: (p) => <I {...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-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.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.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.33h0a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h0a1.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.82v0a1.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"/></>} />,
  Search: (p) => <I {...p} d={<><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></>} />,
  Bell: (p) => <I {...p} d={<><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></>} />,
  Plus: (p) => <I {...p} d={<><path d="M12 5v14M5 12h14"/></>} />,
  Arrow: (p) => <I {...p} d={<><path d="M5 12h14M12 5l7 7-7 7"/></>} />,
  ArrowDown: (p) => <I {...p} d={<><path d="M12 5v14M5 12l7 7 7-7"/></>} />,
  ArrowUp: (p) => <I {...p} d={<><path d="M12 19V5M5 12l7-7 7 7"/></>} />,
  Check: (p) => <I {...p} d={<><path d="M20 6 9 17l-5-5"/></>} />,
  X: (p) => <I {...p} d={<><path d="M18 6 6 18M6 6l12 12"/></>} />,
  AlertTri: (p) => <I {...p} d={<><path d="m10.29 3.86-8.68 15a2 2 0 0 0 1.71 3h17.36a2 2 0 0 0 1.71-3l-8.68-15a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01"/></>} />,
  Clock: (p) => <I {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>} />,
  Sparkle: (p) => <I {...p} d={<><path d="M12 3l2.5 6.5L21 12l-6.5 2.5L12 21l-2.5-6.5L3 12l6.5-2.5z"/></>} />,
  Download: (p) => <I {...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-5M12 15V3"/></>} />,
  Filter: (p) => <I {...p} d={<><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></>} />,
  Shield: (p) => <I {...p} d={<><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/></>} />,
  Building: (p) => <I {...p} d={<><rect x="4" y="2" width="16" height="20" rx="1"/><path d="M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01"/></>} />,
  Globe: (p) => <I {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a15 15 0 0 1 0 18M12 3a15 15 0 0 0 0 18"/></>} />,
  Bot: (p) => <I {...p} d={<><rect x="3" y="8" width="18" height="12" rx="2"/><path d="M12 2v4M8 14h.01M16 14h.01M9 18h6"/></>} />,
  Plug: (p) => <I {...p} d={<><path d="M12 22v-5M9 8V2M15 8V2M5 10h14l-2 8a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2z"/></>} />,
  Eye: (p) => <I {...p} d={<><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></>} />,
  More: (p) => <I {...p} d={<><circle cx="12" cy="12" r="1"/><circle cx="5" cy="12" r="1"/><circle cx="19" cy="12" r="1"/></>} />,
  Moon: (p) => <I {...p} d={<><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></>} />,
  Sliders: (p) => <I {...p} d={<><path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6"/></>} />,
  Link: (p) => <I {...p} d={<><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></>} />,
  Hash: (p) => <I {...p} d={<><path d="M4 9h16M4 15h16M10 3 8 21M16 3l-2 18"/></>} />,
};

window.Icon = Icon;
