// Minimal line-icon set — consistent 1.5px stroke, 20x20
const Icon = ({ name, size = 20, stroke = 1.5, className = '', style = {} }) => {
  const s = size;
  const common = {
    width: s, height: s, viewBox: '0 0 24 24', fill: 'none',
    stroke: 'currentColor', strokeWidth: stroke,
    strokeLinecap: 'round', strokeLinejoin: 'round',
    className, style
  };
  const paths = {
    arrow: <path d="M5 12h14M13 5l7 7-7 7" />,
    arrowUpRight: <path d="M7 17L17 7M9 7h8v8" />,
    chevron: <path d="M9 6l6 6-6 6" />,
    check: <path d="M5 12l4 4 10-10" />,
    plus: <path d="M12 5v14M5 12h14" />,
    close: <path d="M6 6l12 12M18 6L6 18" />,
    menu: <path d="M4 7h16M4 12h16M4 17h16" />,
    sparkle: <g><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M18 6l-2.5 2.5M8.5 15.5L6 18"/></g>,
    grid: <g><rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/></g>,
    flow: <g><circle cx="6" cy="6" r="2"/><circle cx="18" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="18" r="2"/><path d="M8 6h8M6 8v8M18 8v8M8 18h8"/></g>,
    compass: <g><circle cx="12" cy="12" r="9"/><path d="M15 9l-2 6-6 2 2-6 6-2z"/></g>,
    users: <g><circle cx="9" cy="9" r="3"/><path d="M3 20c0-3 3-5 6-5s6 2 6 5"/><path d="M17 6a3 3 0 010 6"/><path d="M15 20c0-2 1-3.5 3-4 2 0 3 2 3 4"/></g>,
    cube: <g><path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z"/><path d="M4 7.5L12 12l8-4.5M12 12v9"/></g>,
    signal: <g><path d="M4 18v-3M9 18v-6M14 18v-9M19 18V6"/></g>,
    shield: <path d="M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6l8-3z"/>,
    terminal: <g><path d="M3 5h18v14H3z"/><path d="M7 10l3 2-3 2M12 14h5"/></g>,
    spatial: <g><ellipse cx="12" cy="12" rx="9" ry="4"/><ellipse cx="12" cy="12" rx="4" ry="9"/></g>,
    link: <g><path d="M10 14a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1"/><path d="M14 10a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1"/></g>,
    mail: <g><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></g>,
    pin: <g><path d="M12 21s7-6 7-12a7 7 0 10-14 0c0 6 7 12 7 12z"/><circle cx="12" cy="9" r="2.5"/></g>,
    calendar: <g><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></g>,
    play: <path d="M8 5l12 7-12 7V5z"/>,
    grow: <g><path d="M3 17l6-6 4 4 8-8"/><path d="M14 7h7v7"/></g>,
    sun: <g><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4L7 17M17 7l1.4-1.4"/></g>,
    moon: <path d="M20 14.5A8 8 0 019.5 4a8 8 0 1010.5 10.5z"/>,
    monitor: <g><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></g>,
  };
  return <svg {...common}>{paths[name]}</svg>;
};

window.Icon = Icon;
