@jazzmind/busibox-app 3.0.51 → 3.0.53
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/account/IntegrationsSettings.d.ts +2 -0
- package/dist/components/account/IntegrationsSettings.d.ts.map +1 -0
- package/dist/components/account/IntegrationsSettings.js +96 -0
- package/dist/components/account/IntegrationsSettings.js.map +1 -0
- package/dist/components/auth/ProtectedRoute.d.ts +1 -1
- 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/chat/chat-utils.d.ts +15 -15
- package/dist/components/feedback/FeedbackWidget.d.ts +13 -0
- package/dist/components/feedback/FeedbackWidget.d.ts.map +1 -0
- package/dist/components/feedback/FeedbackWidget.js +134 -0
- package/dist/components/feedback/FeedbackWidget.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.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/components/ui/button.d.ts +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/feedback.d.ts +50 -0
- package/dist/lib/authz/feedback.d.ts.map +1 -0
- package/dist/lib/authz/feedback.js +68 -0
- package/dist/lib/authz/feedback.js.map +1 -0
- 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/bridge/config.d.ts +6 -2
- package/dist/lib/bridge/config.d.ts.map +1 -1
- package/dist/lib/bridge/config.js +13 -5
- package/dist/lib/bridge/config.js.map +1 -1
- package/dist/lib/data/settings.d.ts.map +1 -1
- package/dist/lib/data/settings.js +40 -22
- package/dist/lib/data/settings.js.map +1 -1
- package/dist/lib/deploy/app-config.d.ts +24 -0
- package/dist/lib/deploy/app-config.d.ts.map +1 -1
- package/dist/lib/deploy/app-config.js +103 -1
- package/dist/lib/deploy/app-config.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/deployment-client.d.ts +2 -0
- package/dist/lib/deploy/deployment-client.d.ts.map +1 -1
- package/dist/lib/deploy/deployment-client.js +1 -1
- package/dist/lib/deploy/deployment-client.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
|