// icons.jsx — Small SVG icon set used across the app.
// Stroke-based, 1.6 stroke width, lucide-ish but custom.

const Icon = ({ d, size = 16, fill = "none", stroke = "currentColor", sw = 1.7, ...rest }) => (
  <svg
    width={size}
    height={size}
    viewBox="0 0 24 24"
    fill={fill}
    stroke={stroke}
    strokeWidth={sw}
    strokeLinecap="round"
    strokeLinejoin="round"
    {...rest}
  >
    {typeof d === "string" ? <path d={d} /> : d}
  </svg>
);

const I = {
  Dashboard: (p) => <Icon {...p} d={<><rect x="3" y="3"  width="7" height="9" rx="1.5" /><rect x="14" y="3" width="7" height="5" rx="1.5" /><rect x="14" y="12" width="7" height="9" rx="1.5" /><rect x="3" y="16" width="7" height="5" rx="1.5" /></>} />,
  Pdv: (p) => <Icon {...p} d={<><rect x="3" y="4" width="18" height="14" rx="2" /><path d="M7 9h2M11 9h2M15 9h2M7 13h2M11 13h2M15 13h2" /><path d="M3 21h18" /></>} />,
  Box: (p) => <Icon {...p} d={<><path d="M3 7l9-4 9 4-9 4-9-4z" /><path d="M3 7v10l9 4 9-4V7" /><path d="M12 11v10" /></>} />,
  Receipt: (p) => <Icon {...p} d={<><path d="M5 3h14v18l-2.5-1.5L14 21l-2-1.5L10 21l-2.5-1.5L5 21V3z" /><path d="M8 8h8M8 12h8M8 16h5" /></>} />,
  Doc: (p) => <Icon {...p} d={<><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5z" /><path d="M14 3v5h5M9 13h6M9 17h4" /></>} />,
  Users: (p) => <Icon {...p} d={<><circle cx="9" cy="8" r="3.5" /><path d="M3 20c0-3.5 2.7-6 6-6s6 2.5 6 6" /><circle cx="17" cy="9" r="2.5" /><path d="M15 13.5c2.5 0 6 1.5 6 5" /></>} />,
  Shield: (p) => <Icon {...p} d="M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6l8-3z" />,
  Plug: (p) => <Icon {...p} d={<><path d="M9 3v6M15 3v6" /><path d="M6 9h12v3a6 6 0 0 1-12 0V9z" /><path d="M12 18v3" /></>} />,
  Truck: (p) => <Icon {...p} d={<><path d="M3 7h11v9H3z" /><path d="M14 10h4l3 3v3h-7" /><circle cx="7" cy="18" r="2" /><circle cx="17" cy="18" r="2" /></>} />,
  Cash: (p) => <Icon {...p} d={<><rect x="2" y="6" width="20" height="12" rx="2" /><circle cx="12" cy="12" r="2.5" /><path d="M6 9.5v0M18 14.5v0" /></>} />,
  Chart: (p) => <Icon {...p} d={<><path d="M3 21V3M3 21h18" /><rect x="6" y="13" width="3" height="6" rx="0.5" /><rect x="11" y="9" width="3" height="10" rx="0.5" /><rect x="16" y="5" width="3" height="14" rx="0.5" /></>} />,
  Search: (p) => <Icon {...p} d={<><circle cx="11" cy="11" r="6.5" /><path d="m16 16 4 4" /></>} />,
  Barcode: (p) => <Icon {...p} d="M3 5v14M6 5v14M8.5 5v14M11.5 5v14M14 5v14M17 5v14M20 5v14" />,
  Plus: (p) => <Icon {...p} d="M12 5v14M5 12h14" sw={2} />,
  Minus: (p) => <Icon {...p} d="M5 12h14" sw={2} />,
  X: (p) => <Icon {...p} d="M6 6l12 12M18 6L6 18" sw={2} />,
  Check: (p) => <Icon {...p} d="M5 12l5 5 9-11" sw={2.2} />,
  Trash: (p) => <Icon {...p} d={<><path d="M4 7h16" /><path d="M9 7V4h6v3" /><path d="M6 7l1 13a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-13" /><path d="M10 11v7M14 11v7" /></>} />,
  Printer: (p) => <Icon {...p} d={<><path d="M6 9V3h12v6" /><rect x="3" y="9" width="18" height="9" rx="2" /><rect x="7" y="14" width="10" height="7" rx="1" /></>} />,
  Sun: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="4" /><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4" /></>} />,
  Moon: (p) => <Icon {...p} d="M20 14a8 8 0 1 1-9.5-10A6.5 6.5 0 0 0 20 14z" />,
  Bell: (p) => <Icon {...p} d={<><path d="M6 9a6 6 0 1 1 12 0c0 5 2 7 2 7H4s2-2 2-7z" /><path d="M10 20a2 2 0 0 0 4 0" /></>} />,
  Up: (p) => <Icon {...p} d="M7 14l5-5 5 5" sw={2.2} />,
  Down: (p) => <Icon {...p} d="M7 10l5 5 5-5" sw={2.2} />,
  TrendUp: (p) => <Icon {...p} d="M3 17l6-6 4 4 8-9" />,
  ChevR: (p) => <Icon {...p} d="M9 6l6 6-6 6" sw={2} />,
  ChevL: (p) => <Icon {...p} d="M15 6l-6 6 6 6" sw={2} />,
  Filter: (p) => <Icon {...p} d="M4 5h16l-6 8v6l-4-2v-4L4 5z" />,
  Sync: (p) => <Icon {...p} d={<><path d="M21 12a9 9 0 0 1-15 6.7L3 16" /><path d="M3 12a9 9 0 0 1 15-6.7L21 8" /><path d="M21 3v5h-5M3 21v-5h5" /></>} />,
  Tag: (p) => <Icon {...p} d={<><path d="M3 12V3h9l9 9-9 9-9-9z" /><circle cx="8" cy="8" r="1.5" /></>} />,
  Lock: (p) => <Icon {...p} d={<><rect x="5" y="11" width="14" height="10" rx="2" /><path d="M8 11V7a4 4 0 0 1 8 0v4" /></>} />,
  Lightning: (p) => <Icon {...p} d="M13 3L4 14h7l-1 7 9-11h-7l1-7z" />,
  Settings: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="3" /><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3h0a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5h0a1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8v0a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z" /></>} />,
  Wifi: (p) => <Icon {...p} d={<><path d="M5 12.5a10 10 0 0 1 14 0" /><path d="M8 16a6 6 0 0 1 8 0" /><circle cx="12" cy="19.5" r="1" fill="currentColor" stroke="none" /></>} />,
  WifiOff: (p) => <Icon {...p} d={<><path d="M3 3l18 18" /><path d="M16.7 13.7A8 8 0 0 0 5 12.5" /><path d="M8 16a6 6 0 0 1 7 0.5" /><circle cx="12" cy="19.5" r="1" fill="currentColor" stroke="none" /></>} />,
  Capybara: (p) => (
    /* a minimal capybara silhouette with cap — used in collapsed sidebar */
    <Icon {...p} d={<><path d="M4 14c0-3 2.5-5 6-5s8 1 9 5" /><circle cx="8" cy="11" r="1.2" fill="currentColor" /><path d="M14 9c0-1 1-2.5 3-2.5s2.5 1.5 2.5 2.5" /><path d="M5 16c0 1.5 1 3 3 3M19 14c0 2-1.5 3-3 3" /></>} />
  ),
  Fish: (p) => <Icon {...p} d={<><path d="M3 12s3-5 9-5 9 5 9 5-3 5-9 5-9-5-9-5z" /><circle cx="16" cy="11" r="0.8" fill="currentColor" /><path d="M3 12l-2-3M3 12l-2 3" /></>} />,
};

window.I = I;
