// Phosphor-style icons — regular weight, 1.5px stroke, geometric.
// Inline SVG so we can tint via currentColor.
const Icon = ({ children, size = 20, stroke = 1.5, fill = "none", style }) => (
  <svg
    xmlns="http://www.w3.org/2000/svg"
    width={size}
    height={size}
    viewBox="0 0 24 24"
    fill={fill}
    stroke="currentColor"
    strokeWidth={stroke}
    strokeLinecap="round"
    strokeLinejoin="round"
    style={{ flex: "none", display: "block", ...style }}
  >
    {children}
  </svg>
);

const I = {
  Home: (p) => (
    <Icon {...p}>
      <path d="M3 11.5L12 4l9 7.5V20a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1v-8.5z" />
    </Icon>
  ),
  Builder: (p) => (
    <Icon {...p}>
      <path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z" />
      <path d="M12 12l8-4.5M12 12v9M12 12L4 7.5" />
    </Icon>
  ),
  Store: (p) => (
    <Icon {...p}>
      <path d="M4 8h16l-1 12.2a1 1 0 0 1-1 .8H6a1 1 0 0 1-1-.8L4 8z" />
      <path d="M8 11V7a4 4 0 0 1 8 0v4" />
    </Icon>
  ),
  Profile: (p) => (
    <Icon {...p}>
      <circle cx="12" cy="8" r="4" />
      <path d="M4 21a8 8 0 0 1 16 0" />
    </Icon>
  ),
  Bell: (p) => (
    <Icon {...p}>
      <path d="M6 9a6 6 0 1 1 12 0c0 5 2 6 2 6H4s2-1 2-6z" />
      <path d="M10 18a2 2 0 0 0 4 0" />
    </Icon>
  ),
  Search: (p) => (
    <Icon {...p}>
      <circle cx="11" cy="11" r="6.5" />
      <path d="M21 21l-4.5-4.5" />
    </Icon>
  ),
  Plus: (p) => (
    <Icon {...p}>
      <path d="M12 5v14M5 12h14" />
    </Icon>
  ),
  X: (p) => (
    <Icon {...p}>
      <path d="M6 6l12 12M18 6L6 18" />
    </Icon>
  ),
  ArrowLeft: (p) => (
    <Icon {...p}>
      <path d="M19 12H5M12 19l-7-7 7-7" />
    </Icon>
  ),
  ArrowRight: (p) => (
    <Icon {...p}>
      <path d="M5 12h14M12 5l7 7-7 7" />
    </Icon>
  ),
  ChevronRight: (p) => (
    <Icon {...p}>
      <path d="M9 6l6 6-6 6" />
    </Icon>
  ),
  ChevronDown: (p) => (
    <Icon {...p}>
      <path d="M6 9l6 6 6-6" />
    </Icon>
  ),
  Eye: (p) => (
    <Icon {...p}>
      <path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" />
      <circle cx="12" cy="12" r="3" />
    </Icon>
  ),
  EyeSlash: (p) => (
    <Icon {...p}>
      <path d="M3 3l18 18" />
      <path d="M10.6 6.1A10 10 0 0 1 12 6c6.5 0 10 7 10 7a18 18 0 0 1-3 3.8" />
      <path d="M6.6 6.6C3.8 8.4 2 12 2 12s3.5 7 10 7c1.7 0 3.2-.4 4.6-1" />
      <path d="M9.9 9.9a3 3 0 1 0 4.2 4.2" />
    </Icon>
  ),
  Heart: (p) => (
    <Icon {...p}>
      <path d="M12 20s-8-5-8-11a4.5 4.5 0 0 1 8-3 4.5 4.5 0 0 1 8 3c0 6-8 11-8 11z" />
    </Icon>
  ),
  Bookmark: (p) => (
    <Icon {...p}>
      <path d="M6 4h12v17l-6-4-6 4V4z" />
    </Icon>
  ),
  Share: (p) => (
    <Icon {...p}>
      <circle cx="6" cy="12" r="2.5" />
      <circle cx="18" cy="6" r="2.5" />
      <circle cx="18" cy="18" r="2.5" />
      <path d="M8.2 11l7.6-3.8M8.2 13l7.6 3.8" />
    </Icon>
  ),
  Settings: (p) => (
    <Icon {...p}>
      <circle cx="12" cy="12" r="3" />
      <path d="M19.4 15a1.7 1.7 0 0 0 .4 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.4 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-1.5 1.7 1.7 0 0 0-1.9.4l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .4-1.9 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 1.7 1.7 0 0 0-.4-1.9l-.1-.1A2 2 0 1 1 6.9 4.2l.1.1a1.7 1.7 0 0 0 1.9.4H9a1.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.9-.4l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.4 1.9V9a1.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" />
    </Icon>
  ),
  Sun: (p) => (
    <Icon {...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" />
    </Icon>
  ),
  Moon: (p) => (
    <Icon {...p}>
      <path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z" />
    </Icon>
  ),
  Monitor: (p) => (
    <Icon {...p}>
      <rect x="3" y="4" width="18" height="13" rx="1.5" />
      <path d="M8 21h8M12 17v4" />
    </Icon>
  ),
  Check: (p) => (
    <Icon {...p}>
      <path d="M5 12.5l4.5 4.5L19 7" />
    </Icon>
  ),
  Sliders: (p) => (
    <Icon {...p}>
      <path d="M4 7h12M4 17h6M4 12h16" />
      <circle cx="18" cy="7" r="2" />
      <circle cx="13" cy="17" r="2" />
    </Icon>
  ),
  Undo: (p) => (
    <Icon {...p}>
      <path d="M9 14L4 9l5-5" />
      <path d="M4 9h11a5 5 0 0 1 0 10h-5" />
    </Icon>
  ),
  Redo: (p) => (
    <Icon {...p}>
      <path d="M15 14l5-5-5-5" />
      <path d="M20 9H9a5 5 0 0 0 0 10h5" />
    </Icon>
  ),
  Zoom: (p) => (
    <Icon {...p}>
      <circle cx="11" cy="11" r="6.5" />
      <path d="M21 21l-4.5-4.5M8 11h6M11 8v6" />
    </Icon>
  ),
  Camera: (p) => (
    <Icon {...p}>
      <rect x="2.5" y="6" width="19" height="14" rx="1.5" />
      <circle cx="12" cy="13" r="4" />
      <path d="M8 6l1.5-2.5h5L16 6" />
    </Icon>
  ),
  Flag: (p) => (
    <Icon {...p}>
      <path d="M5 21V4M5 4h13l-2 4 2 4H5" />
    </Icon>
  ),
  Trophy: (p) => (
    <Icon {...p}>
      <path d="M7 4h10v4a5 5 0 0 1-10 0V4z" />
      <path d="M7 6H4a3 3 0 0 0 3 3M17 6h3a3 3 0 0 1-3 3" />
      <path d="M10 14h4v3l1 4H9l1-4v-3z" />
    </Icon>
  ),
  Target: (p) => (
    <Icon {...p}>
      <circle cx="12" cy="12" r="9" />
      <circle cx="12" cy="12" r="5.5" />
      <circle cx="12" cy="12" r="2" fill="currentColor" />
    </Icon>
  ),
  Sparkle: (p) => (
    <Icon {...p}>
      <path d="M12 3l1.8 5.7L19.5 10.5 13.8 12.3 12 18l-1.8-5.7L4.5 10.5l5.7-1.8L12 3z" />
    </Icon>
  ),
  Type: (p) => (
    <Icon {...p}>
      <path d="M4 6V4h16v2M9 20h6M12 4v16" />
    </Icon>
  ),
  Palette: (p) => (
    <Icon {...p}>
      <path d="M12 3a9 9 0 0 0 0 18c1 0 1.5-.5 1.5-1.5 0-.4-.2-.7-.4-1-.3-.4-.5-.7-.5-1.1 0-.8.7-1.4 1.5-1.4H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8z" />
      <circle cx="7.5" cy="11" r="1.2" fill="currentColor" />
      <circle cx="12" cy="7.5" r="1.2" fill="currentColor" />
      <circle cx="16.5" cy="11" r="1.2" fill="currentColor" />
    </Icon>
  ),
  Logo: (p) => (
    <Icon {...p}>
      <rect x="3" y="3" width="18" height="18" rx="1" />
      <path d="M8 8h8v3H8zM11 11v5" />
    </Icon>
  ),
  CartIcon: (p) => (
    <Icon {...p}>
      <path d="M3 4h2.5l2 13.5h11.5l2-9H6.5" />
      <circle cx="9" cy="20.5" r="1.4" />
      <circle cx="17" cy="20.5" r="1.4" />
    </Icon>
  ),
  Lightning: (p) => (
    <Icon {...p}>
      <path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z" />
    </Icon>
  ),
  Calendar: (p) => (
    <Icon {...p}>
      <rect x="3" y="5" width="18" height="16" rx="1.5" />
      <path d="M3 9h18M8 3v4M16 3v4" />
    </Icon>
  ),
  Filter: (p) => (
    <Icon {...p}>
      <path d="M4 5h16l-6 8v6l-4-2v-4L4 5z" />
    </Icon>
  ),
  Users: (p) => (
    <Icon {...p}>
      <circle cx="9" cy="9" r="3.5" />
      <path d="M2.5 20a6.5 6.5 0 0 1 13 0" />
      <circle cx="17" cy="10.5" r="2.8" />
      <path d="M15 14.5a5.5 5.5 0 0 1 6.5 5.5" />
    </Icon>
  ),
  Dot: (p) => (
    <Icon {...p}>
      <circle cx="12" cy="12" r="3" fill="currentColor" />
    </Icon>
  ),
};

window.I = I;
window.Icon = Icon;
