// Lightweight inline SVG icon set for PiBead.
// 24px box, stroke-based, currentColor.

const I = ({ children, size = 20, fill = 'none', stroke = 'currentColor', sw = 1.75, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={stroke}
       strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {children}
  </svg>
);

window.Icon = {
  Search:    (p) => <I {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></I>,
  Cart:      (p) => <I {...p}><path d="M3 5h2l2.4 11.2A2 2 0 0 0 9.36 18h8.28a2 2 0 0 0 1.96-1.6L21 8H6"/><circle cx="10" cy="21" r="1.4"/><circle cx="18" cy="21" r="1.4"/></I>,
  User:      (p) => <I {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-6 8-6s8 2 8 6"/></I>,
  Menu:      (p) => <I {...p}><path d="M4 7h16M4 12h16M4 17h16"/></I>,
  Close:     (p) => <I {...p}><path d="M6 6l12 12M18 6l-12 12"/></I>,
  Arrow:     (p) => <I {...p}><path d="M5 12h14M13 5l7 7-7 7"/></I>,
  ArrowL:    (p) => <I {...p}><path d="M19 12H5M11 5l-7 7 7 7"/></I>,
  Star:      ({filled=true, ...p}) => <I fill={filled ? 'currentColor' : 'none'} {...p}><path d="M12 2.5l2.95 6.5 7.05.6-5.35 4.65L18.3 21 12 17.27 5.7 21l1.65-6.75L2 9.6l7.05-.6L12 2.5z"/></I>,
  Plus:      (p) => <I {...p}><path d="M12 5v14M5 12h14"/></I>,
  Minus:     (p) => <I {...p}><path d="M5 12h14"/></I>,
  Upload:    (p) => <I {...p}><path d="M12 16V4M7 9l5-5 5 5"/><path d="M4 20h16"/></I>,
  Download:  (p) => <I {...p}><path d="M12 4v12M7 11l5 5 5-5"/><path d="M4 20h16"/></I>,
  Save:      (p) => <I {...p}><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/><path d="M7 3v6h9V3"/><path d="M7 14h10v7H7z"/></I>,
  Sparkle:   (p) => <I {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6"/></I>,
  Wand:      (p) => <I {...p}><path d="M4 20l11-11"/><path d="M14 4l1.5 1.5L18 4l-1.5 2.5L18 9l-2.5-1L14 10l1-2.5L13 6z"/></I>,
  Pencil:    (p) => <I {...p}><path d="M14 4l6 6L8 22H2v-6z"/><path d="M13 5l6 6"/></I>,
  Eraser:    (p) => <I {...p}><path d="M16 4 4 16l4 4h8l8-8z"/><path d="M9 11l4 4"/></I>,
  Eyedrop:   (p) => <I {...p}><path d="m4 20 4-1 9.5-9.5-3-3L5 16l-1 4z"/><path d="m15 5 2-2a2 2 0 0 1 3 3l-2 2"/></I>,
  Hand:      (p) => <I {...p}><path d="M7 11V6a1.5 1.5 0 0 1 3 0v4"/><path d="M10 10V5a1.5 1.5 0 0 1 3 0v6"/><path d="M13 11V7a1.5 1.5 0 0 1 3 0v6"/><path d="M16 11.5a1.5 1.5 0 0 1 3 0V15c0 3.3-2.7 6-6 6h-1.5c-2 0-3.6-1-4.4-2.7L4.5 13a1.7 1.7 0 0 1 2.9-1.7l1.6 2.3"/></I>,
  Replace:   (p) => <I {...p}><path d="M3 7h11l-3-3M3 7l3 3"/><path d="M21 17H10l3 3M21 17l-3-3"/></I>,
  Undo:      (p) => <I {...p}><path d="M9 14 4 9l5-5"/><path d="M4 9h11a5 5 0 0 1 0 10h-4"/></I>,
  Redo:      (p) => <I {...p}><path d="m15 14 5-5-5-5"/><path d="M20 9H9a5 5 0 0 0 0 10h4"/></I>,
  ZoomIn:    (p) => <I {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5M11 8v6M8 11h6"/></I>,
  ZoomOut:   (p) => <I {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5M8 11h6"/></I>,
  Layers:    (p) => <I {...p}><path d="m12 3 9 5-9 5-9-5 9-5z"/><path d="M3 13l9 5 9-5"/></I>,
  Grid:      (p) => <I {...p}><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></I>,
  Sun:       (p) => <I {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></I>,
  Check:     (p) => <I {...p}><path d="m5 12 4 4 10-10"/></I>,
  Heart:     (p) => <I {...p}><path d="M12 21s-7-4.5-9.5-9.2A5.3 5.3 0 0 1 12 5.5a5.3 5.3 0 0 1 9.5 6.3C19 16.5 12 21 12 21z"/></I>,
  Bolt:      (p) => <I {...p}><path d="M13 2 4 14h7l-1 8 9-12h-7z"/></I>,
  Image:     (p) => <I {...p}><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="9" cy="9" r="2"/><path d="m21 16-5-5-9 9"/></I>,
  Settings:  (p) => <I {...p}><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-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 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.3H9A1.7 1.7 0 0 0 10 4.6V4.5a2 2 0 1 1 4 0v.1A1.7 1.7 0 0 0 15 6a1.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.8V10c.2.6.7 1 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></I>,
  Truck:     (p) => <I {...p}><rect x="2" y="6" width="13" height="11" rx="1"/><path d="M15 9h4l3 4v4h-7"/><circle cx="6" cy="19" r="1.5"/><circle cx="18" cy="19" r="1.5"/></I>,
  Leaf:      (p) => <I {...p}><path d="M4 20s2-12 16-16c0 14-8 18-16 16z"/><path d="M4 20c4-6 8-9 14-10"/></I>,
  Logo:      (p) => <I {...p} sw={0}><rect x="3" y="3" width="6" height="6" fill="currentColor"/><rect x="9" y="3" width="6" height="6" fill="currentColor" opacity=".4"/><rect x="15" y="9" width="6" height="6" fill="currentColor"/><rect x="3" y="15" width="6" height="6" fill="currentColor" opacity=".4"/><rect x="9" y="15" width="6" height="6" fill="currentColor"/></I>,
};
