@santi020k/lumen-core 0.3.0 → 1.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,8/CA6HtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAA;CAC9D;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;EAMwB,CAAA"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,o2DAuJtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;CACrC;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJ8C,CAAA;AAEjF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAA;IACxC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;EAiBkB,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,SAAS,QAAQ,MAAM,EAAE,EAAE,CAAA;IAC7C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,QAAQ,CAAA;CACpB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E4C,CAAA;AAE9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;CACxE;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBwB,CAAA"}
@@ -9,6 +9,7 @@ export const lumenComponentNames = [
9
9
  'Avatar',
10
10
  'BackToTop',
11
11
  'Badge',
12
+ 'BarChart',
12
13
  'Breadcrumb',
13
14
  'Bubble',
14
15
  'Button',
@@ -16,13 +17,21 @@ export const lumenComponentNames = [
16
17
  'Calendar',
17
18
  'Callout',
18
19
  'Card',
20
+ 'CardContent',
21
+ 'CardDescription',
22
+ 'CardFooter',
23
+ 'CardHeader',
24
+ 'CardTitle',
19
25
  'Carousel',
20
26
  'Chart',
21
27
  'Checkbox',
28
+ 'CheckboxGroup',
22
29
  'Collapsible',
23
30
  'Code',
24
31
  'CodeTabs',
25
32
  'Combobox',
33
+ 'Container',
34
+ 'CopyButton',
26
35
  'Command',
27
36
  'ContextMenu',
28
37
  'ColorPicker',
@@ -34,9 +43,12 @@ export const lumenComponentNames = [
34
43
  'Drawer',
35
44
  'DropdownMenu',
36
45
  'Empty',
46
+ 'ErrorSummary',
37
47
  'Eyebrow',
38
48
  'Field',
49
+ 'FieldError',
39
50
  'FloatingBadge',
51
+ 'Form',
40
52
  'FormattedDate',
41
53
  'HoverCard',
42
54
  'Icon',
@@ -48,6 +60,8 @@ export const lumenComponentNames = [
48
60
  'Kbd',
49
61
  'Label',
50
62
  'Link',
63
+ 'LineChart',
64
+ 'ListBox',
51
65
  'Marker',
52
66
  'Menubar',
53
67
  'Message',
@@ -56,7 +70,9 @@ export const lumenComponentNames = [
56
70
  'NavigationMenu',
57
71
  'NumberField',
58
72
  'Pagination',
73
+ 'PasswordField',
59
74
  'PhoneInput',
75
+ 'PieChart',
60
76
  'Pill',
61
77
  'Popover',
62
78
  'Progress',
@@ -65,6 +81,7 @@ export const lumenComponentNames = [
65
81
  'Resizable',
66
82
  'RichTextEditor',
67
83
  'ScrollArea',
84
+ 'ScrollProgress',
68
85
  'Schedule',
69
86
  'SearchField',
70
87
  'Select',
@@ -75,6 +92,7 @@ export const lumenComponentNames = [
75
92
  'SkipLink',
76
93
  'Slider',
77
94
  'Sonner',
95
+ 'Sparkline',
78
96
  'Spinner',
79
97
  'Switch',
80
98
  'Table',
@@ -98,6 +116,12 @@ export const lumenComponentNames = [
98
116
  'RevealGroup',
99
117
  'ScrollReveal',
100
118
  'Stat',
119
+ 'StatDescription',
120
+ 'StatIcon',
121
+ 'StatLabel',
122
+ 'StatTrend',
123
+ 'StatValue',
124
+ 'Stack',
101
125
  'Meter',
102
126
  'Note',
103
127
  'Rating',
@@ -122,12 +146,270 @@ export const lumenComponentNames = [
122
146
  'QRCode',
123
147
  'Watermark',
124
148
  'Affix',
125
- 'SpeedDial'
149
+ 'SpeedDial',
150
+ 'Grid',
151
+ 'VisuallyHidden'
126
152
  ];
153
+ export const lumenComponentBehavior = {
154
+ Accordion: { astro: 'none', elements: 'registered-element', react: 'component' },
155
+ Affix: { astro: 'none', elements: 'registered-element', react: 'component' },
156
+ Agenda: { astro: 'none', elements: 'registered-element', react: 'component' },
157
+ Alert: { astro: 'none', elements: 'registered-element', react: 'component' },
158
+ AlertDialog: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
159
+ Anchor: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
160
+ AnimatedLogo: { astro: 'none', elements: 'registered-element', react: 'component' },
161
+ AnimatedNumber: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
162
+ AnimatedPortrait: { astro: 'none', elements: 'registered-element', react: 'component' },
163
+ AspectRatio: { astro: 'none', elements: 'registered-element', react: 'component' },
164
+ Attachment: { astro: 'none', elements: 'registered-element', react: 'component' },
165
+ Autocomplete: { astro: 'none', elements: 'registered-element', react: 'component' },
166
+ Avatar: { astro: 'none', elements: 'registered-element', react: 'component' },
167
+ BackToTop: { astro: 'none', elements: 'registered-element', react: 'component' },
168
+ Badge: { astro: 'none', elements: 'registered-element', react: 'component' },
169
+ BarChart: { astro: 'none', elements: 'registered-element', react: 'component' },
170
+ Breadcrumb: { astro: 'none', elements: 'registered-element', react: 'component' },
171
+ Bubble: { astro: 'none', elements: 'registered-element', react: 'component' },
172
+ Button: { astro: 'none', elements: 'registered-element', react: 'component' },
173
+ ButtonGroup: { astro: 'none', elements: 'registered-element', react: 'component' },
174
+ ButtonLink: { astro: 'none', elements: 'registered-element', react: 'component' },
175
+ Calendar: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
176
+ Callout: { astro: 'none', elements: 'registered-element', react: 'component' },
177
+ Card: { astro: 'none', elements: 'registered-element', react: 'component' },
178
+ CardContent: { astro: 'none', elements: 'registered-element', react: 'component' },
179
+ CardDescription: { astro: 'none', elements: 'registered-element', react: 'component' },
180
+ CardFooter: { astro: 'none', elements: 'registered-element', react: 'component' },
181
+ CardHeader: { astro: 'none', elements: 'registered-element', react: 'component' },
182
+ CardTitle: { astro: 'none', elements: 'registered-element', react: 'component' },
183
+ Carousel: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
184
+ Cascader: { astro: 'none', elements: 'registered-element', react: 'component' },
185
+ Chart: { astro: 'none', elements: 'registered-element', react: 'component' },
186
+ Checkbox: { astro: 'none', elements: 'registered-element', react: 'component' },
187
+ CheckboxGroup: { astro: 'none', elements: 'registered-element', react: 'component' },
188
+ Code: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
189
+ CodeTabs: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
190
+ Collapsible: { astro: 'none', elements: 'registered-element', react: 'component' },
191
+ ColorPicker: { astro: 'none', elements: 'registered-element', react: 'component' },
192
+ Combobox: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
193
+ Command: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
194
+ Container: { astro: 'none', elements: 'registered-element', react: 'component' },
195
+ CopyButton: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
196
+ ContextMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
197
+ CoverImage: { astro: 'none', elements: 'registered-element', react: 'component' },
198
+ DataTable: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
199
+ DatePicker: { astro: 'none', elements: 'registered-element', react: 'component' },
200
+ DateRangePicker: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
201
+ Descriptions: { astro: 'none', elements: 'registered-element', react: 'component' },
202
+ Dialog: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
203
+ Direction: { astro: 'none', elements: 'registered-element', react: 'component' },
204
+ Drawer: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
205
+ DropdownMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
206
+ Empty: { astro: 'none', elements: 'registered-element', react: 'component' },
207
+ ErrorSummary: { astro: 'none', elements: 'registered-element', react: 'component' },
208
+ Eyebrow: { astro: 'none', elements: 'registered-element', react: 'component' },
209
+ Field: { astro: 'none', elements: 'registered-element', react: 'component' },
210
+ FieldError: { astro: 'none', elements: 'registered-element', react: 'component' },
211
+ FileUpload: { astro: 'none', elements: 'registered-element', react: 'component' },
212
+ FloatingBadge: { astro: 'none', elements: 'registered-element', react: 'component' },
213
+ Form: { astro: 'ui-primitives', elements: 'none', react: 'hook' },
214
+ FormattedDate: { astro: 'none', elements: 'registered-element', react: 'component' },
215
+ GradientDivider: { astro: 'none', elements: 'registered-element', react: 'component' },
216
+ Grid: { astro: 'none', elements: 'registered-element', react: 'component' },
217
+ HoverCard: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
218
+ Icon: { astro: 'none', elements: 'registered-element', react: 'component' },
219
+ Image: { astro: 'none', elements: 'registered-element', react: 'component' },
220
+ Input: { astro: 'none', elements: 'registered-element', react: 'component' },
221
+ InputGroup: { astro: 'none', elements: 'registered-element', react: 'component' },
222
+ InputOTP: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
223
+ Item: { astro: 'none', elements: 'registered-element', react: 'component' },
224
+ Kbd: { astro: 'none', elements: 'registered-element', react: 'component' },
225
+ Label: { astro: 'none', elements: 'registered-element', react: 'component' },
226
+ LanguageToggle: { astro: 'none', elements: 'registered-element', react: 'component' },
227
+ LineChart: { astro: 'none', elements: 'registered-element', react: 'component' },
228
+ Link: { astro: 'none', elements: 'registered-element', react: 'component' },
229
+ ListBox: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
230
+ Marker: { astro: 'none', elements: 'registered-element', react: 'component' },
231
+ Mentions: { astro: 'none', elements: 'registered-element', react: 'component' },
232
+ Menubar: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
233
+ Message: { astro: 'none', elements: 'registered-element', react: 'component' },
234
+ MessageScroller: { astro: 'none', elements: 'registered-element', react: 'component' },
235
+ Meter: { astro: 'none', elements: 'registered-element', react: 'component' },
236
+ NativeSelect: { astro: 'none', elements: 'registered-element', react: 'component' },
237
+ NavigationMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
238
+ Note: { astro: 'none', elements: 'registered-element', react: 'component' },
239
+ NumberField: { astro: 'none', elements: 'registered-element', react: 'component' },
240
+ Pagination: { astro: 'none', elements: 'registered-element', react: 'component' },
241
+ Particles: { astro: 'none', elements: 'registered-element', react: 'component' },
242
+ PasswordField: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
243
+ PhoneInput: { astro: 'none', elements: 'registered-element', react: 'component' },
244
+ PieChart: { astro: 'none', elements: 'registered-element', react: 'component' },
245
+ Pill: { astro: 'none', elements: 'registered-element', react: 'component' },
246
+ Popconfirm: { astro: 'none', elements: 'registered-element', react: 'component' },
247
+ Popover: { astro: 'none', elements: 'registered-element', react: 'hook' },
248
+ Progress: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
249
+ Prose: { astro: 'none', elements: 'registered-element', react: 'component' },
250
+ QRCode: { astro: 'none', elements: 'registered-element', react: 'component' },
251
+ RadioGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
252
+ Rating: { astro: 'none', elements: 'registered-element', react: 'component' },
253
+ Resizable: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
254
+ RevealGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
255
+ RichTextEditor: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
256
+ Schedule: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
257
+ ScrollArea: { astro: 'none', elements: 'registered-element', react: 'component' },
258
+ ScrollProgress: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
259
+ ScrollReveal: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
260
+ SearchField: { astro: 'none', elements: 'registered-element', react: 'component' },
261
+ Segmented: { astro: 'none', elements: 'registered-element', react: 'component' },
262
+ Select: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
263
+ Separator: { astro: 'none', elements: 'registered-element', react: 'component' },
264
+ Sheet: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
265
+ Sidebar: { astro: 'none', elements: 'registered-element', react: 'component' },
266
+ Skeleton: { astro: 'none', elements: 'registered-element', react: 'component' },
267
+ SkipLink: { astro: 'none', elements: 'registered-element', react: 'component' },
268
+ Slider: { astro: 'none', elements: 'registered-element', react: 'component' },
269
+ Sonner: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
270
+ Sparkline: { astro: 'none', elements: 'registered-element', react: 'component' },
271
+ SpeedDial: { astro: 'none', elements: 'registered-element', react: 'component' },
272
+ Spinner: { astro: 'none', elements: 'registered-element', react: 'component' },
273
+ Stack: { astro: 'none', elements: 'registered-element', react: 'component' },
274
+ Stat: { astro: 'none', elements: 'registered-element', react: 'component' },
275
+ StatDescription: { astro: 'none', elements: 'registered-element', react: 'component' },
276
+ StatIcon: { astro: 'none', elements: 'registered-element', react: 'component' },
277
+ StatLabel: { astro: 'none', elements: 'registered-element', react: 'component' },
278
+ StatTrend: { astro: 'none', elements: 'registered-element', react: 'component' },
279
+ StatValue: { astro: 'none', elements: 'registered-element', react: 'component' },
280
+ Stepper: { astro: 'none', elements: 'registered-element', react: 'component' },
281
+ Switch: { astro: 'none', elements: 'registered-element', react: 'component' },
282
+ Table: { astro: 'none', elements: 'registered-element', react: 'component' },
283
+ Tabs: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
284
+ TagGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
285
+ Textarea: { astro: 'none', elements: 'registered-element', react: 'component' },
286
+ ThemeBuilder: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
287
+ ThemeToggle: { astro: 'none', elements: 'registered-element', react: 'component' },
288
+ TimeField: { astro: 'none', elements: 'registered-element', react: 'component' },
289
+ Timeline: { astro: 'none', elements: 'registered-element', react: 'component' },
290
+ Toast: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
291
+ Toggle: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
292
+ ToggleGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
293
+ Toolbar: { astro: 'none', elements: 'registered-element', react: 'component' },
294
+ Tooltip: { astro: 'none', elements: 'registered-element', react: 'hook' },
295
+ Tour: { astro: 'none', elements: 'registered-element', react: 'component' },
296
+ Transfer: { astro: 'none', elements: 'registered-element', react: 'component' },
297
+ Tree: { astro: 'none', elements: 'registered-element', react: 'component' },
298
+ TreeGrid: { astro: 'none', elements: 'registered-element', react: 'component' },
299
+ TreeSelect: { astro: 'none', elements: 'registered-element', react: 'component' },
300
+ Typography: { astro: 'none', elements: 'registered-element', react: 'component' },
301
+ VirtualList: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
302
+ VisuallyHidden: { astro: 'none', elements: 'registered-element', react: 'component' },
303
+ Watermark: { astro: 'none', elements: 'registered-element', react: 'component' }
304
+ };
305
+ export const lumenGlobalBehaviors = [
306
+ {
307
+ astro: 'ui-primitives',
308
+ authoredBy: '[data-ui-form]',
309
+ description: 'Constraint validation state, custom validation events, and field error synchronization.',
310
+ elements: 'registered-element',
311
+ name: 'form-validation',
312
+ react: 'hook'
313
+ },
314
+ {
315
+ astro: 'ui-primitives',
316
+ authoredBy: 'ui:toast, ui:toast-update, ui:toast-dismiss',
317
+ description: 'Document-level toast creation, update, action, and dismissal events.',
318
+ elements: 'registered-element',
319
+ name: 'toast-events',
320
+ react: 'hook'
321
+ }
322
+ ];
323
+ export const lumenStylingContracts = {
324
+ Button: {
325
+ customProperties: [
326
+ '--ui-button-font-size',
327
+ '--ui-button-font-weight',
328
+ '--ui-button-gap',
329
+ '--ui-button-min-height',
330
+ '--ui-button-padding',
331
+ '--ui-button-radius'
332
+ ],
333
+ parts: [],
334
+ rootSlot: 'button',
335
+ stability: 'stable'
336
+ },
337
+ ButtonLink: { customProperties: [], parts: [], rootSlot: 'button-link', stability: 'stable' },
338
+ Card: {
339
+ customProperties: ['--ui-card-gap', '--ui-card-padding', '--ui-card-section-gap'],
340
+ parts: ['card-header', 'card-title', 'card-description', 'card-content', 'card-footer'],
341
+ rootSlot: 'card',
342
+ stability: 'stable'
343
+ },
344
+ Code: {
345
+ customProperties: [
346
+ '--ui-code-bg',
347
+ '--ui-code-border',
348
+ '--ui-code-fg',
349
+ '--ui-code-header-bg',
350
+ '--ui-code-muted'
351
+ ],
352
+ parts: [],
353
+ rootSlot: 'code',
354
+ stability: 'stable'
355
+ },
356
+ CodeTabs: {
357
+ customProperties: ['--ui-code-tabs-list-padding', '--ui-code-tabs-tab-padding'],
358
+ parts: [],
359
+ rootSlot: 'code-tabs',
360
+ stability: 'stable'
361
+ },
362
+ Link: {
363
+ customProperties: ['--ui-link-font-weight', '--ui-link-underline-offset'],
364
+ parts: [],
365
+ rootSlot: 'link',
366
+ stability: 'stable'
367
+ },
368
+ NavigationMenu: {
369
+ customProperties: ['--ui-navigation-menu-gap', '--ui-navigation-menu-item-padding'],
370
+ parts: [],
371
+ rootSlot: 'navigation-menu',
372
+ stability: 'stable'
373
+ },
374
+ Sidebar: {
375
+ customProperties: ['--ui-sidebar-gap', '--ui-sidebar-padding', '--ui-sidebar-width'],
376
+ parts: [],
377
+ rootSlot: 'sidebar',
378
+ stability: 'stable'
379
+ },
380
+ Stat: {
381
+ customProperties: ['--ui-stat-gap', '--ui-stat-padding'],
382
+ parts: ['stat-label', 'stat-value', 'stat-description', 'stat-icon', 'stat-trend'],
383
+ rootSlot: 'stat',
384
+ stability: 'stable'
385
+ },
386
+ Table: {
387
+ customProperties: ['--ui-table-cell-padding'],
388
+ parts: [],
389
+ rootSlot: 'table',
390
+ stability: 'stable'
391
+ },
392
+ ThemeToggle: {
393
+ customProperties: ['--ui-theme-toggle-size'],
394
+ parts: [],
395
+ rootSlot: 'theme-toggle',
396
+ stability: 'stable'
397
+ }
398
+ };
127
399
  export const lumenPackages = [
128
400
  { name: 'Lumen', packageName: '@santi020k/lumen', runtime: 'umbrella' },
129
401
  { name: 'Lumen Core', packageName: '@santi020k/lumen-core', runtime: 'core' },
130
402
  { name: 'Lumen Astro', packageName: '@santi020k/lumen-astro', runtime: 'astro' },
131
403
  { name: 'Lumen React', packageName: '@santi020k/lumen-react', runtime: 'react' },
132
- { name: 'Lumen Elements', packageName: '@santi020k/lumen-elements', runtime: 'elements' }
404
+ {
405
+ name: 'Lumen React Hook Form',
406
+ packageName: '@santi020k/lumen-react-hook-form',
407
+ runtime: 'react'
408
+ },
409
+ { name: 'Lumen Elements', packageName: '@santi020k/lumen-elements', runtime: 'elements' },
410
+ {
411
+ name: 'Lumen Brand Icons',
412
+ packageName: '@santi020k/lumen-icons-brand',
413
+ runtime: 'icons'
414
+ }
133
415
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAA;AAE/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,kBAAkB,CAAA;QAC7B,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;AAEzE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB,EAAE,mBAAmB;CAAG;AAEzF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,kBAAkB,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAO,OAAO,CAAC,kBAAkB,CAAM,KAAG,kBAQ5E,CAAA;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,kBAAkB,KAAG,MAoBlE,CAAA;AAuBD,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,kBAclD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,cAAc,MAAM,EACpB,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,iBAAY;;;CAUb,CAAA;AAYD,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,eAAe,EACzD,SAAS,SAAS,CAAC,EAAE,EACrB,OAAO,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,CAAC,KACnD,CAAC,EAIH,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,eAAe,EACvD,SAAS,SAAS,CAAC,EAAE,EACrB,MAAM,kBAAkB,CAAC,MAAM,CAAC,KAC/B,CAAC,EAeH,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,SAAS,SAAS,CAAC,EAAE,EACrB,MAAM,MAAM,EACZ,UAAU,MAAM;;;;;CAWjB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,eAAe,EAC1D,SAAS,SAAS,CAAC,EAAE,EACrB,OAAO,kBAAkB;;;;;CAG1B,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MAAgF,CAAA;AAExI,eAAO,MAAM,iBAAiB,GAC5B,SAAS,mBAAmB,EAC5B,KAAK,MAAM,EACX,OAAO,kBAAkB,KACxB,IAEF,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,SAAS,mBAAmB,EAC5B,KAAK,MAAM,KACV,kBAAkB,GAAG,SAIvB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO,kBAAkB,EACzB,QAAQ,MAAM,KACb,kBAGD,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,kBAAkB,EACzB,QAAQ,MAAM,KACb,kBAGD,CAAA;AAEF,eAAO,MAAM,uBAAuB,GAClC,OAAO,kBAAkB,EACzB,IAAI,MAAM,EACV,WAAW,OAAO,KACjB,kBAUF,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,OAAO,kBAAkB,KACxB,eAAqE,CAAA;AAExE,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,OAAO,kBAAkB,KACxB,MAMF,CAAA;AAED,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,EAChB,OAAO,kBAAkB,KACxB,0BAQF,CAAA"}
package/dist/data.js CHANGED
@@ -122,9 +122,9 @@ export const toggleDataViewSelection = (state, id, selected) => {
122
122
  const nextSelected = selected ?? !isSelected;
123
123
  return createDataViewState({
124
124
  ...state,
125
- selectedIds: nextSelected
126
- ? [...new Set([...state.selectedIds, id])]
127
- : state.selectedIds.filter(selectedId => selectedId !== id)
125
+ selectedIds: nextSelected ?
126
+ [...new Set([...state.selectedIds, id])] :
127
+ state.selectedIds.filter(selectedId => selectedId !== id)
128
128
  });
129
129
  };
130
130
  export const createDataViewSearchParams = (state) => new URLSearchParams(serializeDataViewState(state));
@@ -1 +1 @@
1
- {"version":3,"file":"figma.d.ts","sourceRoot":"","sources":["../src/figma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,oBAAoB,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,sBAAsB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,aAAa,GACb,WAAW,GACX,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,QAAQ,CAAA;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC,CAAA;CAChF;AAyGD,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAUpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAMlD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,OAAO,mBAAmB,EAC1B,eAAgB,KACf,MAAmD,CAAA;AAEtD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,gBAAgB,EACxB,UAAS,+BAAoC,KAC5C,4BAwBF,CAAA;AAuCD,eAAO,MAAM,uBAAuB,GAClC,QAAQ,gBAAgB,KACvB,sBAyCD,CAAA"}
1
+ {"version":3,"file":"figma.d.ts","sourceRoot":"","sources":["../src/figma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,oBAAoB,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,sBAAsB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACT,aAAa,GACb,WAAW,GACX,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,QAAQ,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC,CAAA;CAChF;AAuGD,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAUpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAMlD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,OAAO,mBAAmB,EAC1B,eAAgB,KACf,MAAmD,CAAA;AAEtD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,gBAAgB,EACxB,UAAS,+BAAoC,KAC5C,4BAwBF,CAAA;AAuCD,eAAO,MAAM,uBAAuB,GAClC,QAAQ,gBAAgB,KACvB,sBAyCD,CAAA"}
@@ -0,0 +1,29 @@
1
+ export declare const lumenFormStatuses: readonly ["idle", "validating", "submitting", "success", "error"];
2
+ export type LumenFormStatus = typeof lumenFormStatuses[number];
3
+ export interface LumenFieldError {
4
+ code?: string;
5
+ controlId?: string;
6
+ message: string;
7
+ name: string;
8
+ }
9
+ export interface LumenFormErrors {
10
+ fields: LumenFieldError[];
11
+ form: string[];
12
+ }
13
+ export interface LumenFormSuccess<Data = unknown> {
14
+ data: Data;
15
+ errors?: never;
16
+ success: true;
17
+ }
18
+ export interface LumenFormFailure {
19
+ data?: never;
20
+ errors: LumenFormErrors;
21
+ success: false;
22
+ }
23
+ export type LumenFormResult<Data = unknown> = LumenFormFailure | LumenFormSuccess<Data>;
24
+ export type LumenFormErrorInput = LumenFormErrors | Record<string, readonly string[] | string | null | undefined> | readonly LumenFieldError[] | null | undefined;
25
+ export declare const normalizeLumenFormErrors: (input: LumenFormErrorInput) => LumenFormErrors;
26
+ export declare const getLumenFieldErrors: (errors: LumenFormErrors, name: string) => LumenFieldError[];
27
+ export declare const createLumenFormSuccess: <Data>(data: Data) => LumenFormSuccess<Data>;
28
+ export declare const createLumenFormFailure: (errors: LumenFormErrorInput) => LumenFormFailure;
29
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../src/forms.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,mEAMpB,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO;IAC9C,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,MAAM,eAAe,CAAC,IAAI,GAAG,OAAO,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAEvF,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACjB,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7D,SAAS,eAAe,EAAE,GAC1B,IAAI,GACJ,SAAS,CAAA;AAiDX,eAAO,MAAM,wBAAwB,GACnC,OAAO,mBAAmB,KACzB,eAqCF,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,eAAe,EACvB,MAAM,MAAM,KACX,eAAe,EAAwD,CAAA;AAE1E,eAAO,MAAM,sBAAsB,GAAI,IAAI,EACzC,MAAM,IAAI,KACT,gBAAgB,CAAC,IAAI,CAA8B,CAAA;AAEtD,eAAO,MAAM,sBAAsB,GACjC,QAAQ,mBAAmB,KAC1B,gBAGD,CAAA"}
package/dist/forms.js ADDED
@@ -0,0 +1,75 @@
1
+ export const lumenFormStatuses = [
2
+ 'idle',
3
+ 'validating',
4
+ 'submitting',
5
+ 'success',
6
+ 'error'
7
+ ];
8
+ const isStringArray = (value) => Array.isArray(value);
9
+ const isLumenFieldErrorArray = (value) => Array.isArray(value);
10
+ const compactMessages = (value) => {
11
+ if (typeof value === 'string') {
12
+ const message = value.trim();
13
+ return message ? [message] : [];
14
+ }
15
+ if (!isStringArray(value))
16
+ return [];
17
+ return value
18
+ .map(message => message.trim())
19
+ .filter(Boolean);
20
+ };
21
+ const isLumenFormErrors = (value) => Boolean(value &&
22
+ !Array.isArray(value) &&
23
+ 'fields' in value &&
24
+ Array.isArray(value.fields) &&
25
+ 'form' in value &&
26
+ Array.isArray(value.form));
27
+ const normalizeFieldError = (error) => {
28
+ const message = error.message.trim();
29
+ const name = error.name.trim();
30
+ if (!message || !name)
31
+ return undefined;
32
+ return {
33
+ ...(error.code ? { code: error.code } : {}),
34
+ ...(error.controlId ? { controlId: error.controlId } : {}),
35
+ message,
36
+ name
37
+ };
38
+ };
39
+ export const normalizeLumenFormErrors = (input) => {
40
+ if (!input)
41
+ return { fields: [], form: [] };
42
+ if (isLumenFieldErrorArray(input)) {
43
+ return {
44
+ fields: input
45
+ .map(normalizeFieldError)
46
+ .filter((error) => Boolean(error)),
47
+ form: []
48
+ };
49
+ }
50
+ if (isLumenFormErrors(input)) {
51
+ return {
52
+ fields: input.fields
53
+ .map(normalizeFieldError)
54
+ .filter((error) => Boolean(error)),
55
+ form: compactMessages(input.form)
56
+ };
57
+ }
58
+ const fields = [];
59
+ const form = [];
60
+ for (const [name, value] of Object.entries(input)) {
61
+ const messages = compactMessages(value);
62
+ if (name === 'form' || name === 'root') {
63
+ form.push(...messages);
64
+ continue;
65
+ }
66
+ fields.push(...messages.map(message => ({ message, name })));
67
+ }
68
+ return { fields, form };
69
+ };
70
+ export const getLumenFieldErrors = (errors, name) => errors.fields.filter(error => error.name === name);
71
+ export const createLumenFormSuccess = (data) => ({ data, success: true });
72
+ export const createLumenFormFailure = (errors) => ({
73
+ errors: normalizeLumenFormErrors(errors),
74
+ success: false
75
+ });
package/dist/icons.d.ts CHANGED
@@ -1,9 +1,17 @@
1
1
  import { type LucideIconData, type LucideIconNode } from '@lucide/icons';
2
2
  export type LumenIconNode = LucideIconNode;
3
- export type LumenIconData = LucideIconData;
3
+ export type LumenIconStyle = 'fill' | 'stroke';
4
+ export type LumenIconData = LucideIconData & {
5
+ source?: string;
6
+ style?: LumenIconStyle;
7
+ };
4
8
  export type LumenIconName = string;
9
+ export type LumenIconPack = Readonly<Record<string, LumenIconData>>;
5
10
  export declare const lumenIcons: Readonly<Record<string, LumenIconData>>;
6
11
  export declare const lumenIconNames: readonly string[];
12
+ export declare const registerLumenIconPack: (prefix: string, icons: LumenIconPack) => void;
13
+ export declare const getLumenIconPack: (prefix: string) => LumenIconPack | undefined;
14
+ export declare const getRegisteredLumenIconNames: () => string[];
7
15
  export declare const resolveLumenIconName: (name: string) => LumenIconName | undefined;
8
16
  export declare const getLumenIcon: (name: string) => LumenIconData | undefined;
9
17
  export interface LumenIconSvgOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,cAAc,CAAA;AAC1C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAA;AAC1C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAwBlC,eAAO,MAAM,UAAU,EAElB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;AAE5C,eAAO,MAAM,cAAc,mBAAgD,CAAA;AAwB3E,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,aAAa,GAAG,SAInE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,aAAa,GAAG,SAI3D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,UAAS,mBAAwB,WAqBjF,CAAA"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,cAAc,CAAA;AAC1C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC9C,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;AAyBnE,eAAO,MAAM,UAAU,EAElB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;AAE5C,eAAO,MAAM,cAAc,mBAAgD,CAAA;AAe3E,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,OAAO,aAAa,SAczE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,aAAa,GAAG,SAEjE,CAAA;AAED,eAAO,MAAM,2BAA2B,gBAE/B,CAAA;AA8BT,eAAO,MAAM,oBAAoB,GAC/B,MAAM,MAAM,KACX,aAAa,GAAG,SAUlB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,aAAa,GAAG,SAU3D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,UAAS,mBAAwB,WAiClC,CAAA"}