Skip to content
File

Blob: src/client/lib/launcher-icons.ts

typescript102 lines
1import {
2 BookOpen,
3 Braces,
4 Calendar,
5 Cloud,
6 Code,
7 Compass,
8 Database,
9 FileText,
10 Folder,
11 GitBranch,
12 Globe,
13 Hammer,
14 Image,
15 Inbox,
16 Layers,
17 type LucideIcon,
18 Lock,
19 MessageSquare,
20 Music,
21 Network,
22 Notebook,
23 Package,
24 Pilcrow,
25 Rocket,
26 Server,
27 Settings,
28 ShieldCheck,
29 Sparkles,
30 Terminal,
31 Workflow,
32 Wrench,
33 Zap,
34} from "lucide-react";
35 
36import {
37 isLauncherIconName,
38 isLauncherTintName,
39 LAUNCHER_ICON_NAMES,
40 LAUNCHER_TINT_NAMES,
41 type LauncherIconName,
42 type LauncherTintName,
43} from "@/shared/launcher";
44 
45export {
46 isLauncherIconName,
47 isLauncherTintName,
48 LAUNCHER_ICON_NAMES,
49 LAUNCHER_TINT_NAMES,
50 type LauncherIconName,
51 type LauncherTintName,
52};
53 
54// Maps registry icon names to their Lucide components. Lives in client
55// code so the Worker bundle stays free of lucide-react.
56export const LAUNCHER_ICONS = {
57 Hammer,
58 Wrench,
59 GitBranch,
60 Cloud,
61 Globe,
62 Network,
63 Database,
64 Server,
65 Terminal,
66 Code,
67 Braces,
68 BookOpen,
69 Pilcrow,
70 FileText,
71 Notebook,
72 ShieldCheck,
73 Lock,
74 Inbox,
75 MessageSquare,
76 Music,
77 Image,
78 Calendar,
79 Sparkles,
80 Zap,
81 Rocket,
82 Workflow,
83 Compass,
84 Layers,
85 Folder,
86 Package,
87 Settings,
88} satisfies Record<LauncherIconName, LucideIcon>;
89 
90export const LAUNCHER_TINTS = {
91 gold: "oklch(0.70 0.11 83)",
92 sky: "oklch(0.68 0.13 258)",
93 violet: "oklch(0.65 0.16 299)",
94 rose: "oklch(0.65 0.11 355)",
95 indigo: "oklch(0.62 0.18 281)",
96 orange: "oklch(0.60 0.16 48)",
97 teal: "oklch(0.60 0.11 183)",
98 lime: "oklch(0.60 0.13 123)",
99 forest: "oklch(0.58 0.13 153)",
100 magenta: "oklch(0.58 0.15 354)",
101} satisfies Record<LauncherTintName, string>;