// A small set of clean, single-weight line icons (SF-Symbols-ish): 24px grid, 1.7 stroke, // currentColor, rounded caps/joins. Replaces emoji in the chrome for a crisp, consistent look. export type IconName = | "sparkle" | "logo" | "sidebar" | "sidebarRight" | "signOut" | "chat" | "diamond" | "search" | "folder" | "folderPlus" | "plus" | "clock" | "sliders" | "gear" | "inbox" | "code" | "wrench" | "pencil" | "branch" | "arrowLeft" | "copy" | "refresh" | "panelClose" | "panelOpen" | "plug" | "audit" | "chevronRight" | "chevronDown" | "moreHorizontal" | "pin" | "archive" | "trash" | "shield" | "file" | "fileCode" | "image" | "table" | "mic" | "stop" | "x"; export function Icon({ name, size = 16, className, }: { name: IconName; size?: number; className?: string; }) { const s = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.7, strokeLinecap: "round" as const, strokeLinejoin: "round" as const, className, "aria-hidden": true, }; switch (name) { case "sparkle": // Filled 4-point twinkle — crisp at small sizes. return ( ); case "logo": // The OpenWorker mark — a 6-point star, matching the app + macOS tray icon. return ( ); case "sidebar": // Clean "sidebar panel" toggle — rounded rect + divider, no chevron (one glyph both states). return ( ); case "sidebarRight": // Right-panel counterpart of "sidebar" — same rounded rect + divider, mirrored. return ( ); case "signOut": return ( ); case "folder": // Clean single-tab folder (Lucide-style) — no internal divider line. return ( ); case "shield": return ( ); case "file": // Document with a folded corner + text lines. return ( ); case "fileCode": // Document with marks (html/code). return ( ); case "image": // Picture frame: sun + mountains. return ( ); case "table": // Spreadsheet grid (csv/xlsx). return ( ); case "mic": return ( ); case "stop": return ( ); case "x": return ( ); case "folderPlus": // Same clean folder body + a centered plus (Lucide-style). return ( ); case "plus": return ( ); case "clock": return ( ); case "sliders": // Two rails, knob on each, rails broken around the knobs (owner pick 2026-07-11: // the three-rail version read as heavier than the mocks' two-rail glyph). return ( ); case "gear": return ( ); case "inbox": return ( ); case "code": return ( ); case "chat": return ( ); case "wrench": return ( ); case "search": return ( ); case "diamond": return ( ); case "pencil": return ( ); case "branch": return ( ); case "arrowLeft": return ( ); case "copy": return ( ); case "refresh": return ( ); case "panelClose": return ( ); case "panelOpen": return ( ); case "plug": return ( ); case "audit": return ( ); case "chevronRight": return ( ); case "chevronDown": return ( ); case "moreHorizontal": return ( ); case "pin": return ( ); case "archive": return ( ); case "trash": return ( ); } }