/* ============================================================
   SVG icon set — minimal, monoline, single-color
   ============================================================ */
/* global React */
const Icon = ({ name, size = 14, color = "currentColor", strokeWidth = 1.5 }) => {
  const props = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" };
  switch (name) {
    case "sun":
      return <svg {...props}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.4 1.4M17.6 17.6L19 19M5 19l1.4-1.4M17.6 6.4L19 5"/></svg>;
    case "pin":
      return <svg {...props}><path d="M12 21s-7-7-7-12a7 7 0 0114 0c0 5-7 12-7 12z"/><circle cx="12" cy="9" r="2.5"/></svg>;
    case "home":
      return <svg {...props}><path d="M3 11l9-7 9 7v9a1 1 0 01-1 1h-5v-7H9v7H4a1 1 0 01-1-1z"/></svg>;
    case "warehouse":
      return <svg {...props}><path d="M3 21V8l9-4 9 4v13"/><path d="M3 21h18M7 21v-7h10v7"/><path d="M9 14h6"/></svg>;
    case "people":
      return <svg {...props}><circle cx="9" cy="8" r="3"/><circle cx="17" cy="9" r="2"/><path d="M3 21v-2a4 4 0 014-4h4a4 4 0 014 4v2M16 21v-1a3 3 0 013-3h1"/></svg>;
    case "layers":
      return <svg {...props}><path d="M12 3l9 5-9 5-9-5 9-5z"/><path d="M3 13l9 5 9-5M3 18l9 5 9-5"/></svg>;
    case "play":
      return <svg {...props}><polygon points="6 4 20 12 6 20 6 4" fill={color} stroke="none"/></svg>;
    case "pause":
      return <svg {...props}><rect x="6" y="4" width="4" height="16" fill={color} stroke="none"/><rect x="14" y="4" width="4" height="16" fill={color} stroke="none"/></svg>;
    case "info":
      return <svg {...props}><circle cx="12" cy="12" r="9"/><path d="M12 8v.5M11 11h1v6"/></svg>;
    case "search":
      return <svg {...props}><circle cx="11" cy="11" r="7"/><path d="M16 16l5 5"/></svg>;
    case "chevron":
      return <svg {...props}><path d="M9 6l6 6-6 6"/></svg>;
    case "down":
      return <svg {...props}><path d="M6 9l6 6 6-6"/></svg>;
    case "external":
      return <svg {...props}><path d="M14 3h7v7M21 3l-9 9M5 5h6M5 5v14h14v-6"/></svg>;
    case "filter":
      return <svg {...props}><path d="M3 5h18M6 12h12M10 19h4"/></svg>;
    case "settings":
      return <svg {...props}><circle cx="12" cy="12" r="3"/><path d="M19 12a7 7 0 00-.1-1.3l2.1-1.6-2-3.4-2.4 1a7 7 0 00-2.3-1.3L14 3h-4l-.3 2.4a7 7 0 00-2.3 1.3L5 5.7l-2 3.4 2.1 1.6A7 7 0 005 12c0 .4 0 .9.1 1.3L3 14.9l2 3.4 2.4-1a7 7 0 002.3 1.3L10 21h4l.3-2.4a7 7 0 002.3-1.3l2.4 1 2-3.4-2.1-1.6c.1-.4.1-.9.1-1.3z"/></svg>;
    case "battery":
      return <svg {...props}><rect x="2" y="7" width="18" height="10" rx="2"/><path d="M22 11v2"/><path d="M6 10v4M10 10v4M14 10v4"/></svg>;
    case "drum":
      return <svg {...props}><ellipse cx="12" cy="6" rx="8" ry="2.5"/><path d="M4 6v12c0 1.4 3.6 2.5 8 2.5s8-1.1 8-2.5V6"/></svg>;
    case "tilt":
      return <svg {...props}><path d="M3 20h18"/><path d="M5 20l11-12 5 12"/></svg>;
    case "currency":
      return <svg {...props}><path d="M6 5h12M6 9h12M9 5c5 0 5 6 0 6h-3l8 8"/></svg>;
    case "tree":
      return <svg {...props}><path d="M12 3l-5 7h3l-4 6h12l-4-6h3z"/><path d="M12 16v5"/></svg>;
    case "car":
      return <svg {...props}><path d="M3 14l2-6h14l2 6"/><path d="M3 14v5h3v-2h12v2h3v-5"/><circle cx="7" cy="14" r="1.5"/><circle cx="17" cy="14" r="1.5"/></svg>;
    case "co2":
      return <svg {...props}><path d="M7 9a3 3 0 100 6"/><circle cx="14" cy="12" r="3"/><path d="M18 16l3 3M18 19l3-3"/></svg>;
    case "diamond":
      return <svg {...props}><path d="M12 2L4 12l8 10 8-10z"/></svg>;
    case "compass":
      return <svg {...props}><circle cx="12" cy="12" r="9"/><path d="M16 8l-2 6-6 2 2-6z" fill={color}/></svg>;
    case "calendar":
      return <svg {...props}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></svg>;
    case "table":
      return <svg {...props}><rect x="3" y="3" width="18" height="18" rx="1"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></svg>;
    case "switch":
      return <svg {...props}><path d="M3 8h14M15 5l3 3-3 3"/><path d="M21 16H7M9 13l-3 3 3 3"/></svg>;
    case "expand":
      return <svg {...props}><path d="M3 9V3h6M21 9V3h-6M3 15v6h6M21 15v6h-6"/></svg>;
    case "x":
      return <svg {...props}><path d="M6 6l12 12M18 6L6 18"/></svg>;
    case "check":
      return <svg {...props}><path d="M5 12l5 5L20 7"/></svg>;
    case "eye":
      return <svg {...props}><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"/></svg>;
    case "eye-off":
      return <svg {...props}><path d="M3 3l18 18"/><path d="M10.5 6.2A10.9 10.9 0 0112 6c6.5 0 10 7 10 7a18 18 0 01-3.5 4.3"/><path d="M6.5 6.5C3.5 8.6 2 12 2 12s3.5 7 10 7c1.6 0 3-.3 4.3-.8"/><path d="M9.5 9.5a3 3 0 004.2 4.2"/></svg>;
    default:
      return <svg {...props}><circle cx="12" cy="12" r="6"/></svg>;
  }
};

window.Icon = Icon;
