// Line icon set. Usage: <Icon name="projects" /> with optional size + className.
const Icon = ({ name, size = 18, className = "", strokeWidth = 1.6 }) => {
  const p = {
    fill: "none", stroke: "currentColor", strokeWidth, strokeLinecap: "round", strokeLinejoin: "round",
  };
  const paths = {
    overview: <><rect x="3" y="3" width="7" height="9" rx="1.5" {...p} /><rect x="14" y="3" width="7" height="5" rx="1.5" {...p} /><rect x="14" y="12" width="7" height="9" rx="1.5" {...p} /><rect x="3" y="16" width="7" height="5" rx="1.5" {...p} /></>,
    repos: <><path d="M6 3h11a2 2 0 0 1 2 2v14a1 1 0 0 1-1 1H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z" {...p} /><path d="M5 17a2 2 0 0 1 2-2h12" {...p} /></>,
    projects: <><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z" {...p} /></>,
    discord: <><path d="M8 12.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" fill="currentColor" stroke="none" /><path d="M7 17c-2-1-3-3.5-3-7 0-1.5 1.5-3 4-3.5l1 1.5h4l1-1.5c2.5.5 4 2 4 3.5 0 3.5-1 6-3 7" {...p} /><path d="M8.5 18.5 8 20m7.5-1.5L16 20" {...p} /></>,
    providers: <><rect x="3" y="4" width="18" height="6" rx="1.6" {...p} /><rect x="3" y="14" width="18" height="6" rx="1.6" {...p} /><path d="M7 7h.01M7 17h.01" {...p} /></>,
    operations: <><path d="M4 19V5m5 14V9m5 10V7m5 12v-8" {...p} /></>,
    settings: <><circle cx="12" cy="12" r="3" {...p} /><path d="M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-2.7 1.1V21a2 2 0 0 1-4 0v-.1A1.6 1.6 0 0 0 9 19.4a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0-1.1-2.7H3a2 2 0 0 1 0-4h.1A1.6 1.6 0 0 0 4.6 9a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 0 1 4 0v.1a1.6 1.6 0 0 0 2.7 1.1l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1Z" {...p} /></>,
    sun: <><circle cx="12" cy="12" r="4" {...p} /><path d="M12 2v2m0 16v2M4.9 4.9l1.4 1.4m11.4 11.4 1.4 1.4M2 12h2m16 0h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4" {...p} /></>,
    moon: <path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z" {...p} />,
    search: <><circle cx="11" cy="11" r="7" {...p} /><path d="m20 20-3.2-3.2" {...p} /></>,
    plus: <path d="M12 5v14M5 12h14" {...p} />,
    chevron: <path d="m9 6 6 6-6 6" {...p} />,
    chevronDown: <path d="m6 9 6 6 6-6" {...p} />,
    bell: <><path d="M6 9a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6Z" {...p} /><path d="M10 19a2 2 0 0 0 4 0" {...p} /></>,
    refresh: <><path d="M21 12a9 9 0 1 1-3-6.7" {...p} /><path d="M21 4v4h-4" {...p} /></>,
    check: <path d="m5 12 5 5L20 6" {...p} />,
    x: <path d="M6 6l12 12M18 6 6 18" {...p} />,
    trash: <><path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2m1 0v12a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V7" {...p} /></>,
    lock: <><rect x="4" y="10" width="16" height="10" rx="2" {...p} /><path d="M8 10V7a4 4 0 0 1 8 0v3" {...p} /></>,
    bolt: <path d="M13 2 4 14h7l-1 8 9-12h-7l1-8Z" {...p} />,
    loop: <><path d="M15.6 6.24A6.72 6.72 0 1 1 8.4 6.24" {...p} /><polygon points="8.16,3.36 10.8,6.48 6.72,6.96" fill="currentColor" stroke="none" /><circle cx="12" cy="12" r="1.92" fill="currentColor" stroke="none" /></>,
    git: <><circle cx="6" cy="6" r="2.4" {...p} /><circle cx="6" cy="18" r="2.4" {...p} /><circle cx="18" cy="9" r="2.4" {...p} /><path d="M6 8.5v7M8.2 7.4 16 9m-.2 1.4c-1 4-4.5 5-9.8 5" {...p} /></>,
    dot: <circle cx="12" cy="12" r="4" fill="currentColor" stroke="none" />,
    cpu: <><rect x="6" y="6" width="12" height="12" rx="2" {...p} /><rect x="9.5" y="9.5" width="5" height="5" rx="1" {...p} /><path d="M9 3v2m6-2v2M9 19v2m6-2v2M3 9h2m-2 6h2m14-6h2m-2 6h2" {...p} /></>,
    activity: <path d="M3 12h4l3 8 4-16 3 8h4" {...p} />,
    menu: <path d="M4 6h16M4 12h16M4 18h16" {...p} />,
    arrowLeft: <path d="M19 12H5m6-6-6 6 6 6" {...p} />,
    external: <><path d="M14 4h6v6m0-6L10 14" {...p} /><path d="M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4" {...p} /></>,
    sparkle: <path d="M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8L12 3Z" {...p} />,
    clock: <><circle cx="12" cy="12" r="8" {...p} /><path d="M12 8v4l3 2" {...p} /></>,
    azure: <path d="M9 4h6l5 14H4L9 4Z" {...p} />,
    chat: <><path d="M5 5h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H9l-4 3V7a2 2 0 0 1 2-2Z" {...p} /><path d="M8.5 10h7M8.5 13h4" {...p} /></>,
    files: <><path d="M7 3h7l5 5v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z" {...p} /><path d="M14 3v5h5" {...p} /></>,
    terminal: <><rect x="3" y="4" width="18" height="16" rx="2" {...p} /><path d="m7 9 3 3-3 3M13 15h4" {...p} /></>,
    jobs: <><circle cx="12" cy="12" r="8" {...p} /><path d="M12 8v4l3 2" {...p} /></>,
    kanban: <><rect x="3" y="4" width="5" height="16" rx="1.4" {...p} /><rect x="10" y="4" width="5" height="10" rx="1.4" {...p} /><rect x="17" y="4" width="4" height="13" rx="1.4" {...p} /></>,
    conductor: <><path d="M5 19V7l7-3 7 3v12" {...p} /><path d="M9 19v-5h6v5M5 11h14" {...p} /></>,
    swarm: <><circle cx="12" cy="6" r="2.4" {...p} /><circle cx="6" cy="16" r="2.4" {...p} /><circle cx="18" cy="16" r="2.4" {...p} /><path d="M12 8.4 7.5 13.8M12 8.4l4.5 5.4M8.4 16h7.2" {...p} /></>,
    memory: <><path d="M9 3a4 4 0 0 0-4 4 3.5 3.5 0 0 0-1 6.5A3.5 3.5 0 0 0 9 19a3 3 0 0 0 3-1.5V5A3 3 0 0 0 9 3Z" {...p} /><path d="M15 3a4 4 0 0 1 4 4 3.5 3.5 0 0 1 1 6.5A3.5 3.5 0 0 1 15 19a3 3 0 0 1-3-1.5" {...p} /></>,
    skills: <><path d="M12 3l2.2 2.2H18v3.6L20 11l-2 2.2V17h-3.6L12 19l-2.4-2H6v-3.8L4 11l2-2.2V5h3.6L12 3Z" {...p} /><circle cx="12" cy="11" r="2.4" {...p} /></>,
    mcp: <><rect x="4" y="4" width="7" height="7" rx="1.5" {...p} /><rect x="13" y="4" width="7" height="7" rx="1.5" {...p} /><rect x="4" y="13" width="7" height="7" rx="1.5" {...p} /><path d="M16.5 13v7M13 16.5h7" {...p} /></>,
    profiles: <><circle cx="12" cy="8" r="3.4" {...p} /><path d="M5 20a7 7 0 0 1 14 0" {...p} /></>,
    rocket: <><path d="M12 3c3.5 1.5 5 5 5 8l-3 3-4 0-3-3c0-3 1.5-6.5 5-8Z" {...p} /><circle cx="12" cy="9" r="1.3" {...p} /><path d="M9 16c-2 1-2 4-2 4s3 0 4-2M15 16c2 1 2 4 2 4s-3 0-4-2" {...p} /></>,
    send: <path d="M5 12 20 5l-4 14-4-6-7-1Z" {...p} />,
    mic: <><rect x="9" y="3" width="6" height="11" rx="3" {...p} /><path d="M5 11a7 7 0 0 0 14 0M12 18v3" {...p} /></>,
    attach: <path d="M20 11.5 12 19a4 4 0 0 1-6-6l7-7a2.5 2.5 0 0 1 4 4l-7 7a1 1 0 0 1-2-2l6.5-6.5" {...p} />,
    sliders: <><path d="M5 8h14M5 16h14" {...p} /><circle cx="9" cy="8" r="2.2" {...p} /><circle cx="15" cy="16" r="2.2" {...p} /></>,
    play: <path d="M7 5l12 7-12 7V5Z" {...p} />,
    folder: <path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z" {...p} />,
    file: <><path d="M7 3h7l5 5v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z" {...p} /><path d="M14 3v5h5" {...p} /></>,
    edit: <path d="M4 20h4L19 9l-4-4L4 16v4ZM14 6l4 4" {...p} />,
    gauge: <><path d="M4 14a8 8 0 0 1 16 0" {...p} /><path d="M12 14l4-3" {...p} /><circle cx="12" cy="14" r="1.4" fill="currentColor" stroke="none" /></>,
    pin: <><path d="M9 4h6l-1 6 3 3H7l3-3-1-6ZM12 16v4" {...p} /></>,
    help: <><circle cx="12" cy="12" r="9" {...p} /><path d="M9.5 9.5a2.5 2.5 0 1 1 3.4 2.3c-.7.3-.9.8-.9 1.5M12 17h.01" {...p} /></>,
    coffee: <><path d="M5 9h11v5a4 4 0 0 1-4 4H9a4 4 0 0 1-4-4V9Z" {...p} /><path d="M16 10h2a2 2 0 0 1 0 4h-2M7 4v2M11 4v2" {...p} /></>,
  };
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" className={className} aria-hidden="true" style={{ display: "block", flexShrink: 0 }}>
      {paths[name] || null}
    </svg>
  );
};

window.Icon = Icon;
