/* global React */
// =============== Icons (inline SVG, stroke-based, 1.5w) ===============
const Icon = ({ d, size = 16, fill = "none", stroke = "currentColor", strokeWidth = 1.5, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={stroke}
       strokeWidth={strokeWidth} 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"/></>} />,
  sale: (p) => <Icon {...p} d={<><path d="M4 7h16l-1.5 11a2 2 0 0 1-2 1.8H7.5a2 2 0 0 1-2-1.8L4 7Z"/><path d="M9 7V5a3 3 0 0 1 6 0v2"/></>} />,
  buy: (p) => <Icon {...p} d={<><path d="M3 4h2l2.4 12.3a2 2 0 0 0 2 1.7h7.6a2 2 0 0 0 2-1.5L21 8H6"/><circle cx="9" cy="20" r="1.3"/><circle cx="18" cy="20" r="1.3"/></>} />,
  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 3v5h5"/><path d="M9 13h6M9 17h4"/></>} />,
  invoice: (p) => <Icon {...p} d={<><rect x="5" y="3" width="14" height="18" rx="1.5"/><path d="M8 8h8M8 12h8M8 16h5"/></>} />,
  tax: (p) => <Icon {...p} d={<><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M9 8h6M9 12h6M9 16h3"/><circle cx="16" cy="16" r="1.2"/></>} />,
  truck: (p) => <Icon {...p} d={<><path d="M3 7h11v10H3z"/><path d="M14 10h4l3 3v4h-7"/><circle cx="7" cy="18" r="1.6"/><circle cx="17" cy="18" r="1.6"/></>} />,
  money: (p) => <Icon {...p} d={<><rect x="2" y="6" width="20" height="12" rx="2"/><circle cx="12" cy="12" r="3"/><path d="M6 9v.01M18 15v.01"/></>} />,
  warehouse: (p) => <Icon {...p} d={<><path d="M3 9 12 4l9 5v11a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9Z"/><path d="M9 21v-6h6v6"/></>} />,
  box: (p) => <Icon {...p} d={<><path d="M21 8 12 3 3 8v8l9 5 9-5V8Z"/><path d="m3 8 9 5 9-5"/><path d="M12 13v8"/></>} />,
  barcode: (p) => <Icon {...p} d={<><path d="M4 5v14M7 5v14M10 5v10M13 5v14M16 5v10M19 5v14"/></>} />,
  move: (p) => <Icon {...p} d={<><path d="M7 10v-2a2 2 0 0 1 2-2h10v6"/><path d="M19 14v2a2 2 0 0 1-2 2H7v-6"/><path d="m4 4 3 3-3 3"/><path d="m20 14-3 3 3 3"/></>} />,
  payroll: (p) => <Icon {...p} d={<><circle cx="12" cy="8" r="3"/><path d="M5 21v-1a5 5 0 0 1 5-5h4a5 5 0 0 1 5 5v1"/><circle cx="18" cy="6" r="2"/></>} />,
  clock: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>} />,
  calc: (p) => <Icon {...p} d={<><rect x="5" y="3" width="14" height="18" rx="2"/><path d="M9 7h6M9 12h.01M12 12h.01M15 12h.01M9 16h.01M12 16h.01M15 16h.01"/></>} />,
  book: (p) => <Icon {...p} d={<><path d="M4 19V5a2 2 0 0 1 2-2h12v18H6a2 2 0 0 1-2-2Z"/><path d="M8 7h6M8 11h6"/></>} />,
  bell: (p) => <Icon {...p} d={<><path d="M6 8a6 6 0 0 1 12 0c0 6 3 7 3 7H3s3-1 3-7Z"/><path d="M10 21a2 2 0 0 0 4 0"/></>} />,
  user: (p) => <Icon {...p} d={<><circle cx="12" cy="8" r="4"/><path d="M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1"/></>} />,
  shield: (p) => <Icon {...p} d={<><path d="M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6l-8-3Z"/><path d="m9 12 2 2 4-4"/></>} />,
  cog: (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 0 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 0 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 0 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.8v0a1.7 1.7 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z"/></>} />,
  search: (p) => <Icon {...p} d={<><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></>} />,
  plus: (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  arrowDown: (p) => <Icon {...p} d="M12 5v14m7-7-7 7-7-7" />,
  arrowUp: (p) => <Icon {...p} d="M12 19V5m7 7-7-7-7 7" />,
  arrowRight: (p) => <Icon {...p} d="M5 12h14m-7-7 7 7-7 7" />,
  download: (p) => <Icon {...p} d="M12 3v12m6-5-6 6-6-6M5 21h14" />,
  print: (p) => <Icon {...p} d={<><path d="M6 9V3h12v6"/><rect x="3" y="9" width="18" height="9" rx="2"/><rect x="6" y="14" width="12" height="7"/></>} />,
  filter: (p) => <Icon {...p} d="M3 5h18l-7 9v6l-4-2v-4Z" />,
  ellipsis: (p) => <Icon {...p} d={<><circle cx="5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/></>} />,
  close: (p) => <Icon {...p} d="M6 6l12 12M18 6 6 18" />,
  check: (p) => <Icon {...p} d="m5 12 5 5 9-12" />,
  edit: (p) => <Icon {...p} d="m4 20 4-1 11-11-3-3L5 16l-1 4Z" />,
  trash: (p) => <Icon {...p} d={<><path d="M4 7h16M10 4h4l1 3H9l1-3ZM6 7l1 13a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-13"/></>} />,
  send: (p) => <Icon {...p} d="m22 2-7 20-4-9-9-4 20-7Z" />,
  sun: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2m10-10h-2M4 12H2m15.5-7.5-1.5 1.5m-12 12-1.5 1.5m15-1.5-1.5-1.5m-12-12L5 5.5"/></>} />,
  moon: (p) => <Icon {...p} d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z" />,
  menu: (p) => <Icon {...p} d="M4 6h16M4 12h16M4 18h16" />,
  sparkle: (p) => <Icon {...p} d="M12 3v4m0 10v4M3 12h4m10 0h4M5.6 5.6l2.8 2.8m7.2 7.2 2.8 2.8M18.4 5.6l-2.8 2.8m-7.2 7.2-2.8 2.8" />,
  chevronDown: (p) => <Icon {...p} d="m6 9 6 6 6-6" />,
  chevronUp: (p) => <Icon {...p} d="m6 15 6-6 6 6" />,
  chevronLeft: (p) => <Icon {...p} d="m15 6-6 6 6 6" />,
  chevronRight: (p) => <Icon {...p} d="m9 6 6 6-6 6" />,
  cube3d: (p) => <Icon {...p} d={<><path d="M12 2 3 7v10l9 5 9-5V7l-9-5Z"/><path d="m3 7 9 5 9-5M12 12v10"/></>} />,
  briefcase: (p) => <Icon {...p} d={<><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><path d="M3 13h18"/></>} />,
  msg: (p) => <Icon {...p} d="M21 11.5a8.4 8.4 0 0 1-9 8.4 8.4 8.4 0 0 1-3.9-1L3 21l1-5a8.4 8.4 0 1 1 17-4.5Z" />,
  paperclip: (p) => <Icon {...p} d="m21.4 11.1-9.2 9.2a5.5 5.5 0 0 1-7.8-7.8l9.2-9.2a3.7 3.7 0 0 1 5.2 5.2L9.6 17.7a1.8 1.8 0 1 1-2.6-2.6l8.4-8.5" />,
  building: (p) => <Icon {...p} d={<><rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 7h.01M9 11h.01M9 15h.01M15 7h.01M15 11h.01M15 15h.01M10 21v-4h4v4"/></>} />,
  upload: (p) => <Icon {...p} d="M12 17V5m-6 6 6-6 6 6M5 21h14" />,
  qr: (p) => <Icon {...p} d={<><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><path d="M14 14h3v3m4-3v3m-7 4h3m4 0h.01"/></>} />,
  receipt: (p) => <Icon {...p} d="M4 3v18l3-2 3 2 3-2 3 2 3-2V3l-3 2-3-2-3 2-3-2-3 2Zm4 7h8M8 14h6" />,
  camera: (p) => <Icon {...p} d={<><path d="M4 8h3l2-3h6l2 3h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1Z"/><circle cx="12" cy="13" r="3.5"/></>} />,
  db: (p) => <Icon {...p} d={<><ellipse cx="12" cy="6" rx="8" ry="2.5"/><path d="M4 6v4c0 1.38 3.58 2.5 8 2.5S20 11.38 20 10V6"/><path d="M4 10v4c0 1.38 3.58 2.5 8 2.5S20 15.38 20 14v-4"/><path d="M4 14v4c0 1.38 3.58 2.5 8 2.5S20 19.38 20 18v-4"/></>} />
};

window.I = I;
