/* icons.jsx — stroke icon set (currentColor, 24x24 viewBox) */
const Ic = ({ d, fill, vb = "0 0 24 24", sw = 1.7, children, ...p }) => (
  <svg viewBox={vb} fill={fill ? "currentColor" : "none"} stroke={fill ? "none" : "currentColor"}
       strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" {...p}>
    {d ? <path d={d} /> : children}
  </svg>
);

const Icons = {
  upload:   (p) => <Ic {...p} d="M12 16V4m0 0L7 9m5-5 5 5M5 20h14" />,
  spark:    (p) => <Ic {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4"/><path d="M12 8.5 13 11l2.5 1-2.5 1L12 15.5 11 13l-2.5-1L11 11z" fill="currentColor" stroke="none"/></Ic>,
  bot:      (p) => <Ic {...p}><rect x="4" y="8" width="16" height="11" rx="3"/><path d="M12 8V4m-4 9h.01M16 13h.01M9 16h6"/><path d="M2 13h2M20 13h2"/></Ic>,
  rocket:   (p) => <Ic {...p} d="M5 15c-1.5 1.5-2 5-2 5s3.5-.5 5-2c.83-.83.9-2.1.17-2.83A2 2 0 0 0 5 15zM9 13l-2-2c1-3.5 3.5-7 9-8 .5 4.5-1 9-8 10zM15 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z" />,
  chat:     (p) => <Ic {...p} d="M4 5h16a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H9l-4 4V6a1 1 0 0 1 1-1z" />,
  layers:   (p) => <Ic {...p} d="M12 3 3 8l9 5 9-5-9-5zM3 13l9 5 9-5M3 18l9 5 9-5" />,
  flask:    (p) => <Ic {...p} d="M9 3h6M10 3v6l-5 9a2 2 0 0 0 1.8 3h10.4A2 2 0 0 0 19 18l-5-9V3M7.5 14h9" />,
  gauge:    (p) => <Ic {...p}><path d="M12 13l4-4"/><path d="M3.5 18a9 9 0 1 1 17 0"/><circle cx="12" cy="13" r="1.4" fill="currentColor" stroke="none"/></Ic>,
  book:     (p) => <Ic {...p} d="M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2V5zM19 19H6" />,
  search:   (p) => <Ic {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3-3"/></Ic>,
  check:    (p) => <Ic {...p} d="M4 12.5 9 17.5 20 6.5" />,
  checkCircle:(p)=> <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="m8.5 12 2.5 2.5L16 9"/></Ic>,
  x:        (p) => <Ic {...p} d="M6 6l12 12M18 6 6 18" />,
  xCircle:  (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="m9 9 6 6m0-6-6 6"/></Ic>,
  alert:    (p) => <Ic {...p}><path d="M12 9v4m0 4h.01"/><path d="M10.3 4 2.7 17a2 2 0 0 0 1.7 3h15.2a2 2 0 0 0 1.7-3L13.7 4a2 2 0 0 0-3.4 0z"/></Ic>,
  info:     (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M12 11v5m0-8h.01"/></Ic>,
  plus:     (p) => <Ic {...p} d="M12 5v14M5 12h14" />,
  chevR:    (p) => <Ic {...p} d="m9 6 6 6-6 6" />,
  chevD:    (p) => <Ic {...p} d="m6 9 6 6 6-6" />,
  chevL:    (p) => <Ic {...p} d="m15 6-6 6 6 6" />,
  arrowR:   (p) => <Ic {...p} d="M5 12h14m-6-6 6 6-6 6" />,
  settings: (p) => <Ic {...p}><circle cx="12" cy="12" r="3"/><path d="M12 2v3m0 14v3M4.2 4.2l2.1 2.1m11.4 11.4 2.1 2.1M2 12h3m14 0h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1"/></Ic>,
  sliders:  (p) => <Ic {...p} d="M4 8h10m4 0h2M4 16h2m4 0h10M14 5v6M10 13v6" />,
  doc:      (p) => <Ic {...p} d="M7 3h7l5 5v13a0 0 0 0 1 0 0H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zM14 3v5h5" />,
  link:     (p) => <Ic {...p} d="M10 14a4 4 0 0 0 5.6 0l3-3a4 4 0 0 0-5.6-5.6l-1.5 1.5M14 10a4 4 0 0 0-5.6 0l-3 3a4 4 0 0 0 5.6 5.6l1.5-1.5" />,
  code:     (p) => <Ic {...p} d="m8 8-4 4 4 4m8-8 4 4-4 4M14 4l-4 16" />,
  globe:    (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 0 1 0 18 14 14 0 0 1 0-18z"/></Ic>,
  copy:     (p) => <Ic {...p}><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h8"/></Ic>,
  edit:     (p) => <Ic {...p} d="M4 20h4L18.5 9.5a2 2 0 0 0-3-3L5 16v4zM14.5 7.5l3 3" />,
  star:     (p) => <Ic {...p} d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8L3.5 9.7l5.9-.9z" />,
  thumbUp:  (p) => <Ic {...p} d="M7 11v9H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3zm0 0 4-7a2 2 0 0 1 2 2v3h5a2 2 0 0 1 2 2.3l-1.2 6A2 2 0 0 1 16.8 20H7" />,
  thumbDown:(p) => <Ic {...p} d="M17 13V4h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-3zm0 0-4 7a2 2 0 0 1-2-2v-3H6a2 2 0 0 1-2-2.3l1.2-6A2 2 0 0 1 7.2 4H17" />,
  tag:      (p) => <Ic {...p}><path d="M3 12V5a2 2 0 0 1 2-2h7l9 9-9 9-9-9z"/><circle cx="7.5" cy="7.5" r="1.3" fill="currentColor" stroke="none"/></Ic>,
  filter:   (p) => <Ic {...p} d="M3 5h18l-7 8v6l-4-2v-4z" />,
  clock:    (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></Ic>,
  bolt:     (p) => <Ic {...p} d="M13 2 4 14h7l-1 8 9-12h-7z" fill />,
  scale:    (p) => <Ic {...p} d="M12 3v18M7 21h10M5 7l14-2M5 7l-2.5 6a3 3 0 0 0 5 0L5 7zm14-2-2.5 6a3 3 0 0 0 5 0L19 5z" />,
  trend:    (p) => <Ic {...p} d="M3 17l6-6 4 4 8-8m0 0h-5m5 0v5" />,
  grid:     (p) => <Ic {...p}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></Ic>,
  db:       (p) => <Ic {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></Ic>,
  send:     (p) => <Ic {...p} d="M4 12 20 4l-6 16-3-7z" />,
  menu:     (p) => <Ic {...p} d="M4 7h16M4 12h16M4 17h16" />,
  refresh:  (p) => <Ic {...p} d="M21 12a9 9 0 1 1-2.6-6.3M21 4v4h-4" />,
  lock:     (p) => <Ic {...p}><rect x="4" y="10" width="16" height="11" rx="2.5"/><path d="M8 10V7a4 4 0 0 1 8 0v3"/></Ic>,
  external: (p) => <Ic {...p} d="M14 5h5v5m0-5L11 13M19 14v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4" />,
  play:     (p) => <Ic {...p} d="M7 4.5v15l13-7.5z" fill />,
  whatsapp: (p) => <Ic {...p} d="M12 3a9 9 0 0 0-7.7 13.6L3 21l4.5-1.2A9 9 0 1 0 12 3z"/>,
  message:  (p) => <Ic {...p} d="M21 11.5a8.4 8.4 0 0 1-12 7.6L3 21l1.9-5.6A8.4 8.4 0 1 1 21 11.5z" />,
  download: (p) => <Ic {...p} d="M12 4v11m0 0 4-4m-4 4-4-4M5 20h14" />,
  user:     (p) => <Ic {...p}><circle cx="12" cy="8" r="4"/><path d="M5 21c0-3.9 3.1-7 7-7s7 3.1 7 7"/></Ic>,
  logout:   (p) => <Ic {...p} d="M10 5H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h5m5-4 4-3-4-3m4 3H9" />,
  dot3:     (p) => <Ic {...p}><circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/></Ic>,
  eye:      (p) => <Ic {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="2.6"/></Ic>,
  target:   (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/></Ic>,
};
window.Icons = Icons;
