@santi020k/lumen-core 3.0.0 → 4.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.
- package/PHONE_FLAG_LICENSE.txt +21 -0
- package/README.md +379 -4
- package/THIRD_PARTY_NOTICES.md +16 -2
- package/dist/ai-surfaces.d.ts +25 -0
- package/dist/ai-surfaces.d.ts.map +1 -0
- package/dist/ai-surfaces.js +162 -0
- package/dist/amount-field.d.ts +22 -0
- package/dist/amount-field.d.ts.map +1 -0
- package/dist/amount-field.js +207 -0
- package/dist/attachments.d.ts +15 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +123 -0
- package/dist/bullet-chart.d.ts +33 -0
- package/dist/bullet-chart.d.ts.map +1 -0
- package/dist/bullet-chart.js +80 -0
- package/dist/chart-activation.d.ts +32 -0
- package/dist/chart-activation.d.ts.map +1 -0
- package/dist/chart-activation.js +97 -0
- package/dist/chart-interaction.d.ts +12 -0
- package/dist/chart-interaction.d.ts.map +1 -0
- package/dist/chart-interaction.js +274 -0
- package/dist/chart-models.d.ts +156 -0
- package/dist/chart-models.d.ts.map +1 -0
- package/dist/chart-models.js +348 -0
- package/dist/chart-motion.d.ts +6 -0
- package/dist/chart-motion.d.ts.map +1 -0
- package/dist/chart-motion.js +107 -0
- package/dist/charts.d.ts +68 -3
- package/dist/charts.d.ts.map +1 -1
- package/dist/charts.js +328 -29
- package/dist/code.js +1 -1
- package/dist/combobox.d.ts +7 -0
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +253 -0
- package/dist/comparison-chart.d.ts +32 -0
- package/dist/comparison-chart.d.ts.map +1 -0
- package/dist/comparison-chart.js +64 -0
- package/dist/components.d.ts +210 -25
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +102 -26
- package/dist/dashboard.d.ts +16 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +21 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +21 -5
- package/dist/dates.d.ts +13 -0
- package/dist/dates.d.ts.map +1 -0
- package/dist/dates.js +37 -0
- package/dist/device-frame.d.ts +25 -0
- package/dist/device-frame.d.ts.map +1 -0
- package/dist/device-frame.js +50 -0
- package/dist/direction.d.ts +3 -0
- package/dist/direction.d.ts.map +1 -0
- package/dist/direction.js +10 -0
- package/dist/extended-charts.d.ts +95 -0
- package/dist/extended-charts.d.ts.map +1 -0
- package/dist/extended-charts.js +175 -0
- package/dist/figma.d.ts.map +1 -1
- package/dist/figma.js +10 -1
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +18 -4
- package/dist/icon-data.generated.d.ts +1 -1
- package/dist/icon-data.generated.d.ts.map +1 -1
- package/dist/icon-data.generated.js +1 -1
- package/dist/icons.js +3 -4
- package/dist/illustrations.generated.d.ts +1 -1
- package/dist/image-comparison.d.ts +14 -0
- package/dist/image-comparison.d.ts.map +1 -0
- package/dist/image-comparison.js +48 -0
- package/dist/index.d.ts +35 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -3
- package/dist/media-viewport.d.ts +24 -0
- package/dist/media-viewport.d.ts.map +1 -0
- package/dist/media-viewport.js +119 -0
- package/dist/media-workspace.d.ts +27 -0
- package/dist/media-workspace.d.ts.map +1 -0
- package/dist/media-workspace.js +83 -0
- package/dist/message-scroller.d.ts +14 -0
- package/dist/message-scroller.d.ts.map +1 -0
- package/dist/message-scroller.js +113 -0
- package/dist/motion-workflows.d.ts +24 -0
- package/dist/motion-workflows.d.ts.map +1 -0
- package/dist/motion-workflows.js +220 -0
- package/dist/motion.d.ts +12 -0
- package/dist/motion.d.ts.map +1 -0
- package/dist/motion.js +96 -0
- package/dist/native-input.d.ts +25 -0
- package/dist/native-input.d.ts.map +1 -0
- package/dist/native-input.js +188 -0
- package/dist/phone-flags.generated.d.ts +2 -0
- package/dist/phone-flags.generated.d.ts.map +1 -0
- package/dist/phone-flags.generated.js +263 -0
- package/dist/phone.d.ts +4 -0
- package/dist/phone.d.ts.map +1 -1
- package/dist/phone.js +6 -1
- package/dist/rich-text.d.ts +7 -0
- package/dist/rich-text.d.ts.map +1 -1
- package/dist/rich-text.js +13 -0
- package/dist/rive.d.ts +37 -0
- package/dist/rive.d.ts.map +1 -0
- package/dist/rive.js +129 -0
- package/dist/schedule.d.ts.map +1 -1
- package/dist/schedule.js +63 -23
- package/dist/tab-indicator.d.ts +3 -0
- package/dist/tab-indicator.d.ts.map +1 -0
- package/dist/tab-indicator.js +57 -0
- package/dist/theme-audit.d.ts +16 -0
- package/dist/theme-audit.d.ts.map +1 -0
- package/dist/theme-audit.js +57 -0
- package/dist/theme-builder.d.ts +7 -1
- package/dist/theme-builder.d.ts.map +1 -1
- package/dist/theme-builder.js +45 -23
- package/dist/theme-presets.generated.d.ts +217 -0
- package/dist/theme-presets.generated.d.ts.map +1 -0
- package/dist/theme-presets.generated.js +231 -0
- package/dist/theme.d.ts +11 -3
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +56 -6
- package/dist/virtual-collection.d.ts +14 -0
- package/dist/virtual-collection.d.ts.map +1 -0
- package/dist/virtual-collection.js +132 -0
- package/dist/virtual-list.d.ts +7 -0
- package/dist/virtual-list.d.ts.map +1 -0
- package/dist/virtual-list.js +135 -0
- package/dist/virtual-window.d.ts +19 -0
- package/dist/virtual-window.d.ts.map +1 -0
- package/dist/virtual-window.js +84 -0
- package/dist/visual-effects.d.ts +6 -0
- package/dist/visual-effects.d.ts.map +1 -0
- package/dist/visual-effects.js +44 -0
- package/dist/world-map-data.generated.d.ts +9 -0
- package/dist/world-map-data.generated.d.ts.map +1 -0
- package/dist/world-map-data.generated.js +240 -0
- package/dist/world-map-navigation.d.ts +16 -0
- package/dist/world-map-navigation.d.ts.map +1 -0
- package/dist/world-map-navigation.js +53 -0
- package/dist/world-map-pan.d.ts +3 -0
- package/dist/world-map-pan.d.ts.map +1 -0
- package/dist/world-map-pan.js +66 -0
- package/dist/world-map-zoom.d.ts +13 -0
- package/dist/world-map-zoom.d.ts.map +1 -0
- package/dist/world-map-zoom.js +61 -0
- package/dist/world-map.d.ts +71 -0
- package/dist/world-map.d.ts.map +1 -0
- package/dist/world-map.js +143 -0
- package/package.json +51 -4
package/dist/components.js
CHANGED
|
@@ -5,6 +5,8 @@ export const lumenComponentNames = [
|
|
|
5
5
|
'Agenda',
|
|
6
6
|
'AspectRatio',
|
|
7
7
|
'Attachment',
|
|
8
|
+
'AttachmentList',
|
|
9
|
+
'AttachmentPreview',
|
|
8
10
|
'Autocomplete',
|
|
9
11
|
'Avatar',
|
|
10
12
|
'Backdrop',
|
|
@@ -41,6 +43,11 @@ export const lumenComponentNames = [
|
|
|
41
43
|
'DatePicker',
|
|
42
44
|
'DateRangePicker',
|
|
43
45
|
'Dialog',
|
|
46
|
+
'DialogHeader',
|
|
47
|
+
'DialogTitle',
|
|
48
|
+
'DialogBody',
|
|
49
|
+
'DialogFooter',
|
|
50
|
+
'DialogClose',
|
|
44
51
|
'Direction',
|
|
45
52
|
'Drawer',
|
|
46
53
|
'DropdownMenu',
|
|
@@ -57,6 +64,11 @@ export const lumenComponentNames = [
|
|
|
57
64
|
'HoverCard',
|
|
58
65
|
'Icon',
|
|
59
66
|
'Image',
|
|
67
|
+
'DeviceFrame',
|
|
68
|
+
'ImageComparison',
|
|
69
|
+
'MediaViewport',
|
|
70
|
+
'MediaThumbnail',
|
|
71
|
+
'MediaFilmstrip',
|
|
60
72
|
'Illustration',
|
|
61
73
|
'Input',
|
|
62
74
|
'InputGroup',
|
|
@@ -75,6 +87,7 @@ export const lumenComponentNames = [
|
|
|
75
87
|
'MessageScroller',
|
|
76
88
|
'NativeSelect',
|
|
77
89
|
'NavigationMenu',
|
|
90
|
+
'AmountField',
|
|
78
91
|
'NumberField',
|
|
79
92
|
'Pagination',
|
|
80
93
|
'PasswordField',
|
|
@@ -145,6 +158,9 @@ export const lumenComponentNames = [
|
|
|
145
158
|
'Segmented',
|
|
146
159
|
'Toolbar',
|
|
147
160
|
'Descriptions',
|
|
161
|
+
'DescriptionItem',
|
|
162
|
+
'DescriptionTerm',
|
|
163
|
+
'DescriptionDetail',
|
|
148
164
|
'Popconfirm',
|
|
149
165
|
'Transfer',
|
|
150
166
|
'Cascader',
|
|
@@ -159,9 +175,37 @@ export const lumenComponentNames = [
|
|
|
159
175
|
'Heatmap',
|
|
160
176
|
'RangeChart',
|
|
161
177
|
'ComboChart',
|
|
162
|
-
'VisuallyHidden'
|
|
178
|
+
'VisuallyHidden',
|
|
179
|
+
'CalendarHeatmap',
|
|
180
|
+
'FunnelChart',
|
|
181
|
+
'BoxPlot',
|
|
182
|
+
'BulletChart',
|
|
183
|
+
'LollipopChart',
|
|
184
|
+
'DumbbellChart',
|
|
185
|
+
'Histogram',
|
|
186
|
+
'WaterfallChart',
|
|
187
|
+
'ChangeSummary',
|
|
188
|
+
'FilterBar',
|
|
189
|
+
'ChartMotion',
|
|
190
|
+
'MotionGroup',
|
|
191
|
+
'VisualEffect',
|
|
192
|
+
'ApprovalCard',
|
|
193
|
+
'PromptComposer',
|
|
194
|
+
'SourceCitation',
|
|
195
|
+
'StreamMessage',
|
|
196
|
+
'ToolActivity',
|
|
197
|
+
'WorldMap'
|
|
163
198
|
];
|
|
164
199
|
export const lumenComponentBehavior = {
|
|
200
|
+
ApprovalCard: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
201
|
+
PromptComposer: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
202
|
+
SourceCitation: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
203
|
+
StreamMessage: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
204
|
+
ToolActivity: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
205
|
+
ChartMotion: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
206
|
+
MotionGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
207
|
+
VisualEffect: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
208
|
+
AmountField: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
165
209
|
Accordion: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
166
210
|
Affix: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
167
211
|
Agenda: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
@@ -173,12 +217,14 @@ export const lumenComponentBehavior = {
|
|
|
173
217
|
AnimatedPortrait: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
174
218
|
AspectRatio: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
175
219
|
Attachment: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
220
|
+
AttachmentList: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
221
|
+
AttachmentPreview: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
176
222
|
Autocomplete: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
177
223
|
Avatar: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
178
224
|
Backdrop: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
179
|
-
BackToTop: { astro: '
|
|
225
|
+
BackToTop: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
180
226
|
Badge: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
181
|
-
BarChart: { astro: '
|
|
227
|
+
BarChart: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
182
228
|
Breadcrumb: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
183
229
|
Bubble: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
184
230
|
Button: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
@@ -193,14 +239,14 @@ export const lumenComponentBehavior = {
|
|
|
193
239
|
CardHeader: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
194
240
|
CardTitle: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
195
241
|
Carousel: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
196
|
-
Cascader: { astro: '
|
|
242
|
+
Cascader: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
197
243
|
Chart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
198
244
|
Checkbox: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
199
245
|
CheckboxGroup: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
200
246
|
Code: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
201
247
|
CodeTabs: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
202
248
|
Collapsible: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
203
|
-
ComboChart: { astro: '
|
|
249
|
+
ComboChart: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
204
250
|
ColorPicker: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
205
251
|
Combobox: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
206
252
|
Command: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
@@ -210,10 +256,18 @@ export const lumenComponentBehavior = {
|
|
|
210
256
|
ContextMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
211
257
|
CoverImage: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
212
258
|
DataTable: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
213
|
-
DatePicker: { astro: '
|
|
259
|
+
DatePicker: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
214
260
|
DateRangePicker: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
261
|
+
DescriptionItem: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
262
|
+
DescriptionTerm: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
263
|
+
DescriptionDetail: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
215
264
|
Descriptions: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
216
265
|
Dialog: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
266
|
+
DialogHeader: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
267
|
+
DialogTitle: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
268
|
+
DialogBody: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
269
|
+
DialogFooter: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
270
|
+
DialogClose: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
217
271
|
Direction: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
218
272
|
Drawer: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
219
273
|
DropdownMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
@@ -221,18 +275,32 @@ export const lumenComponentBehavior = {
|
|
|
221
275
|
ErrorState: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
222
276
|
ErrorSummary: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
223
277
|
Eyebrow: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
224
|
-
Field: { astro: '
|
|
278
|
+
Field: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
225
279
|
FieldError: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
226
|
-
FileUpload: { astro: '
|
|
280
|
+
FileUpload: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
227
281
|
FloatingBadge: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
228
282
|
Form: { astro: 'ui-primitives', elements: 'none', react: 'hook' },
|
|
229
283
|
FormattedDate: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
230
284
|
Graphic: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
231
|
-
Heatmap: { astro: '
|
|
285
|
+
Heatmap: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
286
|
+
LollipopChart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
287
|
+
DumbbellChart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
288
|
+
CalendarHeatmap: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
289
|
+
FunnelChart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
290
|
+
BoxPlot: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
291
|
+
BulletChart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
292
|
+
Histogram: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
293
|
+
WaterfallChart: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
232
294
|
GradientDivider: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
233
295
|
Grid: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
234
296
|
HoverCard: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
235
297
|
Icon: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
298
|
+
DeviceFrame: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
299
|
+
WorldMap: { astro: 'ui-primitives', astroRuntimeBypass: 'Static map and highlighted country list remain visible without JavaScript.', elements: 'registered-element', react: 'component' },
|
|
300
|
+
ImageComparison: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
301
|
+
MediaViewport: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
302
|
+
MediaThumbnail: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
303
|
+
MediaFilmstrip: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
236
304
|
Image: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
237
305
|
Illustration: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
238
306
|
Input: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
@@ -244,14 +312,14 @@ export const lumenComponentBehavior = {
|
|
|
244
312
|
Kbd: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
245
313
|
Label: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
246
314
|
LanguageToggle: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
247
|
-
LineChart: { astro: '
|
|
315
|
+
LineChart: { astro: 'ui-primitives', astroRuntimeBypass: 'Static charts work without the runtime; interactive or drilldown charts require UIPrimitives.', elements: 'registered-element', react: 'component' },
|
|
248
316
|
Link: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
249
317
|
ListBox: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
250
318
|
Marker: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
251
|
-
Mentions: { astro: '
|
|
319
|
+
Mentions: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
252
320
|
Menubar: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
253
321
|
Message: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
254
|
-
MessageScroller: { astro: '
|
|
322
|
+
MessageScroller: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
255
323
|
Meter: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
256
324
|
NativeSelect: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
257
325
|
NavigationMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
@@ -261,12 +329,12 @@ export const lumenComponentBehavior = {
|
|
|
261
329
|
Particles: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
262
330
|
PasswordField: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
263
331
|
PhoneInput: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
264
|
-
PieChart: { astro: '
|
|
332
|
+
PieChart: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
265
333
|
Pill: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
266
|
-
Popconfirm: { astro: '
|
|
267
|
-
Popover: { astro: '
|
|
334
|
+
Popconfirm: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
335
|
+
Popover: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
268
336
|
Progress: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
269
|
-
RangeChart: { astro: '
|
|
337
|
+
RangeChart: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
270
338
|
Prose: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
271
339
|
QRCode: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
272
340
|
RadioGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
@@ -275,7 +343,7 @@ export const lumenComponentBehavior = {
|
|
|
275
343
|
RevealGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
276
344
|
RichTextEditor: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
277
345
|
Schedule: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
278
|
-
ScatterChart: { astro: '
|
|
346
|
+
ScatterChart: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
279
347
|
ScrollArea: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
280
348
|
ScrollProgress: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
281
349
|
ScrollReveal: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
@@ -289,7 +357,7 @@ export const lumenComponentBehavior = {
|
|
|
289
357
|
SkipLink: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
290
358
|
Slider: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
291
359
|
Sparkline: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
292
|
-
SpeedDial: { astro: '
|
|
360
|
+
SpeedDial: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
293
361
|
Spinner: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
294
362
|
Stack: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
295
363
|
Stat: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
@@ -305,7 +373,7 @@ export const lumenComponentBehavior = {
|
|
|
305
373
|
TagGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
306
374
|
Textarea: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
307
375
|
ThemeBuilder: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
308
|
-
ThemeToggle: { astro: '
|
|
376
|
+
ThemeToggle: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
309
377
|
TimeField: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
310
378
|
Timeline: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
311
379
|
Toast: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
@@ -317,15 +385,17 @@ export const lumenComponentBehavior = {
|
|
|
317
385
|
react: 'component'
|
|
318
386
|
},
|
|
319
387
|
ToggleGroup: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
320
|
-
Toolbar: { astro: '
|
|
321
|
-
Tooltip: { astro: '
|
|
322
|
-
Tour: { astro: '
|
|
323
|
-
Transfer: { astro: '
|
|
324
|
-
Tree: { astro: '
|
|
325
|
-
TreeGrid: { astro: '
|
|
326
|
-
TreeSelect: { astro: '
|
|
388
|
+
Toolbar: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
389
|
+
Tooltip: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
390
|
+
Tour: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
391
|
+
Transfer: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
392
|
+
Tree: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
393
|
+
TreeGrid: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
394
|
+
TreeSelect: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
|
|
327
395
|
Typography: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
328
396
|
VirtualList: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
|
|
397
|
+
ChangeSummary: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
398
|
+
FilterBar: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
329
399
|
VisuallyHidden: { astro: 'none', elements: 'registered-element', react: 'component' },
|
|
330
400
|
Watermark: { astro: 'none', elements: 'registered-element', react: 'component' }
|
|
331
401
|
};
|
|
@@ -426,6 +496,12 @@ export const lumenStylingContracts = {
|
|
|
426
496
|
rootSlot: 'stat',
|
|
427
497
|
stability: 'stable'
|
|
428
498
|
},
|
|
499
|
+
PhoneInput: {
|
|
500
|
+
customProperties: ['--ui-phone-height', '--ui-phone-padding', '--ui-phone-country-gap'],
|
|
501
|
+
parts: ['phone-country', 'country-flag'],
|
|
502
|
+
rootSlot: 'phone-input',
|
|
503
|
+
stability: 'stable'
|
|
504
|
+
},
|
|
429
505
|
Table: {
|
|
430
506
|
customProperties: ['--ui-table-cell-padding'],
|
|
431
507
|
parts: [],
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface LumenChangeSummaryItem {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
before: string;
|
|
5
|
+
after: string;
|
|
6
|
+
/** The application decides equality and whether the proposal is meaningful. */
|
|
7
|
+
changed: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface LumenActiveFilter {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
value: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const readLumenChangeSummaryItems: (value: unknown) => LumenChangeSummaryItem[];
|
|
15
|
+
export declare const readLumenActiveFilters: (value: unknown) => LumenActiveFilter[];
|
|
16
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AA4BD,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,sBAAsB,EAAgC,CAAA;AACnH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,iBAAiB,EAAgC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
2
|
+
const isChange = (value) => isRecord(value) && typeof value.id === 'string' && value.id.length > 0 &&
|
|
3
|
+
typeof value.label === 'string' && typeof value.before === 'string' &&
|
|
4
|
+
typeof value.after === 'string' && typeof value.changed === 'boolean';
|
|
5
|
+
const isFilter = (value) => isRecord(value) && typeof value.id === 'string' && value.id.length > 0 &&
|
|
6
|
+
typeof value.label === 'string' && typeof value.value === 'string';
|
|
7
|
+
const readItems = (value, guard) => {
|
|
8
|
+
if (!Array.isArray(value))
|
|
9
|
+
throw new TypeError('Dashboard items must be an array');
|
|
10
|
+
const ids = new Set();
|
|
11
|
+
const result = [];
|
|
12
|
+
for (const item of value) {
|
|
13
|
+
if (!guard(item) || ids.has(item.id))
|
|
14
|
+
throw new TypeError('Dashboard items require valid, unique IDs');
|
|
15
|
+
ids.add(item.id);
|
|
16
|
+
result.push({ ...item });
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
export const readLumenChangeSummaryItems = (value) => readItems(value, isChange);
|
|
21
|
+
export const readLumenActiveFilters = (value) => readItems(value, isFilter);
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;AAkBD,eAAO,MAAM,mBAAmB,GAAI,QAAO,OAAO,CAAC,kBAAkB,CAAM,KAAG,kBAU5E,CAAA;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,kBAAkB,KAAG,MAwBlE,CAAA;
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
package/dist/data.js
CHANGED
|
@@ -39,7 +39,12 @@ const parseDataViewFilters = (params) => {
|
|
|
39
39
|
const filters = {};
|
|
40
40
|
for (const [key, filterValue] of params.entries()) {
|
|
41
41
|
if (key.startsWith('filter.')) {
|
|
42
|
-
filters
|
|
42
|
+
Object.defineProperty(filters, key.slice('filter.'.length), {
|
|
43
|
+
configurable: true,
|
|
44
|
+
enumerable: true,
|
|
45
|
+
value: filterValue,
|
|
46
|
+
writable: true
|
|
47
|
+
});
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
return filters;
|
|
@@ -78,9 +83,14 @@ export const parseDataViewState = (value) => {
|
|
|
78
83
|
});
|
|
79
84
|
};
|
|
80
85
|
export const getVirtualRange = (scrollOffset, viewportSize, itemSize, itemCount, overscan = 4) => {
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
const
|
|
86
|
+
const count = Number.isSafeInteger(itemCount) && itemCount > 0 ? itemCount : 0;
|
|
87
|
+
const size = Number.isFinite(itemSize) && itemSize > 0 ? itemSize : 44;
|
|
88
|
+
const viewport = Number.isFinite(viewportSize) && viewportSize > 0 ? viewportSize : 0;
|
|
89
|
+
const extra = Number.isFinite(overscan) ? Math.max(0, Math.trunc(overscan)) : 4;
|
|
90
|
+
const maximumOffset = Math.max(0, count * size - viewport);
|
|
91
|
+
const offset = Number.isFinite(scrollOffset) ? Math.min(maximumOffset, Math.max(0, scrollOffset)) : 0;
|
|
92
|
+
const startIndex = Math.max(0, Math.floor(offset / size) - extra);
|
|
93
|
+
const endIndex = Math.min(count - 1, Math.max(startIndex, Math.ceil((offset + viewport) / size) - 1) + extra);
|
|
84
94
|
return {
|
|
85
95
|
endIndex,
|
|
86
96
|
startIndex
|
|
@@ -154,7 +164,13 @@ export const createDataViewRequestUrl = (endpoint, state) => {
|
|
|
154
164
|
const query = serializeDataViewState(state);
|
|
155
165
|
if (!query)
|
|
156
166
|
return endpoint;
|
|
157
|
-
|
|
167
|
+
const fragmentIndex = endpoint.indexOf('#');
|
|
168
|
+
const path = fragmentIndex < 0 ? endpoint : endpoint.slice(0, fragmentIndex);
|
|
169
|
+
const fragment = fragmentIndex < 0 ? '' : endpoint.slice(fragmentIndex);
|
|
170
|
+
let separator = path.includes('?') ? '&' : '?';
|
|
171
|
+
if (path.endsWith('?') || path.endsWith('&'))
|
|
172
|
+
separator = '';
|
|
173
|
+
return `${path}${separator}${query}${fragment}`;
|
|
158
174
|
};
|
|
159
175
|
export const createDataViewServerRequest = (endpoint, state) => {
|
|
160
176
|
const query = serializeDataViewState(state);
|
package/dist/dates.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Parse a complete Gregorian calendar date without accepting Date's day overflow. */
|
|
2
|
+
export declare const parseLumenDate: (value: unknown) => Date | null;
|
|
3
|
+
export declare const isLumenDateBoundsValid: (min?: string, max?: string) => boolean;
|
|
4
|
+
export declare const isLumenDateRangeValid: (range: unknown, min?: string, max?: string) => boolean;
|
|
5
|
+
export declare const resolveLumenDateLocale: (locale?: string) => string;
|
|
6
|
+
export interface LumenDateLabels {
|
|
7
|
+
previousMonth: string;
|
|
8
|
+
nextMonth: string;
|
|
9
|
+
chooseDate: string;
|
|
10
|
+
invalidRange: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const resolveLumenDateLabels: (locale?: string) => LumenDateLabels;
|
|
13
|
+
//# sourceMappingURL=dates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":"AACA,sFAAsF;AACtF,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,IAAI,GAAG,IAMtD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAInE,CAAA;AAOD,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAMlF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,MAUxD,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,eAMxD,CAAA"}
|
package/dist/dates.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// cspell:words siguiente Elegir fecha Selecciona intervalo fechas válido
|
|
2
|
+
/** Parse a complete Gregorian calendar date without accepting Date's day overflow. */
|
|
3
|
+
export const parseLumenDate = (value) => {
|
|
4
|
+
if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(value) || value.startsWith('0000-'))
|
|
5
|
+
return null;
|
|
6
|
+
const date = new Date(`${value}T00:00:00.000Z`);
|
|
7
|
+
return Number.isFinite(date.getTime()) && date.toISOString().slice(0, 10) === value ? date : null;
|
|
8
|
+
};
|
|
9
|
+
export const isLumenDateBoundsValid = (min, max) => ((min === undefined || parseLumenDate(min) !== null) &&
|
|
10
|
+
(max === undefined || parseLumenDate(max) !== null) &&
|
|
11
|
+
!(min && max && min > max));
|
|
12
|
+
const isDateRangeRecord = (range) => (typeof range === 'object' && range !== null && 'start' in range && 'end' in range &&
|
|
13
|
+
typeof range.start === 'string' && typeof range.end === 'string');
|
|
14
|
+
export const isLumenDateRangeValid = (range, min, max) => {
|
|
15
|
+
if (!isDateRangeRecord(range))
|
|
16
|
+
return false;
|
|
17
|
+
return parseLumenDate(range.start) !== null && parseLumenDate(range.end) !== null &&
|
|
18
|
+
isLumenDateBoundsValid(min, max) && range.start <= range.end &&
|
|
19
|
+
!(min && range.start < min) && !(max && range.end > max);
|
|
20
|
+
};
|
|
21
|
+
export const resolveLumenDateLocale = (locale) => {
|
|
22
|
+
const documentLocale = typeof document === 'undefined' ? undefined : document.documentElement.lang;
|
|
23
|
+
const browserLocale = typeof navigator === 'undefined' ? undefined : navigator.language;
|
|
24
|
+
const requested = locale || documentLocale || browserLocale || 'en';
|
|
25
|
+
try {
|
|
26
|
+
return new Intl.Locale(requested).toString();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return 'en';
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export const resolveLumenDateLabels = (locale) => {
|
|
33
|
+
const language = resolveLumenDateLocale(locale);
|
|
34
|
+
return language.toLowerCase().split('-')[0] === 'es' ?
|
|
35
|
+
{ previousMonth: 'Mes anterior', nextMonth: 'Mes siguiente', chooseDate: 'Elegir fecha', invalidRange: 'Selecciona un intervalo de fechas válido.' } :
|
|
36
|
+
{ previousMonth: 'Previous month', nextMonth: 'Next month', chooseDate: 'Choose date', invalidRange: 'Select a valid date range.' };
|
|
37
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type LumenDeviceFrameDevice = 'laptop' | 'desktop' | 'iphone' | 'android' | 'tablet' | 'macbook-pro' | 'macbook-air' | 'imac' | 'pixel' | 'ipad-pro';
|
|
2
|
+
export type LumenDeviceFrameOrientation = 'portrait' | 'landscape';
|
|
3
|
+
export type LumenDeviceFrameTone = 'light' | 'dark';
|
|
4
|
+
export type LumenDeviceFrameColor = 'white' | 'black' | `#${string}`;
|
|
5
|
+
/** Named finishes and bounded hex colors are safe to serialize into an inline declaration. */
|
|
6
|
+
export declare const resolveLumenDeviceFrameColor: (color: unknown) => string | undefined;
|
|
7
|
+
export declare const lumenDeviceFrameSizes: {
|
|
8
|
+
readonly android: readonly [412, 915];
|
|
9
|
+
readonly desktop: readonly [1440, 900];
|
|
10
|
+
readonly imac: readonly [1440, 810];
|
|
11
|
+
readonly iphone: readonly [390, 844];
|
|
12
|
+
readonly 'ipad-pro': readonly [834, 1194];
|
|
13
|
+
readonly laptop: readonly [1280, 800];
|
|
14
|
+
readonly 'macbook-pro': readonly [1280, 800];
|
|
15
|
+
readonly 'macbook-air': readonly [1280, 800];
|
|
16
|
+
readonly pixel: readonly [412, 915];
|
|
17
|
+
readonly tablet: readonly [820, 1180];
|
|
18
|
+
};
|
|
19
|
+
export declare const resolveLumenDeviceFrame: (device?: LumenDeviceFrameDevice, orientation?: LumenDeviceFrameOrientation, width?: number, height?: number) => {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
};
|
|
23
|
+
/** Scale iframe viewports without changing their CSS layout width. Slots remain responsive HTML. */
|
|
24
|
+
export declare const observeLumenDeviceFrame: (screen: HTMLElement, width: number) => (() => void);
|
|
25
|
+
//# sourceMappingURL=device-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-frame.d.ts","sourceRoot":"","sources":["../src/device-frame.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;AAC3J,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,WAAW,CAAA;AAClE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAA;AACnD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;AAEpE,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,SAMtE,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAWxB,CAAA;AAIV,eAAO,MAAM,uBAAuB,GAClC,SAAQ,sBAAiC,EAAE,cAAc,2BAA2B,EACpF,QAAQ,MAAM,EAAE,SAAS,MAAM,KAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAWjC,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,GAAI,QAAQ,WAAW,EAAE,OAAO,MAAM,KAAG,CAAC,MAAM,IAAI,CAwBvF,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** Named finishes and bounded hex colors are safe to serialize into an inline declaration. */
|
|
2
|
+
export const resolveLumenDeviceFrameColor = (color) => {
|
|
3
|
+
if (color === 'white' || color === 'black')
|
|
4
|
+
return color;
|
|
5
|
+
if (typeof color !== 'string' || ![4, 5, 7, 9].includes(color.length))
|
|
6
|
+
return undefined;
|
|
7
|
+
return /^#[\da-f]+$/iu.test(color) ? color : undefined;
|
|
8
|
+
};
|
|
9
|
+
export const lumenDeviceFrameSizes = {
|
|
10
|
+
android: [412, 915],
|
|
11
|
+
desktop: [1440, 900],
|
|
12
|
+
imac: [1440, 810],
|
|
13
|
+
iphone: [390, 844],
|
|
14
|
+
'ipad-pro': [834, 1194],
|
|
15
|
+
laptop: [1280, 800],
|
|
16
|
+
'macbook-pro': [1280, 800],
|
|
17
|
+
'macbook-air': [1280, 800],
|
|
18
|
+
pixel: [412, 915],
|
|
19
|
+
tablet: [820, 1180]
|
|
20
|
+
};
|
|
21
|
+
const dimension = (value, fallback) => typeof value === 'number' && Number.isFinite(value) && value >= 1 && value <= 16384 ? value : fallback;
|
|
22
|
+
export const resolveLumenDeviceFrame = (device = 'laptop', orientation, width, height) => {
|
|
23
|
+
const presets = lumenDeviceFrameSizes;
|
|
24
|
+
const defaults = presets[device] ?? lumenDeviceFrameSizes.laptop;
|
|
25
|
+
const first = dimension(width, defaults[0]);
|
|
26
|
+
const second = dimension(height, defaults[1]);
|
|
27
|
+
if (!orientation)
|
|
28
|
+
return { height: second, width: first };
|
|
29
|
+
return orientation === 'landscape' ?
|
|
30
|
+
{ height: Math.min(first, second), width: Math.max(first, second) } :
|
|
31
|
+
{ height: Math.max(first, second), width: Math.min(first, second) };
|
|
32
|
+
};
|
|
33
|
+
/** Scale iframe viewports without changing their CSS layout width. Slots remain responsive HTML. */
|
|
34
|
+
export const observeLumenDeviceFrame = (screen, width) => {
|
|
35
|
+
const view = screen.ownerDocument.defaultView;
|
|
36
|
+
const update = () => {
|
|
37
|
+
const available = screen.clientWidth;
|
|
38
|
+
if (available > 0)
|
|
39
|
+
screen.style.setProperty('--ui-device-frame-scale', String(available / width));
|
|
40
|
+
};
|
|
41
|
+
const observer = view?.ResizeObserver ? new view.ResizeObserver(update) : undefined;
|
|
42
|
+
observer?.observe(screen);
|
|
43
|
+
view?.addEventListener('resize', update);
|
|
44
|
+
update();
|
|
45
|
+
return () => {
|
|
46
|
+
observer?.disconnect();
|
|
47
|
+
view?.removeEventListener('resize', update);
|
|
48
|
+
screen.style.removeProperty('--ui-device-frame-scale');
|
|
49
|
+
};
|
|
50
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../src/direction.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,eAAO,MAAM,sBAAsB,GAAI,SAAS,WAAW,EAAE,KAAK,MAAM,KAAG,MAS1E,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Resolve visual horizontal navigation at event time, including inherited and changing direction. */
|
|
2
|
+
export const getLumenDirectionalKey = (element, key) => {
|
|
3
|
+
if (key !== 'ArrowLeft' && key !== 'ArrowRight')
|
|
4
|
+
return key;
|
|
5
|
+
const computed = element.ownerDocument.defaultView?.getComputedStyle(element).direction;
|
|
6
|
+
const direction = computed || element.closest('[dir]')?.getAttribute('dir');
|
|
7
|
+
if (direction !== 'rtl')
|
|
8
|
+
return key;
|
|
9
|
+
return key === 'ArrowLeft' ? 'ArrowRight' : 'ArrowLeft';
|
|
10
|
+
};
|