Files
commitea/docs/design/components/core/Icon.js.txt
Christian LeDoux 7a5cacc54c Scaffold CommiTea: yarn workspaces, Electron shell, core label schema, design system
- apps/desktop: electron-vite + React + Tailwind mapped onto design tokens
  (preflight off; tokens/base.css owns the reset); boots to a Reginald
  placeholder proving fonts/tokens/core wiring
- packages/core: pure TS; gitea label schema (est/*, p/*, deadline/hard)
  with pessimistic conflict resolution + 15 unit tests
- docs/design: full design handoff (tokens, 16 component contracts,
  interactive 14-screen prototype, Reginald voice rules)
- docs/PLAN.md: product plan (purity rule, pm-state repo, deterministic
  scheduler + Monte Carlo, directive log)
- Deliberate deviation from novelpad stack: no ElectricSQL/PGlite — local
  store is a rebuildable cache over gitea REST/webhooks (better-sqlite3
  in main process, arriving in P1)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 20:42:46 -04:00

33 lines
12 KiB
Plaintext

import React from 'react';
/* Generated from assets/icons/*.svg (lucide-static v0.462.0, ISC). Do not edit paths by hand. */
const ICONS = {"activity":"<path d=\"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\"></path>","arrow-left":"<path d=\"m12 19-7-7 7-7\"></path>\n <path d=\"M19 12H5\"></path>","arrow-right":"<path d=\"M5 12h14\"></path>\n <path d=\"m12 5 7 7-7 7\"></path>","arrow-up-right":"<path d=\"M7 7h10v10\"></path>\n <path d=\"M7 17 17 7\"></path>","bell":"<path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>","calendar":"<path d=\"M8 2v4\"></path>\n <path d=\"M16 2v4\"></path>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"></rect>\n <path d=\"M3 10h18\"></path>","chart-line":"<path d=\"M3 3v16a2 2 0 0 0 2 2h16\"></path>\n <path d=\"m19 9-5 5-4-4-3 3\"></path>","chart-no-axes-gantt":"<path d=\"M8 6h10\"></path>\n <path d=\"M6 12h9\"></path>\n <path d=\"M11 18h7\"></path>","check":"<path d=\"M20 6 9 17l-5-5\"></path>","chevron-down":"<path d=\"m6 9 6 6 6-6\"></path>","chevron-left":"<path d=\"m15 18-6-6 6-6\"></path>","chevron-right":"<path d=\"m9 18 6-6-6-6\"></path>","chevron-up":"<path d=\"m18 15-6-6-6 6\"></path>","circle-alert":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"></line>\n <line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"></line>","circle-check":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"m9 12 2 2 4-4\"></path>","circle-dashed":"<path d=\"M10.1 2.182a10 10 0 0 1 3.8 0\"></path>\n <path d=\"M13.9 21.818a10 10 0 0 1-3.8 0\"></path>\n <path d=\"M17.609 3.721a10 10 0 0 1 2.69 2.7\"></path>\n <path d=\"M2.182 13.9a10 10 0 0 1 0-3.8\"></path>\n <path d=\"M20.279 17.609a10 10 0 0 1-2.7 2.69\"></path>\n <path d=\"M21.818 10.1a10 10 0 0 1 0 3.8\"></path>\n <path d=\"M3.721 6.391a10 10 0 0 1 2.7-2.69\"></path>\n <path d=\"M6.391 20.279a10 10 0 0 1-2.69-2.7\"></path>","circle-dot":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle>","circle":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>","clock-3":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <polyline points=\"12 6 12 12 16.5 12\"></polyline>","clock":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <polyline points=\"12 6 12 12 16 14\"></polyline>","coffee":"<path d=\"M10 2v2\"></path>\n <path d=\"M14 2v2\"></path>\n <path d=\"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1\"></path>\n <path d=\"M6 2v2\"></path>","copy":"<rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>","ellipsis":"<circle cx=\"12\" cy=\"12\" r=\"1\"></circle>\n <circle cx=\"19\" cy=\"12\" r=\"1\"></circle>\n <circle cx=\"5\" cy=\"12\" r=\"1\"></circle>","external-link":"<path d=\"M15 3h6v6\"></path>\n <path d=\"M10 14 21 3\"></path>\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>","eye":"<path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>","filter":"<polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"></polygon>","flag":"<path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"></path>\n <line x1=\"4\" x2=\"4\" y1=\"22\" y2=\"15\"></line>","gauge":"<path d=\"m12 14 4-4\"></path>\n <path d=\"M3.34 19a10 10 0 1 1 17.32 0\"></path>","git-branch":"<line x1=\"6\" x2=\"6\" y1=\"3\" y2=\"15\"></line>\n <circle cx=\"18\" cy=\"6\" r=\"3\"></circle>\n <circle cx=\"6\" cy=\"18\" r=\"3\"></circle>\n <path d=\"M18 9a9 9 0 0 1-9 9\"></path>","git-commit-horizontal":"<circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n <line x1=\"3\" x2=\"9\" y1=\"12\" y2=\"12\"></line>\n <line x1=\"15\" x2=\"21\" y1=\"12\" y2=\"12\"></line>","git-merge":"<circle cx=\"18\" cy=\"18\" r=\"3\"></circle>\n <circle cx=\"6\" cy=\"6\" r=\"3\"></circle>\n <path d=\"M6 21V9a9 9 0 0 0 9 9\"></path>","git-pull-request":"<circle cx=\"18\" cy=\"18\" r=\"3\"></circle>\n <circle cx=\"6\" cy=\"6\" r=\"3\"></circle>\n <path d=\"M13 6h3a2 2 0 0 1 2 2v7\"></path>\n <line x1=\"6\" x2=\"6\" y1=\"9\" y2=\"21\"></line>","history":"<path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path>\n <path d=\"M3 3v5h5\"></path>\n <path d=\"M12 7v5l4 2\"></path>","inbox":"<polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\"></polyline>\n <path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path>","info":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M12 16v-4\"></path>\n <path d=\"M12 8h.01\"></path>","keyboard":"<path d=\"M10 8h.01\"></path>\n <path d=\"M12 12h.01\"></path>\n <path d=\"M14 8h.01\"></path>\n <path d=\"M16 12h.01\"></path>\n <path d=\"M18 8h.01\"></path>\n <path d=\"M6 8h.01\"></path>\n <path d=\"M7 16h10\"></path>\n <path d=\"M8 12h.01\"></path>\n <rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"></rect>","layers":"<path d=\"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z\"></path>\n <path d=\"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65\"></path>\n <path d=\"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65\"></path>","leaf":"<path d=\"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z\"></path>\n <path d=\"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12\"></path>","link":"<path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"></path>\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"></path>","list-filter":"<path d=\"M3 6h18\"></path>\n <path d=\"M7 12h10\"></path>\n <path d=\"M10 18h4\"></path>","list":"<path d=\"M3 12h.01\"></path>\n <path d=\"M3 18h.01\"></path>\n <path d=\"M3 6h.01\"></path>\n <path d=\"M8 12h13\"></path>\n <path d=\"M8 18h13\"></path>\n <path d=\"M8 6h13\"></path>","loader-circle":"<path d=\"M21 12a9 9 0 1 1-6.219-8.56\"></path>","message-square":"<path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>","milestone":"<path d=\"M12 13v8\"></path>\n <path d=\"M12 3v3\"></path>\n <path d=\"M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z\"></path>","minus":"<path d=\"M5 12h14\"></path>","moon":"<path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\"></path>","network":"<rect x=\"16\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"></rect>\n <rect x=\"2\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"></rect>\n <rect x=\"9\" y=\"2\" width=\"6\" height=\"6\" rx=\"1\"></rect>\n <path d=\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\"></path>\n <path d=\"M12 12V8\"></path>","panel-left":"<rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"></rect>\n <path d=\"M9 3v18\"></path>","pause":"<rect x=\"14\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"></rect>\n <rect x=\"6\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"></rect>","pencil":"<path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"></path>\n <path d=\"m15 5 4 4\"></path>","play":"<polygon points=\"6 3 20 12 6 21 6 3\"></polygon>","plus":"<path d=\"M5 12h14\"></path>\n <path d=\"M12 5v14\"></path>","refresh-cw":"<path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"></path>\n <path d=\"M21 3v5h-5\"></path>\n <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\"></path>\n <path d=\"M8 16H3v5\"></path>","search":"<circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <path d=\"m21 21-4.3-4.3\"></path>","send":"<path d=\"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\"></path>\n <path d=\"m21.854 2.147-10.94 10.939\"></path>","settings-2":"<path d=\"M20 7h-9\"></path>\n <path d=\"M14 17H5\"></path>\n <circle cx=\"17\" cy=\"17\" r=\"3\"></circle>\n <circle cx=\"7\" cy=\"7\" r=\"3\"></circle>","settings":"<path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>","sparkles":"<path d=\"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\"></path>\n <path d=\"M20 3v4\"></path>\n <path d=\"M22 5h-4\"></path>\n <path d=\"M4 17v2\"></path>\n <path d=\"M5 18H3\"></path>","square-kanban":"<rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"></rect>\n <path d=\"M8 7v7\"></path>\n <path d=\"M12 7v4\"></path>\n <path d=\"M16 7v9\"></path>","sun":"<circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n <path d=\"M12 2v2\"></path>\n <path d=\"M12 20v2\"></path>\n <path d=\"m4.93 4.93 1.41 1.41\"></path>\n <path d=\"m17.66 17.66 1.41 1.41\"></path>\n <path d=\"M2 12h2\"></path>\n <path d=\"M20 12h2\"></path>\n <path d=\"m6.34 17.66-1.41 1.41\"></path>\n <path d=\"m19.07 4.93-1.41 1.41\"></path>","tag":"<path d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"></path>\n <circle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"></circle>","target":"<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"6\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"2\"></circle>","trash-2":"<path d=\"M3 6h18\"></path>\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\"></path>\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\"></path>\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\"></line>\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\"></line>","trending-up":"<polyline points=\"22 7 13.5 15.5 8.5 10.5 2 17\"></polyline>\n <polyline points=\"16 7 22 7 22 13\"></polyline>","triangle-alert":"<path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>","user":"<path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>","users":"<path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>","x":"<path d=\"M18 6 6 18\"></path>\n <path d=\"m6 6 12 12\"></path>","zap":"<path d=\"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\"></path>"};
export function Icon({ name, size = 16, strokeWidth = 1.5, title, style, ...rest }) {
const inner = ICONS[name];
if (!inner) {
console.warn('[CommiTea Icon] unknown icon: ' + name);
return null;
}
return (
<svg
width={size}
height={size}
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth={strokeWidth}
strokeLinecap="round"
strokeLinejoin="round"
aria-hidden={title ? undefined : true}
role={title ? 'img' : undefined}
aria-label={title}
style={{ flexShrink: 0, ...style }}
dangerouslySetInnerHTML={{ __html: inner }}
{...rest}
/>
);
}
export const ICON_NAMES = Object.keys(ICONS);