/* global React */
// Minimal stroke icon set (lucide-style). 1.6 stroke, currentColor.
const _ic = (paths, vb) => function Icon({ size = 20, stroke = 1.6, className = '', ...rest }) {
  return (
    <svg width={size} height={size} viewBox={vb || '0 0 24 24'} fill="none"
      stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round"
      className={className} aria-hidden="true" {...rest}>
      {paths}
    </svg>
  );
};

const Icons = {
  Sparkles: _ic(<><path d="M12 3l1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6L12 3z"/><path d="M19 14l.8 2.2L22 17l-2.2.8L19 20l-.8-2.2L16 17l2.2-.8L19 14z"/></>),
  Chart: _ic(<><path d="M4 19V5"/><path d="M4 19h16"/><path d="M8 16v-4"/><path d="M13 16V8"/><path d="M18 16v-6"/></>),
  Layers: _ic(<><path d="M12 3l9 5-9 5-9-5 9-5z"/><path d="M3 13l9 5 9-5"/></>),
  Bot: _ic(<><rect x="4" y="8" width="16" height="11" rx="3"/><path d="M12 8V4"/><circle cx="12" cy="4" r="1.3"/><path d="M9 13h.01M15 13h.01"/><path d="M2 13v2M22 13v2"/></>),
  Arrow: _ic(<><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></>),
  ArrowUpRight: _ic(<><path d="M7 17L17 7"/><path d="M8 7h9v9"/></>),
  Check: _ic(<path d="M5 12l4.5 4.5L19 6"/>),
  Menu: _ic(<><path d="M3 6h18M3 12h18M3 18h18"/></>),
  X: _ic(<><path d="M6 6l12 12M18 6L6 18"/></>),
  Search: _ic(<><circle cx="11" cy="11" r="7"/><path d="M21 21l-4-4"/></>),
  Hammer: _ic(<><path d="M14 7l4 4"/><path d="M4 20l7-7"/><path d="M11 6l3-3 5 5-3 3-5-5z"/><path d="M9 8l3 3"/></>),
  Rocket: _ic(<><path d="M5 15c-1 1-1.5 4-1.5 4s3-.5 4-1.5"/><path d="M9 11a8 8 0 016-6c2 0 3 1 3 3a8 8 0 01-6 6l-3 .5-.5-3z" transform="translate(0 0)"/><path d="M14.5 4.5c2.5-.5 5 .5 5 .5s1 2.5.5 5"/><circle cx="14.5" cy="9.5" r="1.2"/></>),
  Pulse: _ic(<path d="M3 12h4l2-6 4 14 2-8h6"/>),
  Bolt: _ic(<path d="M13 2L4 14h6l-1 8 9-12h-6l1-8z"/>),
  Shield: _ic(<><path d="M12 3l8 3v5c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z"/><path d="M9 12l2 2 4-4"/></>),
  Clock: _ic(<><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>),
  Mail: _ic(<><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M4 7l8 6 8-6"/></>),
  Phone: _ic(<path d="M6 3h3l2 5-2 1a11 11 0 005 5l1-2 5 2v3a2 2 0 01-2 2A16 16 0 014 5a2 2 0 012-2z"/>),
  Pin: _ic(<><path d="M12 21s7-5.5 7-11a7 7 0 10-14 0c0 5.5 7 11 7 11z"/><circle cx="12" cy="10" r="2.5"/></>),
  Star: _ic(<path d="M12 3l2.7 5.5 6 .9-4.3 4.2 1 6L12 17l-5.4 2.6 1-6L3.3 9.4l6-.9L12 3z"/>),
  Quote: _ic(<><path d="M7 7h4v6H5V9a2 2 0 012-2z" /><path d="M16 7h4v6h-6V9a2 2 0 012-2z"/></>),
  Code: _ic(<><path d="M8 9l-4 3 4 3"/><path d="M16 9l4 3-4 3"/><path d="M13 6l-2 12"/></>),
  Db: _ic(<><ellipse cx="12" cy="6" rx="7" ry="3"/><path d="M5 6v6c0 1.6 3.1 3 7 3s7-1.4 7-3V6"/><path d="M5 12v6c0 1.6 3.1 3 7 3s7-1.4 7-3v-6"/></>),
  Cloud: _ic(<path d="M7 18a4 4 0 010-8 5 5 0 019-2 4 4 0 011 8H7z"/>),
  Grid: _ic(<><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"/></>),
  Dot: _ic(<circle cx="12" cy="12" r="4"/>),
  TrendUp: _ic(<><path d="M3 17l6-6 4 4 8-8"/><path d="M21 7v5h-5"/></>),
  Cpu: _ic(<><rect x="6" y="6" width="12" height="12" rx="2"/><rect x="9" y="9" width="6" height="6" rx="1"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3"/></>),
  Activity: _ic(<path d="M3 12h3l3 8 4-16 3 8h5"/>),
  Users: _ic(<><circle cx="9" cy="8" r="3.2"/><path d="M3 19c0-3 2.7-5 6-5s6 2 6 5"/><path d="M16 5.5a3 3 0 010 5.6"/><path d="M21 19c0-2.4-1.5-4.2-4-4.8"/></>),
  Filter: _ic(<path d="M3 5h18l-7 8v5l-4 2v-7L3 5z"/>),
  Bell: _ic(<><path d="M18 9a6 6 0 10-12 0c0 6-2 7-2 7h16s-2-1-2-7z"/><path d="M10.5 20a2 2 0 003 0"/></>),
};

window.Icons = Icons;
