@jazzmind/busibox-app 3.0.51 → 3.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/SessionProvider.d.ts.map +1 -1
- package/dist/components/auth/SessionProvider.js +16 -3
- package/dist/components/auth/SessionProvider.js.map +1 -1
- package/dist/components/shared/AppIcon.d.ts +3 -8
- package/dist/components/shared/AppIcon.d.ts.map +1 -1
- package/dist/components/shared/AppIcon.js +22 -16
- package/dist/components/shared/AppIcon.js.map +1 -1
- package/dist/contexts/CustomizationContext.d.ts.map +1 -1
- package/dist/contexts/CustomizationContext.js +34 -2
- package/dist/contexts/CustomizationContext.js.map +1 -1
- package/dist/lib/agent/agent-service-client.d.ts +9 -0
- package/dist/lib/agent/agent-service-client.d.ts.map +1 -1
- package/dist/lib/agent/agent-service-client.js.map +1 -1
- package/dist/lib/authz/passkey.d.ts +5 -4
- package/dist/lib/authz/passkey.d.ts.map +1 -1
- package/dist/lib/authz/passkey.js +92 -63
- package/dist/lib/authz/passkey.js.map +1 -1
- package/dist/lib/authz/sso-generator.d.ts +2 -0
- package/dist/lib/authz/sso-generator.d.ts.map +1 -1
- package/dist/lib/authz/sso-generator.js +2 -0
- package/dist/lib/authz/sso-generator.js.map +1 -1
- package/dist/lib/authz/sso-route-handler.d.ts.map +1 -1
- package/dist/lib/authz/sso-route-handler.js +17 -0
- package/dist/lib/authz/sso-route-handler.js.map +1 -1
- package/dist/lib/deploy/app-permissions.d.ts +2 -0
- package/dist/lib/deploy/app-permissions.d.ts.map +1 -1
- package/dist/lib/deploy/app-permissions.js +2 -0
- package/dist/lib/deploy/app-permissions.js.map +1 -1
- package/dist/lib/deploy/github-manifest.d.ts +1 -1
- package/dist/lib/deploy/github-manifest.d.ts.map +1 -1
- package/dist/lib/deploy/github-manifest.js +7 -4
- package/dist/lib/deploy/github-manifest.js.map +1 -1
- package/dist/lib/icons.d.ts +45 -12
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/icons.js +386 -191
- package/dist/lib/icons.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/icons.js
CHANGED
|
@@ -1,212 +1,407 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Icon Library
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Uses lucide-react icons. Icon names are PascalCase lucide icon names
|
|
5
|
+
* (e.g., "Video", "MessageCircle", "BarChart3").
|
|
6
|
+
*
|
|
7
|
+
* A curated subset is exposed for the icon picker with categories.
|
|
8
|
+
* All 1600+ lucide icons can be used by name even if not in the curated list.
|
|
9
|
+
*
|
|
10
|
+
* Legacy icon names (lowercase, from the original custom SVG set) are
|
|
11
|
+
* mapped to their lucide equivalents for backward compatibility.
|
|
12
|
+
*/
|
|
13
|
+
import { icons as lucideIcons } from 'lucide-react';
|
|
14
|
+
/**
|
|
15
|
+
* Maps legacy custom SVG icon names to their lucide equivalents.
|
|
6
16
|
*/
|
|
7
|
-
|
|
17
|
+
const LEGACY_ICON_MAP = {
|
|
18
|
+
video: 'Video',
|
|
19
|
+
library: 'Library',
|
|
20
|
+
chat: 'MessageCircle',
|
|
21
|
+
code: 'Code',
|
|
22
|
+
database: 'Database',
|
|
23
|
+
analytics: 'BarChart3',
|
|
24
|
+
settings: 'Settings',
|
|
25
|
+
users: 'Users',
|
|
26
|
+
calendar: 'Calendar',
|
|
27
|
+
email: 'Mail',
|
|
28
|
+
documents: 'FileText',
|
|
29
|
+
images: 'Image',
|
|
30
|
+
music: 'Music',
|
|
31
|
+
search: 'Search',
|
|
32
|
+
security: 'Lock',
|
|
33
|
+
cloud: 'Cloud',
|
|
34
|
+
mobile: 'Smartphone',
|
|
35
|
+
desktop: 'Monitor',
|
|
36
|
+
globe: 'Globe',
|
|
37
|
+
rocket: 'Rocket',
|
|
38
|
+
star: 'Star',
|
|
39
|
+
heart: 'Heart',
|
|
40
|
+
shield: 'ShieldCheck',
|
|
41
|
+
bell: 'Bell',
|
|
42
|
+
briefcase: 'Briefcase',
|
|
43
|
+
chart: 'BarChart',
|
|
44
|
+
clipboard: 'ClipboardList',
|
|
45
|
+
command: 'Terminal',
|
|
46
|
+
cpu: 'Cpu',
|
|
47
|
+
grid: 'LayoutGrid',
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Resolves a potentially-legacy icon name to a lucide PascalCase name.
|
|
51
|
+
*/
|
|
52
|
+
export function resolveLucideIconName(name) {
|
|
53
|
+
return LEGACY_ICON_MAP[name] || name;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if a lucide icon exists by name.
|
|
57
|
+
*/
|
|
58
|
+
export function isValidIcon(name) {
|
|
59
|
+
const resolved = resolveLucideIconName(name);
|
|
60
|
+
return resolved in lucideIcons;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the lucide icon component by name. Returns undefined if not found.
|
|
64
|
+
*/
|
|
65
|
+
export function getLucideIcon(name) {
|
|
66
|
+
const resolved = resolveLucideIconName(name);
|
|
67
|
+
return lucideIcons[resolved] ?? undefined;
|
|
68
|
+
}
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// Curated icon list for the picker (organized by category)
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
export const CURATED_ICONS = [
|
|
73
|
+
// AI & Machine Learning
|
|
74
|
+
{ name: 'Brain', label: 'Brain', category: 'ai' },
|
|
75
|
+
{ name: 'BrainCircuit', label: 'Brain Circuit', category: 'ai' },
|
|
76
|
+
{ name: 'BrainCog', label: 'Brain Cog', category: 'ai' },
|
|
77
|
+
{ name: 'Bot', label: 'Bot', category: 'ai' },
|
|
78
|
+
{ name: 'BotMessageSquare', label: 'Bot Chat', category: 'ai' },
|
|
79
|
+
{ name: 'Sparkles', label: 'Sparkles', category: 'ai' },
|
|
80
|
+
{ name: 'Wand2', label: 'Magic Wand', category: 'ai' },
|
|
81
|
+
{ name: 'Cpu', label: 'CPU', category: 'ai' },
|
|
82
|
+
{ name: 'CircuitBoard', label: 'Circuit Board', category: 'ai' },
|
|
83
|
+
{ name: 'Workflow', label: 'Workflow', category: 'ai' },
|
|
84
|
+
{ name: 'Network', label: 'Network', category: 'ai' },
|
|
85
|
+
{ name: 'Orbit', label: 'Orbit', category: 'ai' },
|
|
86
|
+
{ name: 'Atom', label: 'Atom', category: 'ai' },
|
|
87
|
+
{ name: 'Lightbulb', label: 'Lightbulb', category: 'ai' },
|
|
88
|
+
// General
|
|
89
|
+
{ name: 'Home', label: 'Home', category: 'general' },
|
|
90
|
+
{ name: 'Search', label: 'Search', category: 'general' },
|
|
91
|
+
{ name: 'Settings', label: 'Settings', category: 'general' },
|
|
92
|
+
{ name: 'Bell', label: 'Bell', category: 'general' },
|
|
93
|
+
{ name: 'Globe', label: 'Globe', category: 'general' },
|
|
94
|
+
{ name: 'LayoutGrid', label: 'Grid', category: 'general' },
|
|
95
|
+
{ name: 'LayoutDashboard', label: 'Dashboard', category: 'general' },
|
|
96
|
+
{ name: 'Bookmark', label: 'Bookmark', category: 'general' },
|
|
97
|
+
{ name: 'Tag', label: 'Tag', category: 'general' },
|
|
98
|
+
{ name: 'Tags', label: 'Tags', category: 'general' },
|
|
99
|
+
{ name: 'Star', label: 'Star', category: 'general' },
|
|
100
|
+
{ name: 'Heart', label: 'Heart', category: 'general' },
|
|
101
|
+
{ name: 'ThumbsUp', label: 'Thumbs Up', category: 'general' },
|
|
102
|
+
{ name: 'Pin', label: 'Pin', category: 'general' },
|
|
103
|
+
{ name: 'Flag', label: 'Flag', category: 'general' },
|
|
104
|
+
{ name: 'Award', label: 'Award', category: 'general' },
|
|
105
|
+
{ name: 'Trophy', label: 'Trophy', category: 'general' },
|
|
106
|
+
{ name: 'Zap', label: 'Zap', category: 'general' },
|
|
107
|
+
{ name: 'Rocket', label: 'Rocket', category: 'general' },
|
|
108
|
+
{ name: 'Eye', label: 'Eye', category: 'general' },
|
|
109
|
+
{ name: 'Clock', label: 'Clock', category: 'general' },
|
|
110
|
+
{ name: 'Timer', label: 'Timer', category: 'general' },
|
|
111
|
+
{ name: 'MapPin', label: 'Map Pin', category: 'general' },
|
|
112
|
+
{ name: 'Map', label: 'Map', category: 'general' },
|
|
113
|
+
{ name: 'Navigation', label: 'Navigation', category: 'general' },
|
|
114
|
+
{ name: 'Compass', label: 'Compass', category: 'general' },
|
|
115
|
+
{ name: 'Link', label: 'Link', category: 'general' },
|
|
116
|
+
{ name: 'ExternalLink', label: 'External Link', category: 'general' },
|
|
117
|
+
{ name: 'QrCode', label: 'QR Code', category: 'general' },
|
|
118
|
+
{ name: 'ScanLine', label: 'Scan', category: 'general' },
|
|
119
|
+
{ name: 'Smartphone', label: 'Smartphone', category: 'general' },
|
|
120
|
+
{ name: 'Monitor', label: 'Monitor', category: 'general' },
|
|
121
|
+
{ name: 'Laptop', label: 'Laptop', category: 'general' },
|
|
122
|
+
{ name: 'Tablet', label: 'Tablet', category: 'general' },
|
|
123
|
+
{ name: 'Watch', label: 'Watch', category: 'general' },
|
|
124
|
+
{ name: 'Plug', label: 'Plug', category: 'general' },
|
|
125
|
+
{ name: 'Power', label: 'Power', category: 'general' },
|
|
126
|
+
{ name: 'Battery', label: 'Battery', category: 'general' },
|
|
127
|
+
{ name: 'Wifi', label: 'WiFi', category: 'general' },
|
|
128
|
+
{ name: 'Bluetooth', label: 'Bluetooth', category: 'general' },
|
|
8
129
|
// Media
|
|
9
|
-
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
},
|
|
130
|
+
{ name: 'Video', label: 'Video', category: 'media' },
|
|
131
|
+
{ name: 'Camera', label: 'Camera', category: 'media' },
|
|
132
|
+
{ name: 'Image', label: 'Image', category: 'media' },
|
|
133
|
+
{ name: 'Images', label: 'Images', category: 'media' },
|
|
134
|
+
{ name: 'Film', label: 'Film', category: 'media' },
|
|
135
|
+
{ name: 'Music', label: 'Music', category: 'media' },
|
|
136
|
+
{ name: 'Music2', label: 'Music 2', category: 'media' },
|
|
137
|
+
{ name: 'Headphones', label: 'Headphones', category: 'media' },
|
|
138
|
+
{ name: 'Mic', label: 'Microphone', category: 'media' },
|
|
139
|
+
{ name: 'Volume2', label: 'Volume', category: 'media' },
|
|
140
|
+
{ name: 'Radio', label: 'Radio', category: 'media' },
|
|
141
|
+
{ name: 'Tv', label: 'TV', category: 'media' },
|
|
142
|
+
{ name: 'Play', label: 'Play', category: 'media' },
|
|
143
|
+
{ name: 'Youtube', label: 'YouTube', category: 'media' },
|
|
144
|
+
{ name: 'Podcast', label: 'Podcast', category: 'media' },
|
|
145
|
+
{ name: 'Clapperboard', label: 'Clapperboard', category: 'media' },
|
|
146
|
+
{ name: 'Aperture', label: 'Aperture', category: 'media' },
|
|
147
|
+
{ name: 'Focus', label: 'Focus', category: 'media' },
|
|
27
148
|
// Productivity
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
149
|
+
{ name: 'Library', label: 'Library', category: 'productivity' },
|
|
150
|
+
{ name: 'FileText', label: 'Document', category: 'productivity' },
|
|
151
|
+
{ name: 'Files', label: 'Files', category: 'productivity' },
|
|
152
|
+
{ name: 'FolderOpen', label: 'Folder Open', category: 'productivity' },
|
|
153
|
+
{ name: 'Folder', label: 'Folder', category: 'productivity' },
|
|
154
|
+
{ name: 'Calendar', label: 'Calendar', category: 'productivity' },
|
|
155
|
+
{ name: 'CalendarDays', label: 'Calendar Days', category: 'productivity' },
|
|
156
|
+
{ name: 'ClipboardList', label: 'Clipboard List', category: 'productivity' },
|
|
157
|
+
{ name: 'ClipboardCheck', label: 'Clipboard Check', category: 'productivity' },
|
|
158
|
+
{ name: 'ListChecks', label: 'Checklist', category: 'productivity' },
|
|
159
|
+
{ name: 'ListTodo', label: 'Todo List', category: 'productivity' },
|
|
160
|
+
{ name: 'CheckSquare', label: 'Check Square', category: 'productivity' },
|
|
161
|
+
{ name: 'StickyNote', label: 'Sticky Note', category: 'productivity' },
|
|
162
|
+
{ name: 'NotebookPen', label: 'Notebook', category: 'productivity' },
|
|
163
|
+
{ name: 'PenTool', label: 'Pen Tool', category: 'productivity' },
|
|
164
|
+
{ name: 'Pencil', label: 'Pencil', category: 'productivity' },
|
|
165
|
+
{ name: 'Eraser', label: 'Eraser', category: 'productivity' },
|
|
166
|
+
{ name: 'Printer', label: 'Printer', category: 'productivity' },
|
|
167
|
+
{ name: 'Archive', label: 'Archive', category: 'productivity' },
|
|
168
|
+
{ name: 'Inbox', label: 'Inbox', category: 'productivity' },
|
|
169
|
+
{ name: 'Package', label: 'Package', category: 'productivity' },
|
|
170
|
+
{ name: 'Kanban', label: 'Kanban', category: 'productivity' },
|
|
171
|
+
{ name: 'GanttChart', label: 'Gantt Chart', category: 'productivity' },
|
|
172
|
+
{ name: 'Table', label: 'Table', category: 'productivity' },
|
|
173
|
+
{ name: 'Sheet', label: 'Spreadsheet', category: 'productivity' },
|
|
174
|
+
{ name: 'Presentation', label: 'Presentation', category: 'productivity' },
|
|
175
|
+
{ name: 'BookOpen', label: 'Book Open', category: 'productivity' },
|
|
176
|
+
{ name: 'BookMarked', label: 'Bookmarked', category: 'productivity' },
|
|
177
|
+
{ name: 'GraduationCap', label: 'Education', category: 'productivity' },
|
|
52
178
|
// Tech
|
|
53
|
-
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: 'command',
|
|
85
|
-
label: 'Command',
|
|
86
|
-
category: 'tech',
|
|
87
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg>',
|
|
88
|
-
},
|
|
89
|
-
// General
|
|
90
|
-
{
|
|
91
|
-
name: 'email',
|
|
92
|
-
label: 'Email',
|
|
93
|
-
category: 'general',
|
|
94
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /></svg>',
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: 'search',
|
|
98
|
-
label: 'Search',
|
|
99
|
-
category: 'general',
|
|
100
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" /></svg>',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'settings',
|
|
104
|
-
label: 'Settings',
|
|
105
|
-
category: 'general',
|
|
106
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'users',
|
|
110
|
-
label: 'Users',
|
|
111
|
-
category: 'general',
|
|
112
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" /></svg>',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: 'security',
|
|
116
|
-
label: 'Security',
|
|
117
|
-
category: 'general',
|
|
118
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" /></svg>',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: 'bell',
|
|
122
|
-
label: 'Notifications',
|
|
123
|
-
category: 'general',
|
|
124
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" /></svg>',
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: 'globe',
|
|
128
|
-
label: 'Globe',
|
|
129
|
-
category: 'general',
|
|
130
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: 'mobile',
|
|
134
|
-
label: 'Mobile',
|
|
135
|
-
category: 'general',
|
|
136
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" /></svg>',
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
name: 'desktop',
|
|
140
|
-
label: 'Desktop',
|
|
141
|
-
category: 'general',
|
|
142
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /></svg>',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: 'grid',
|
|
146
|
-
label: 'Grid',
|
|
147
|
-
category: 'general',
|
|
148
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z" /></svg>',
|
|
149
|
-
},
|
|
179
|
+
{ name: 'Code', label: 'Code', category: 'tech' },
|
|
180
|
+
{ name: 'Code2', label: 'Code 2', category: 'tech' },
|
|
181
|
+
{ name: 'Terminal', label: 'Terminal', category: 'tech' },
|
|
182
|
+
{ name: 'Database', label: 'Database', category: 'tech' },
|
|
183
|
+
{ name: 'Server', label: 'Server', category: 'tech' },
|
|
184
|
+
{ name: 'Cloud', label: 'Cloud', category: 'tech' },
|
|
185
|
+
{ name: 'CloudCog', label: 'Cloud Cog', category: 'tech' },
|
|
186
|
+
{ name: 'Container', label: 'Container', category: 'tech' },
|
|
187
|
+
{ name: 'HardDrive', label: 'Hard Drive', category: 'tech' },
|
|
188
|
+
{ name: 'Bug', label: 'Bug', category: 'tech' },
|
|
189
|
+
{ name: 'GitBranch', label: 'Git Branch', category: 'tech' },
|
|
190
|
+
{ name: 'GitPullRequest', label: 'Pull Request', category: 'tech' },
|
|
191
|
+
{ name: 'Github', label: 'GitHub', category: 'tech' },
|
|
192
|
+
{ name: 'Globe', label: 'Web', category: 'tech' },
|
|
193
|
+
{ name: 'Blocks', label: 'Blocks', category: 'tech' },
|
|
194
|
+
{ name: 'Puzzle', label: 'Puzzle', category: 'tech' },
|
|
195
|
+
{ name: 'Layers', label: 'Layers', category: 'tech' },
|
|
196
|
+
{ name: 'Box', label: 'Box', category: 'tech' },
|
|
197
|
+
{ name: 'Boxes', label: 'Boxes', category: 'tech' },
|
|
198
|
+
{ name: 'Webhook', label: 'Webhook', category: 'tech' },
|
|
199
|
+
{ name: 'Cog', label: 'Cog', category: 'tech' },
|
|
200
|
+
{ name: 'Wrench', label: 'Wrench', category: 'tech' },
|
|
201
|
+
{ name: 'Hammer', label: 'Hammer', category: 'tech' },
|
|
202
|
+
{ name: 'Construction', label: 'Construction', category: 'tech' },
|
|
203
|
+
{ name: 'Cable', label: 'Cable', category: 'tech' },
|
|
204
|
+
{ name: 'Radio', label: 'Radio', category: 'tech' },
|
|
205
|
+
{ name: 'Radar', label: 'Radar', category: 'tech' },
|
|
206
|
+
{ name: 'Satellite', label: 'Satellite', category: 'tech' },
|
|
207
|
+
{ name: 'SatelliteDish', label: 'Satellite Dish', category: 'tech' },
|
|
150
208
|
// Business
|
|
151
|
-
{
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
},
|
|
209
|
+
{ name: 'Briefcase', label: 'Briefcase', category: 'business' },
|
|
210
|
+
{ name: 'Building', label: 'Building', category: 'business' },
|
|
211
|
+
{ name: 'Building2', label: 'Office', category: 'business' },
|
|
212
|
+
{ name: 'Store', label: 'Store', category: 'business' },
|
|
213
|
+
{ name: 'ShoppingCart', label: 'Shopping Cart', category: 'business' },
|
|
214
|
+
{ name: 'ShoppingBag', label: 'Shopping Bag', category: 'business' },
|
|
215
|
+
{ name: 'CreditCard', label: 'Credit Card', category: 'business' },
|
|
216
|
+
{ name: 'Receipt', label: 'Receipt', category: 'business' },
|
|
217
|
+
{ name: 'Handshake', label: 'Handshake', category: 'business' },
|
|
218
|
+
{ name: 'Target', label: 'Target', category: 'business' },
|
|
219
|
+
{ name: 'TrendingUp', label: 'Trending Up', category: 'business' },
|
|
220
|
+
{ name: 'TrendingDown', label: 'Trending Down', category: 'business' },
|
|
221
|
+
{ name: 'BarChart', label: 'Bar Chart', category: 'business' },
|
|
222
|
+
{ name: 'BarChart3', label: 'Analytics', category: 'business' },
|
|
223
|
+
{ name: 'PieChart', label: 'Pie Chart', category: 'business' },
|
|
224
|
+
{ name: 'LineChart', label: 'Line Chart', category: 'business' },
|
|
225
|
+
{ name: 'AreaChart', label: 'Area Chart', category: 'business' },
|
|
226
|
+
{ name: 'Activity', label: 'Activity', category: 'business' },
|
|
227
|
+
{ name: 'Gauge', label: 'Gauge', category: 'business' },
|
|
228
|
+
{ name: 'Scale', label: 'Scale', category: 'business' },
|
|
229
|
+
{ name: 'Landmark', label: 'Landmark', category: 'business' },
|
|
230
|
+
{ name: 'Megaphone', label: 'Megaphone', category: 'business' },
|
|
231
|
+
{ name: 'BadgeDollarSign', label: 'Badge Dollar', category: 'business' },
|
|
232
|
+
{ name: 'Banknote', label: 'Banknote', category: 'business' },
|
|
233
|
+
{ name: 'Coins', label: 'Coins', category: 'business' },
|
|
234
|
+
// Communication
|
|
235
|
+
{ name: 'MessageCircle', label: 'Chat', category: 'communication' },
|
|
236
|
+
{ name: 'MessageSquare', label: 'Message', category: 'communication' },
|
|
237
|
+
{ name: 'MessagesSquare', label: 'Messages', category: 'communication' },
|
|
238
|
+
{ name: 'Mail', label: 'Email', category: 'communication' },
|
|
239
|
+
{ name: 'MailOpen', label: 'Mail Open', category: 'communication' },
|
|
240
|
+
{ name: 'Send', label: 'Send', category: 'communication' },
|
|
241
|
+
{ name: 'Phone', label: 'Phone', category: 'communication' },
|
|
242
|
+
{ name: 'PhoneCall', label: 'Phone Call', category: 'communication' },
|
|
243
|
+
{ name: 'AtSign', label: 'At Sign', category: 'communication' },
|
|
244
|
+
{ name: 'Hash', label: 'Hash', category: 'communication' },
|
|
245
|
+
{ name: 'Share2', label: 'Share', category: 'communication' },
|
|
246
|
+
{ name: 'Forward', label: 'Forward', category: 'communication' },
|
|
247
|
+
{ name: 'Reply', label: 'Reply', category: 'communication' },
|
|
248
|
+
{ name: 'Rss', label: 'RSS', category: 'communication' },
|
|
249
|
+
// Finance
|
|
250
|
+
{ name: 'DollarSign', label: 'Dollar', category: 'finance' },
|
|
251
|
+
{ name: 'Euro', label: 'Euro', category: 'finance' },
|
|
252
|
+
{ name: 'PoundSterling', label: 'Pound', category: 'finance' },
|
|
253
|
+
{ name: 'Wallet', label: 'Wallet', category: 'finance' },
|
|
254
|
+
{ name: 'Landmark', label: 'Bank', category: 'finance' },
|
|
255
|
+
{ name: 'Calculator', label: 'Calculator', category: 'finance' },
|
|
256
|
+
{ name: 'Percent', label: 'Percent', category: 'finance' },
|
|
257
|
+
{ name: 'ArrowUpDown', label: 'Exchange', category: 'finance' },
|
|
258
|
+
{ name: 'Receipt', label: 'Invoice', category: 'finance' },
|
|
259
|
+
// Creative
|
|
260
|
+
{ name: 'Palette', label: 'Palette', category: 'creative' },
|
|
261
|
+
{ name: 'Paintbrush', label: 'Paintbrush', category: 'creative' },
|
|
262
|
+
{ name: 'PaintBucket', label: 'Paint Bucket', category: 'creative' },
|
|
263
|
+
{ name: 'Brush', label: 'Brush', category: 'creative' },
|
|
264
|
+
{ name: 'Scissors', label: 'Scissors', category: 'creative' },
|
|
265
|
+
{ name: 'Ruler', label: 'Ruler', category: 'creative' },
|
|
266
|
+
{ name: 'Figma', label: 'Design', category: 'creative' },
|
|
267
|
+
{ name: 'Pipette', label: 'Color Picker', category: 'creative' },
|
|
268
|
+
{ name: 'Shapes', label: 'Shapes', category: 'creative' },
|
|
269
|
+
{ name: 'PenLine', label: 'Pen', category: 'creative' },
|
|
270
|
+
{ name: 'Type', label: 'Typography', category: 'creative' },
|
|
271
|
+
{ name: 'Sparkle', label: 'Sparkle', category: 'creative' },
|
|
272
|
+
// Files & Storage
|
|
273
|
+
{ name: 'File', label: 'File', category: 'files' },
|
|
274
|
+
{ name: 'FileText', label: 'Text File', category: 'files' },
|
|
275
|
+
{ name: 'FileImage', label: 'Image File', category: 'files' },
|
|
276
|
+
{ name: 'FileVideo', label: 'Video File', category: 'files' },
|
|
277
|
+
{ name: 'FileAudio', label: 'Audio File', category: 'files' },
|
|
278
|
+
{ name: 'FileCode', label: 'Code File', category: 'files' },
|
|
279
|
+
{ name: 'FileSpreadsheet', label: 'Spreadsheet', category: 'files' },
|
|
280
|
+
{ name: 'FileArchive', label: 'Archive', category: 'files' },
|
|
281
|
+
{ name: 'Download', label: 'Download', category: 'files' },
|
|
282
|
+
{ name: 'Upload', label: 'Upload', category: 'files' },
|
|
283
|
+
{ name: 'FolderTree', label: 'Folder Tree', category: 'files' },
|
|
284
|
+
{ name: 'FolderGit', label: 'Repo', category: 'files' },
|
|
285
|
+
{ name: 'HardDrive', label: 'Storage', category: 'files' },
|
|
286
|
+
{ name: 'DatabaseZap', label: 'Database Zap', category: 'files' },
|
|
287
|
+
// People & Social
|
|
288
|
+
{ name: 'User', label: 'User', category: 'social' },
|
|
289
|
+
{ name: 'Users', label: 'Users', category: 'social' },
|
|
290
|
+
{ name: 'UserPlus', label: 'Add User', category: 'social' },
|
|
291
|
+
{ name: 'UserCog', label: 'User Settings', category: 'social' },
|
|
292
|
+
{ name: 'Contact', label: 'Contact', category: 'social' },
|
|
293
|
+
{ name: 'PersonStanding', label: 'Person', category: 'social' },
|
|
294
|
+
{ name: 'Group', label: 'Group', category: 'social' },
|
|
295
|
+
{ name: 'Crown', label: 'Crown', category: 'social' },
|
|
296
|
+
{ name: 'BadgeCheck', label: 'Verified', category: 'social' },
|
|
297
|
+
// Science & Education
|
|
298
|
+
{ name: 'Microscope', label: 'Microscope', category: 'science' },
|
|
299
|
+
{ name: 'FlaskConical', label: 'Flask', category: 'science' },
|
|
300
|
+
{ name: 'TestTube2', label: 'Test Tube', category: 'science' },
|
|
301
|
+
{ name: 'Dna', label: 'DNA', category: 'science' },
|
|
302
|
+
{ name: 'Beaker', label: 'Beaker', category: 'science' },
|
|
303
|
+
{ name: 'Calculator', label: 'Calculator', category: 'science' },
|
|
304
|
+
{ name: 'Telescope', label: 'Telescope', category: 'science' },
|
|
305
|
+
// Health
|
|
306
|
+
{ name: 'HeartPulse', label: 'Heart Pulse', category: 'health' },
|
|
307
|
+
{ name: 'Stethoscope', label: 'Stethoscope', category: 'health' },
|
|
308
|
+
{ name: 'Pill', label: 'Pill', category: 'health' },
|
|
309
|
+
{ name: 'Syringe', label: 'Syringe', category: 'health' },
|
|
310
|
+
{ name: 'Cross', label: 'Medical', category: 'health' },
|
|
311
|
+
{ name: 'Thermometer', label: 'Thermometer', category: 'health' },
|
|
312
|
+
{ name: 'Baby', label: 'Baby', category: 'health' },
|
|
313
|
+
{ name: 'Accessibility', label: 'Accessibility', category: 'health' },
|
|
314
|
+
// Transport
|
|
315
|
+
{ name: 'Car', label: 'Car', category: 'transport' },
|
|
316
|
+
{ name: 'Truck', label: 'Truck', category: 'transport' },
|
|
317
|
+
{ name: 'Ship', label: 'Ship', category: 'transport' },
|
|
318
|
+
{ name: 'Plane', label: 'Plane', category: 'transport' },
|
|
319
|
+
{ name: 'Train', label: 'Train', category: 'transport' },
|
|
320
|
+
{ name: 'Bike', label: 'Bike', category: 'transport' },
|
|
321
|
+
{ name: 'Anchor', label: 'Anchor', category: 'transport' },
|
|
322
|
+
{ name: 'Navigation', label: 'Navigation', category: 'transport' },
|
|
323
|
+
{ name: 'Compass', label: 'Compass', category: 'transport' },
|
|
324
|
+
{ name: 'Milestone', label: 'Milestone', category: 'transport' },
|
|
325
|
+
// Nature
|
|
326
|
+
{ name: 'Leaf', label: 'Leaf', category: 'nature' },
|
|
327
|
+
{ name: 'Trees', label: 'Trees', category: 'nature' },
|
|
328
|
+
{ name: 'Flower2', label: 'Flower', category: 'nature' },
|
|
329
|
+
{ name: 'Sun', label: 'Sun', category: 'nature' },
|
|
330
|
+
{ name: 'Moon', label: 'Moon', category: 'nature' },
|
|
331
|
+
{ name: 'CloudSun', label: 'Weather', category: 'nature' },
|
|
332
|
+
{ name: 'Snowflake', label: 'Snowflake', category: 'nature' },
|
|
333
|
+
{ name: 'Droplets', label: 'Water', category: 'nature' },
|
|
334
|
+
{ name: 'Mountain', label: 'Mountain', category: 'nature' },
|
|
335
|
+
{ name: 'Waves', label: 'Waves', category: 'nature' },
|
|
336
|
+
{ name: 'Wind', label: 'Wind', category: 'nature' },
|
|
337
|
+
{ name: 'Flame', label: 'Flame', category: 'nature' },
|
|
338
|
+
// Security / Status
|
|
339
|
+
{ name: 'Lock', label: 'Lock', category: 'status' },
|
|
340
|
+
{ name: 'Unlock', label: 'Unlock', category: 'status' },
|
|
341
|
+
{ name: 'ShieldCheck', label: 'Shield Check', category: 'status' },
|
|
342
|
+
{ name: 'Shield', label: 'Shield', category: 'status' },
|
|
343
|
+
{ name: 'ShieldAlert', label: 'Shield Alert', category: 'status' },
|
|
344
|
+
{ name: 'Key', label: 'Key', category: 'status' },
|
|
345
|
+
{ name: 'KeyRound', label: 'Key Round', category: 'status' },
|
|
346
|
+
{ name: 'Fingerprint', label: 'Fingerprint', category: 'status' },
|
|
347
|
+
{ name: 'ScanFace', label: 'Face ID', category: 'status' },
|
|
348
|
+
{ name: 'AlertTriangle', label: 'Warning', category: 'status' },
|
|
349
|
+
{ name: 'AlertCircle', label: 'Alert', category: 'status' },
|
|
350
|
+
{ name: 'CheckCircle', label: 'Success', category: 'status' },
|
|
351
|
+
{ name: 'XCircle', label: 'Error', category: 'status' },
|
|
352
|
+
{ name: 'Info', label: 'Info', category: 'status' },
|
|
353
|
+
{ name: 'HelpCircle', label: 'Help', category: 'status' },
|
|
193
354
|
];
|
|
194
355
|
/**
|
|
195
|
-
*
|
|
356
|
+
* All available lucide icon names (for search in the icon picker).
|
|
196
357
|
*/
|
|
197
|
-
export function
|
|
198
|
-
return
|
|
358
|
+
export function getAllLucideIconNames() {
|
|
359
|
+
return Object.keys(lucideIcons);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Get the curated icon list for the picker.
|
|
363
|
+
*/
|
|
364
|
+
export function getCuratedIcons() {
|
|
365
|
+
return CURATED_ICONS;
|
|
199
366
|
}
|
|
200
367
|
/**
|
|
201
|
-
* Get icons by category
|
|
368
|
+
* Get curated icons filtered by category.
|
|
202
369
|
*/
|
|
203
370
|
export function getIconsByCategory(category) {
|
|
204
|
-
return
|
|
371
|
+
return CURATED_ICONS.filter((icon) => icon.category === category);
|
|
205
372
|
}
|
|
206
373
|
/**
|
|
207
|
-
* Get all
|
|
374
|
+
* Get all categories that have curated icons.
|
|
208
375
|
*/
|
|
209
376
|
export function getCategories() {
|
|
210
|
-
|
|
377
|
+
const cats = new Set(CURATED_ICONS.map((i) => i.category));
|
|
378
|
+
return Array.from(cats);
|
|
379
|
+
}
|
|
380
|
+
// ---------------------------------------------------------------------------
|
|
381
|
+
// Backward-compatible exports
|
|
382
|
+
// ---------------------------------------------------------------------------
|
|
383
|
+
/**
|
|
384
|
+
* @deprecated Use CURATED_ICONS instead.
|
|
385
|
+
*/
|
|
386
|
+
export const ICONS = CURATED_ICONS;
|
|
387
|
+
/**
|
|
388
|
+
* @deprecated Use getLucideIcon() instead.
|
|
389
|
+
* Returns a compat object with name/label/category/svg for legacy consumers.
|
|
390
|
+
*/
|
|
391
|
+
export function getIcon(name) {
|
|
392
|
+
const resolved = resolveLucideIconName(name);
|
|
393
|
+
const icon = CURATED_ICONS.find((i) => i.name === resolved);
|
|
394
|
+
if (!icon)
|
|
395
|
+
return undefined;
|
|
396
|
+
const LucideComponent = getLucideIcon(resolved);
|
|
397
|
+
if (!LucideComponent)
|
|
398
|
+
return undefined;
|
|
399
|
+
// For legacy consumers that need SVG strings, we won't generate them.
|
|
400
|
+
// Return a placeholder so existing code doesn't break, but AppIcon should
|
|
401
|
+
// be used for rendering.
|
|
402
|
+
return {
|
|
403
|
+
...icon,
|
|
404
|
+
svg: '',
|
|
405
|
+
};
|
|
211
406
|
}
|
|
212
407
|
//# sourceMappingURL=icons.js.map
|