// landing-icons.jsx — Lucide-style SVGs as inline React components.
// Stroke 1.75, currentColor — matches the IDP design system.

const Icon = ({ d, size = 16, fill, ...rest }) => (
  <svg
    viewBox="0 0 24 24"
    width={size}
    height={size}
    fill={fill ?? "none"}
    stroke={fill ? "none" : "currentColor"}
    strokeWidth="1.75"
    strokeLinecap="round"
    strokeLinejoin="round"
    aria-hidden="true"
    {...rest}
  >
    {Array.isArray(d) ? d.map((p, i) => <path key={i} d={p} />) : <path d={d} />}
  </svg>
);

const I = {
  // ─── Brand mark ───────────────────────────────────────────────
  // Brand mark — open triangle with a horizontal divider near the base
  spark: (props) => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"
         strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"
         {...props}>
      <path d="M12 4 L21 19 L3 19 Z" />
      <path d="M7 15.5 H17" />
    </svg>
  ),

  // ─── Action / chrome ──────────────────────────────────────────
  arrowRight: (p) => <Icon {...p} d="M5 12h14M13 5l7 7-7 7" />,
  arrowLeft:  (p) => <Icon {...p} d="M19 12H5M11 19l-7-7 7-7" />,
  chevDown:   (p) => <Icon {...p} d="M6 9l6 6 6-6" />,
  chevRight:  (p) => <Icon {...p} d="M9 6l6 6-6 6" />,
  plus:       (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  search:     (p) => <Icon {...p} d={["M21 21l-4.3-4.3", "M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14z"]} />,
  check:      (p) => <Icon {...p} d="M5 12l5 5L20 7" />,
  mic:        (p) => <Icon {...p} d={["M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3z","M5 11a7 7 0 0 0 14 0","M12 18v3","M9 21h6"]} />,
  x:          (p) => <Icon {...p} d="M6 6l12 12M18 6L6 18" />,
  grid:       (p) => <Icon {...p} d={["M3 3h7v7H3z", "M14 3h7v7h-7z", "M14 14h7v7h-7z", "M3 14h7v7H3z"]} />,
  menu:       (p) => <Icon {...p} d="M4 6h16M4 12h16M4 18h16" />,
  externalLink: (p)=><Icon {...p} d={["M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", "M15 3h6v6", "M10 14L21 3"]} />,
  filter:     (p) => <Icon {...p} d="M3 5h18l-7 9v6l-4 2v-8L3 5z" />,
  command:    (p) => <Icon {...p} d="M18 3a3 3 0 0 0-3 3v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" />,
  send:       (p) => <Icon {...p} d={["M22 2L11 13", "M22 2l-7 20-4-9-9-4 20-7z"]} />,
  copy:       (p) => <Icon {...p} d={["M9 9h11v11H9z", "M5 15V5a2 2 0 0 1 2-2h10"]} />,
  more:       (p) => <Icon {...p} d="M5 12h.01M12 12h.01M19 12h.01" />,

  // ─── Section concepts ─────────────────────────────────────────
  layers:     (p) => <Icon {...p} d={["M12 2l10 6-10 6L2 8l10-6z","M2 16l10 6 10-6","M2 12l10 6 10-6"]} />,
  layout:     (p) => <Icon {...p} d={["M3 3h18v18H3z", "M3 9h18", "M9 21V9"]} />,
  database:   (p) => <Icon {...p} d={["M4 6c0-1.7 3.6-3 8-3s8 1.3 8 3-3.6 3-8 3-8-1.3-8-3z","M4 6v6c0 1.7 3.6 3 8 3s8-1.3 8-3V6","M4 12v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"]} />,
  shield:     (p) => <Icon {...p} d="M12 2l8 4v6c0 5-3.5 9-8 10-4.5-1-8-5-8-10V6l8-4z" />,
  shieldCheck:(p) => <Icon {...p} d={["M12 2l8 4v6c0 5-3.5 9-8 10-4.5-1-8-5-8-10V6l8-4z", "M9 12l2 2 4-4"]} />,
  clock:      (p) => <Icon {...p} d={["M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z","M12 7v5l3 2"]} />,
  zap:        (p) => <Icon {...p} d="M13 2L4 14h7l-1 8 9-12h-7l1-8z" />,
  cube:       (p) => <Icon {...p} d={["M21 7L12 2 3 7l9 5 9-5z","M3 7v10l9 5","M21 7v10l-9 5"]} />,
  rocket:     (p) => <Icon {...p} d={["M5 19a4 4 0 0 0 4-4l-4-4a4 4 0 0 0-4 4 4 4 0 0 0 4 4z","M14 6l4 4","M21 3l-9 9-3-3 9-9 3 3z","M14 13l-2 5","M11 10l-5 2"]} />,

  // ─── Sections (matching DS) ───────────────────────────────────
  book:       (p) => <Icon {...p} d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20V3H6.5A2.5 2.5 0 0 0 4 5.5v14z" />,
  network:    (p) => <Icon {...p} d={["M5 5a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M19 5a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M5 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M19 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M7 7l10 10","M17 7L7 17"]} />,
  chart:      (p) => <Icon {...p} d={["M3 3v18h18","M7 14l4-4 4 4 5-6"]} />,
  bug:        (p) => <Icon {...p} d={["M8 8a4 4 0 0 1 8 0v2H8V8z","M8 10v6a4 4 0 0 0 8 0v-6","M3 13h5","M3 7h3","M3 19h3","M16 13h5","M18 7h3","M18 19h3"]} />,
  building:   (p) => <Icon {...p} d={["M3 21V7l9-4 9 4v14","M9 21v-6h6v6","M9 9h.01","M15 9h.01","M9 12h.01","M15 12h.01"]} />,
  flask:      (p) => <Icon {...p} d="M9 3h6m-1 0v6l5 9a2 2 0 0 1-2 3H7a2 2 0 0 1-2-3l5-9V3" />,
  container:  (p) => <Icon {...p} d={["M22 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v3","M22 9v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9","M2 9h20","M6 13v3","M10 13v3","M14 13v3","M18 13v3"]} />,
  clipboard:  (p) => <Icon {...p} d={["M9 4h6a1 1 0 0 1 1 1v2H8V5a1 1 0 0 1 1-1z","M16 5h2a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2","M9 13l2 2 4-4"]} />,
  notebook:   (p) => <Icon {...p} d={["M4 4a1 1 0 0 1 1-1h13a2 2 0 0 1 2 2v15a1 1 0 0 1-1 1H6a2 2 0 0 1-2-2V4z","M8 7h8","M8 11h8","M8 15h5","M4 8h2","M4 12h2","M4 16h2"]} />,
  wand:       (p) => <Icon {...p} d={["M15 4l5 5-12 12-5-5L15 4z","M14 7l3 3","M5 12l3 3"]} />,
  user:       (p) => <Icon {...p} d={["M12 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8z","M4 21a8 8 0 0 1 16 0"]} />,
  users:      (p) => <Icon {...p} d={["M9 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8z","M2 21a7 7 0 0 1 14 0","M17 11a3 3 0 1 0 0-6","M22 21a5 5 0 0 0-6-5"]} />,
  fileText:   (p) => <Icon {...p} d={["M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z","M14 2v6h6","M9 13h6","M9 17h4"]} />,

  // ─── Marketplace ──────────────────────────────────────────────
  star:       (p) => <Icon {...p} d="M12 2.5l3 6.5 7 1-5 5 1.2 7L12 18.5 5.8 22 7 15 2 10l7-1 3-6.5z" />,
  starFill:   (p) => <Icon {...p} fill="currentColor" d="M12 2.5l3 6.5 7 1-5 5 1.2 7L12 18.5 5.8 22 7 15 2 10l7-1 3-6.5z" />,
  fork:       (p) => <Icon {...p} d={["M6 3a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M18 3a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M12 17a2 2 0 1 0 0 4 2 2 0 0 0 0-4z","M6 7v3a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V7","M12 13v4"]} />,
  download:   (p) => <Icon {...p} d={["M12 3v12","M7 10l5 5 5-5","M5 21h14"]} />,
  install:    (p) => <Icon {...p} d={["M12 4v9","M8 9l4 4 4-4","M5 19h14"]} />,
  gift:       (p) => <Icon {...p} d={["M3 8h18v4H3z","M5 12v8h14v-8","M12 8v12","M9 8a3 3 0 0 1 3-3 3 3 0 0 1 3 3"]} />,
  trending:   (p) => <Icon {...p} d={["M3 17l6-6 4 4 8-8","M14 7h7v7"]} />,
  badge:      (p) => <Icon {...p} d={["M12 2l3 3 4-1 1 4 3 3-3 3 1 4-4-1-3 3-3-3-4 1-1-4-3-3 3-3-1-4 4 1 3-3z","M9 12l2 2 4-4"]} />,

  // ─── Stack ─────────────────────────────────────────────────────
  triangle:   (p) => <Icon {...p} d="M12 3l10 18H2L12 3z" fill="currentColor" stroke="none" />,
  bolt:       (p) => <Icon {...p} d="M13 2L4 14h7l-1 8 9-12h-7l1-8z" />,
  flask2:     (p) => <Icon {...p} d="M9 3h6v4l5 8a3 3 0 0 1-3 5H7a3 3 0 0 1-3-5l5-8V3z" />,
  cog:        (p) => <Icon {...p} d={["M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z","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.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.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.3h.1a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 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.8v.1a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"]} />,

  // ─── Misc ─────────────────────────────────────────────────────
  flame:      (p) => <Icon {...p} d="M12 2c2 4-4 5-4 9a4 4 0 0 0 8 0c0-2-1-3-1-5 2 2 5 4 5 8a8 8 0 0 1-16 0c0-5 4-7 8-12z" />,
  sun:        (p) => <Icon {...p} d={["M12 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10z","M12 2v2","M12 20v2","M4.9 4.9l1.4 1.4","M17.7 17.7l1.4 1.4","M2 12h2","M20 12h2","M4.9 19.1l1.4-1.4","M17.7 6.3l1.4-1.4"]} />,
  moon:       (p) => <Icon {...p} d="M21 13a8 8 0 1 1-10-10 7 7 0 0 0 10 10z" />,
  globe:      (p) => <Icon {...p} d={["M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z","M3 12h18","M12 3a14 14 0 0 1 0 18","M12 3a14 14 0 0 0 0 18"]} />,
  github:     (p) => <Icon {...p} d="M12 2a10 10 0 0 0-3.2 19.5c.5.1.7-.2.7-.5v-1.7c-2.8.6-3.4-1.4-3.4-1.4-.5-1.2-1.1-1.5-1.1-1.5-.9-.6.1-.6.1-.6 1 .1 1.5 1 1.5 1 .9 1.5 2.4 1.1 3 .8.1-.7.4-1.1.7-1.4-2.2-.3-4.6-1.1-4.6-5 0-1.1.4-2 1-2.7-.1-.3-.4-1.3.1-2.7 0 0 .8-.3 2.7 1a9.4 9.4 0 0 1 5 0c1.9-1.3 2.7-1 2.7-1 .5 1.4.2 2.4.1 2.7.6.7 1 1.6 1 2.7 0 3.9-2.4 4.7-4.6 5 .4.3.7.9.7 1.9v2.8c0 .3.2.6.7.5A10 10 0 0 0 12 2z" />,
};

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