@santi020k/lumen-elements 3.0.1 → 4.1.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.
Files changed (66) hide show
  1. package/README.md +518 -5
  2. package/dist/bullet-chart-html.d.ts +5 -0
  3. package/dist/bullet-chart-html.d.ts.map +1 -0
  4. package/dist/bullet-chart-html.js +56 -0
  5. package/dist/chart-activation.d.ts +15 -0
  6. package/dist/chart-activation.d.ts.map +1 -0
  7. package/dist/chart-activation.js +93 -0
  8. package/dist/chart-html.d.ts +22 -0
  9. package/dist/chart-html.d.ts.map +1 -0
  10. package/dist/chart-html.js +1 -0
  11. package/dist/comparison-chart-html.d.ts +4 -0
  12. package/dist/comparison-chart-html.d.ts.map +1 -0
  13. package/dist/comparison-chart-html.js +36 -0
  14. package/dist/components/ai-surfaces.d.ts +115 -0
  15. package/dist/components/ai-surfaces.d.ts.map +1 -0
  16. package/dist/components/ai-surfaces.js +270 -0
  17. package/dist/components/button.d.ts +55 -2
  18. package/dist/components/button.d.ts.map +1 -1
  19. package/dist/components/button.js +110 -2
  20. package/dist/components/card.d.ts +6 -0
  21. package/dist/components/card.d.ts.map +1 -1
  22. package/dist/components/card.js +6 -1
  23. package/dist/components/combobox.d.ts +1 -2
  24. package/dist/components/combobox.d.ts.map +1 -1
  25. package/dist/components/combobox.js +27 -121
  26. package/dist/components/dashboard.d.ts +41 -0
  27. package/dist/components/dashboard.d.ts.map +1 -0
  28. package/dist/components/dashboard.js +88 -0
  29. package/dist/components/device-frame.d.ts +31 -0
  30. package/dist/components/device-frame.d.ts.map +1 -0
  31. package/dist/components/device-frame.js +95 -0
  32. package/dist/components/foundations.d.ts +58 -18
  33. package/dist/components/foundations.d.ts.map +1 -1
  34. package/dist/components/foundations.js +160 -9
  35. package/dist/components/image-comparison.d.ts +33 -0
  36. package/dist/components/image-comparison.d.ts.map +1 -0
  37. package/dist/components/image-comparison.js +144 -0
  38. package/dist/components/media-selection.d.ts +41 -0
  39. package/dist/components/media-selection.d.ts.map +1 -0
  40. package/dist/components/media-selection.js +114 -0
  41. package/dist/components/media-viewport.d.ts +30 -0
  42. package/dist/components/media-viewport.d.ts.map +1 -0
  43. package/dist/components/media-viewport.js +108 -0
  44. package/dist/components/virtual-list.d.ts +38 -0
  45. package/dist/components/virtual-list.d.ts.map +1 -0
  46. package/dist/components/virtual-list.js +30 -0
  47. package/dist/components/visual-interactions.d.ts +65 -0
  48. package/dist/components/visual-interactions.d.ts.map +1 -0
  49. package/dist/components/visual-interactions.js +91 -0
  50. package/dist/components/world-map.d.ts +46 -0
  51. package/dist/components/world-map.d.ts.map +1 -0
  52. package/dist/components/world-map.js +312 -0
  53. package/dist/consumer-behaviors.d.ts +36 -0
  54. package/dist/consumer-behaviors.d.ts.map +1 -0
  55. package/dist/consumer-behaviors.js +1 -0
  56. package/dist/define.d.ts +229 -6
  57. package/dist/define.d.ts.map +1 -1
  58. package/dist/define.js +1 -1
  59. package/dist/element-base.js +1 -1
  60. package/dist/expanded-chart-html.d.ts +9 -0
  61. package/dist/expanded-chart-html.d.ts.map +1 -0
  62. package/dist/expanded-chart-html.js +61 -0
  63. package/dist/index.d.ts +2 -1
  64. package/dist/index.d.ts.map +1 -1
  65. package/package.json +34 -6
  66. package/styles/critical.css +696 -66
@@ -44,6 +44,22 @@
44
44
  --chart-tooltip-background: var(--ink);
45
45
  --chart-tooltip-foreground: var(--surface);
46
46
  --ui-on-danger: var(--on-danger);
47
+ /* BEGIN:generated-spacing */
48
+ --ui-space-zero: 0rem;
49
+ --ui-space-xs: 0.25rem;
50
+ --ui-space-sm: 0.5rem;
51
+ --ui-space-md: 0.75rem;
52
+ --ui-space-lg: 1rem;
53
+ --ui-space-xl: 1.5rem;
54
+ --ui-space-2xl: 2rem;
55
+ --ui-space-3xl: 3rem;
56
+ --ui-space-related: var(--ui-space-sm);
57
+ --ui-space-group: var(--ui-space-lg);
58
+ --ui-space-section: var(--ui-space-2xl);
59
+ --ui-space-inset: var(--ui-space-xl);
60
+ /* END:generated-spacing */
61
+ --ui-container-gutter: clamp(var(--ui-space-group), 4vw, var(--ui-space-section));
62
+ --ui-border-width: 1px;
47
63
  --ui-radius: 0.625rem;
48
64
  --ui-radius-sm: 0.375rem;
49
65
  --ui-radius-lg: 0.75rem;
@@ -141,6 +157,11 @@
141
157
  }
142
158
 
143
159
  @layer lumen.base {
160
+ /* Preserve native hiding even when a primitive establishes its own display mode. */
161
+ [hidden]:not([hidden="until-found"]) {
162
+ display: none !important;
163
+ }
164
+
144
165
  @keyframes ui-shimmer {
145
166
  from {
146
167
  background-position: 200% 0;
@@ -151,6 +172,17 @@
151
172
  }
152
173
  }
153
174
 
175
+ @keyframes ui-skeleton-pulse {
176
+ 0%,
177
+ 100% {
178
+ opacity: 1;
179
+ }
180
+
181
+ 50% {
182
+ opacity: 0.55;
183
+ }
184
+ }
185
+
154
186
  @keyframes ui-spin {
155
187
  to {
156
188
  transform: rotate(360deg);
@@ -310,7 +342,8 @@
310
342
  .ui-tree,
311
343
  .ui-tree-grid,
312
344
  .ui-typography,
313
- .ui-virtual-list
345
+ .ui-virtual-list,
346
+ .ui-world-map
314
347
  ) {
315
348
  box-sizing: border-box;
316
349
  font-family: var(--ui-font);
@@ -326,14 +359,15 @@
326
359
  .panel-card,
327
360
  .ui-card {
328
361
  position: relative;
329
- overflow: hidden;
330
- border: 1px solid hsl(var(--line));
362
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
331
363
  border-radius: var(--ui-radius-lg);
332
364
  background: hsl(var(--surface));
333
365
  box-shadow: var(--ui-shadow-sm);
334
366
  color: hsl(var(--ink));
335
367
  }
336
368
 
369
+ .ui-card { overflow: visible; overflow-wrap: anywhere; }
370
+
337
371
  .card-interactive,
338
372
  .ui-card--interactive {
339
373
  transition:
@@ -349,49 +383,33 @@
349
383
  transform: translateY(-1px);
350
384
  }
351
385
 
352
- .ui-card {
353
- --ui-card-gap: 1rem;
354
- --ui-card-padding: 1.25rem;
355
- --ui-card-section-gap: 0.375rem;
386
+ .ui-card{--ui-card-gap:var(--ui-space-group);--ui-card-padding:var(--ui-space-inset);--ui-card-section-gap:var(--ui-space-related);display:flex;flex-direction:column;gap:var(--ui-card-gap);min-width:0;padding:var(--ui-card-padding);}
356
387
 
357
- padding: var(--ui-card-padding);
358
- }
388
+ .ui-card--compact{--ui-card-gap:var(--ui-space-md);--ui-card-padding:var(--ui-space-lg);--ui-card-section-gap:var(--ui-space-xs);}
359
389
 
360
- .ui-card__header {
361
- display: grid;
362
- gap: var(--ui-card-section-gap);
363
- }
390
+ .ui-card--spacious{--ui-card-gap:var(--ui-space-xl);--ui-card-padding:var(--ui-space-2xl);}
364
391
 
365
- .ui-card__title {
366
- color: hsl(var(--ink));
367
- font-size: 1.125rem;
368
- font-weight: 700;
369
- letter-spacing: -0.015em;
370
- line-height: 1.3;
371
- }
392
+ .ui-card__header{display:grid;gap:var(--ui-card-section-gap);}
372
393
 
373
- .ui-card__description {
374
- color: hsl(var(--ink-muted));
375
- font-size: 0.875rem;
376
- line-height: 1.55;
377
- }
394
+ .ui-card__title{color:hsl(var(--ink));font-size:1.125rem;font-weight:700;letter-spacing:-0.015em;line-height:1.3;}
378
395
 
379
- .ui-card__content {
380
- color: hsl(var(--ink-soft));
381
- }
396
+ .ui-card__description{color:hsl(var(--ink-soft));font-size:0.875rem;line-height:1.55;}
382
397
 
383
- .ui-card__footer {
384
- align-items: center;
385
- display: flex;
386
- gap: 0.75rem;
387
- }
398
+ .ui-card__content{color:hsl(var(--ink-soft));}
388
399
 
389
- .ui-card > :where(
390
- .ui-card__content,
391
- .ui-card__footer
392
- ) {
393
- margin-block-start: var(--ui-card-gap);
394
- }
400
+ .ui-card__footer{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ui-space-related);}
401
+
402
+ .ui-card__footer >:is(.ui-button,.ui-button-link),.ui-stack--wrap >:is(.ui-button,.ui-button-link){max-width:100%;white-space:normal;overflow-wrap:anywhere;}
403
+
404
+ .ui-card__footer .ui-button__content,.ui-stack--wrap > .ui-button .ui-button__content{min-width:0;}
405
+
406
+ .ui-card >:where(*),.ui-card__header >:where(*),.ui-field >:where(*){min-width:0;margin:0;}
407
+
408
+ .ui-card__content >:where(:first-child){margin-block-start:0;}
409
+
410
+ .ui-card__content >:where(:last-child){margin-block-end:0;}
411
+
412
+ .ui-card >:where([hidden]:not([hidden="until-found"])),.ui-card >:where(.ui-card__header,.ui-card__content,.ui-card__footer):empty{display:none;}
395
413
 
396
414
  .ui-card--muted {
397
415
  background: hsl(var(--surface-muted) / 0.72);
@@ -420,6 +438,7 @@
420
438
  --ui-button-padding: 0.5rem 1rem;
421
439
  --ui-button-radius: var(--ui-radius-sm);
422
440
 
441
+ position: relative;
423
442
  display: inline-flex;
424
443
  min-height: var(--ui-button-min-height);
425
444
  align-items: center;
@@ -444,6 +463,23 @@
444
463
  user-select: none;
445
464
  }
446
465
 
466
+ .ui-button__content {
467
+ display: inline-flex;
468
+ align-items: center;
469
+ justify-content: center;
470
+ gap: inherit;
471
+ }
472
+
473
+ .ui-button--loading > .ui-button__content {
474
+ opacity: 0;
475
+ }
476
+
477
+ .ui-button--loading > .ui-spinner {
478
+ position: absolute;
479
+ inset: 0;
480
+ margin: auto;
481
+ }
482
+
447
483
  .ui-button:hover {
448
484
  transform: translateY(-1px);
449
485
  }
@@ -560,9 +596,15 @@
560
596
  padding: 0;
561
597
  }
562
598
 
599
+ .ui-prose :where(table:not(.ui-table)) { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
600
+
601
+ .ui-prose :where(table:not(.ui-table) th, table:not(.ui-table) td) { padding: .625rem .75rem; border-bottom: var(--ui-border-width, 1px) solid hsl(var(--line)); text-align: start; }
602
+
603
+ .ui-prose :where(table:not(.ui-table) th) { color: hsl(var(--ink)); font-weight: 600; }
604
+
563
605
  .ui-alert,
564
606
  .ui-toast {
565
- border: 1px solid hsl(var(--line));
607
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
566
608
  border-radius: var(--ui-radius);
567
609
  background: hsl(var(--surface));
568
610
  color: hsl(var(--ink-soft));
@@ -642,14 +684,14 @@
642
684
  .ui-toast--success {
643
685
  border-color: hsl(var(--success) / 0.36);
644
686
  background: hsl(var(--success) / 0.08);
645
- color: hsl(var(--success));
687
+ color: hsl(var(--ink));
646
688
  }
647
689
 
648
690
  .ui-alert--warning,
649
691
  .ui-toast--warning {
650
692
  border-color: hsl(var(--warning) / 0.42);
651
693
  background: hsl(var(--warning) / 0.1);
652
- color: hsl(var(--warning));
694
+ color: hsl(var(--ink));
653
695
  }
654
696
 
655
697
  .ui-badge {
@@ -707,7 +749,7 @@
707
749
  .ui-input-otp {
708
750
  min-height: 2.75rem;
709
751
  width: 100%;
710
- border: 1px solid hsl(var(--line));
752
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
711
753
  border-radius: var(--ui-radius-sm);
712
754
  background: hsl(var(--surface));
713
755
  color: hsl(var(--ink));
@@ -759,15 +801,21 @@
759
801
  background-image:
760
802
  linear-gradient(45deg, transparent 50%, hsl(var(--ink-muted)) 50%),
761
803
  linear-gradient(135deg, hsl(var(--ink-muted)) 50%, transparent 50%);
762
- background-position:
763
- calc(100% - 1rem) 50%,
764
- calc(100% - 0.72rem) 50%;
804
+ background-position: var(--_ui-select-chevron, calc(100% - 1rem) 50%, calc(100% - 0.72rem) 50%);
765
805
  background-size:
766
806
  0.32rem 0.32rem,
767
807
  0.32rem 0.32rem;
768
808
  background-repeat: no-repeat;
769
809
  }
770
810
 
811
+ [dir="rtl"] {
812
+ --_ui-select-chevron: 0.72rem 50%, 1rem 50%;
813
+ }
814
+
815
+ [dir="ltr"] {
816
+ --_ui-select-chevron: calc(100% - 1rem) 50%, calc(100% - 0.72rem) 50%;
817
+ }
818
+
771
819
  .ui-label {
772
820
  color: hsl(var(--ink));
773
821
  font-size: 0.875rem;
@@ -779,7 +827,7 @@
779
827
  .ui-combobox,
780
828
  .ui-select-field {
781
829
  display: grid;
782
- gap: 0.45rem;
830
+ gap: var(--ui-space-related);
783
831
  }
784
832
 
785
833
  .ui-combobox,
@@ -846,7 +894,7 @@
846
894
  width: 100%;
847
895
  max-height: min(16rem, 50vh);
848
896
  overflow-y: auto;
849
- border: 1px solid hsl(var(--line));
897
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
850
898
  border-radius: var(--ui-radius);
851
899
  background: hsl(var(--surface));
852
900
  box-shadow: var(--ui-shadow-md);
@@ -904,7 +952,7 @@
904
952
  align-items: center;
905
953
  gap: 0.5rem;
906
954
  overflow: hidden;
907
- border: 1px solid hsl(var(--line));
955
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
908
956
  border-radius: var(--ui-radius-sm);
909
957
  background: hsl(var(--surface));
910
958
  color: hsl(var(--ink-soft));
@@ -942,7 +990,7 @@
942
990
  height: 1rem;
943
991
  margin: 0;
944
992
  appearance: none;
945
- border: 1px solid hsl(var(--line));
993
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
946
994
  border-radius: 0.25rem;
947
995
  background: hsl(var(--surface));
948
996
  cursor: pointer;
@@ -976,7 +1024,9 @@
976
1024
  }
977
1025
 
978
1026
  .ui-skeleton {
979
- min-height: 1rem;
1027
+ /* A default height, not a minimum, lets explicit styles and classes size placeholders below 1rem. */
1028
+ width: var(--ui-skeleton-width, auto);
1029
+ height: var(--ui-skeleton-height, 1rem);
980
1030
  border-radius: var(--ui-radius-sm);
981
1031
  background: linear-gradient(
982
1032
  90deg,
@@ -988,6 +1038,42 @@
988
1038
  animation: ui-shimmer 2.2s linear infinite;
989
1039
  }
990
1040
 
1041
+ .ui-skeleton:where(:not(:empty)) {
1042
+ height: var(--ui-skeleton-height, auto);
1043
+ min-height: 1rem;
1044
+ }
1045
+
1046
+ lumen-skeleton.ui-skeleton,
1047
+ lumen-progress.ui-progress {
1048
+ display: block;
1049
+ }
1050
+
1051
+ .ui-skeleton--text {
1052
+ height: var(--ui-skeleton-height, 0.75rem);
1053
+ }
1054
+
1055
+ .ui-skeleton--circle {
1056
+ flex: 0 0 auto;
1057
+ width: var(--ui-skeleton-width, var(--ui-skeleton-height, 2.5rem));
1058
+ height: var(--ui-skeleton-height, var(--ui-skeleton-width, 2.5rem));
1059
+ border-radius: 50%;
1060
+ }
1061
+
1062
+ .ui-skeleton--pulse {
1063
+ background: hsl(var(--surface-strong));
1064
+ animation: ui-skeleton-pulse 1.6s ease-in-out infinite;
1065
+ }
1066
+
1067
+ .ui-skeleton--static {
1068
+ animation: none;
1069
+ }
1070
+
1071
+ @media (prefers-reduced-motion: reduce) {
1072
+ .ui-skeleton {
1073
+ animation: none;
1074
+ }
1075
+ }
1076
+
991
1077
  .ui-spinner {
992
1078
  box-sizing: border-box;
993
1079
  display: inline-block;
@@ -1014,7 +1100,7 @@
1014
1100
  .ui-sheet {
1015
1101
  width: min(100% - 2rem, 34rem);
1016
1102
  max-width: 34rem;
1017
- border: 1px solid hsl(var(--line));
1103
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1018
1104
  border-radius: var(--ui-radius-lg);
1019
1105
  background: hsl(var(--surface));
1020
1106
  color: hsl(var(--ink));
@@ -1072,6 +1158,64 @@
1072
1158
  gap: 0.5rem;
1073
1159
  }
1074
1160
 
1161
+ .ui-dialog:has(> [data-slot="dialog-body"]) {
1162
+ padding: 0;
1163
+ overflow: hidden;
1164
+ }
1165
+
1166
+ .ui-dialog[open]:has(> [data-slot="dialog-body"]),
1167
+ lumen-dialog.ui-dialog:not([hidden]):has(> [data-slot="dialog-body"]) {
1168
+ display: flex;
1169
+ flex-direction: column;
1170
+ }
1171
+
1172
+ .ui-dialog:has(> [data-slot="dialog-body"]) > * + * {
1173
+ margin-block-start: 0;
1174
+ }
1175
+
1176
+ .ui-dialog-header,
1177
+ .ui-dialog-footer {
1178
+ display: block;
1179
+ flex: none;
1180
+ padding: 1.25rem;
1181
+ }
1182
+
1183
+ .ui-dialog-header {
1184
+ border-block-end: var(--ui-border-width, 1px) solid hsl(var(--line));
1185
+ }
1186
+
1187
+ .ui-dialog-title {
1188
+ display: block;
1189
+ margin: 0;
1190
+ font-size: 1.125rem;
1191
+ font-weight: 600;
1192
+ line-height: 1.4;
1193
+ }
1194
+
1195
+ .ui-dialog-title > :is(h2, h3, h4) {
1196
+ margin: 0;
1197
+ font: inherit;
1198
+ }
1199
+
1200
+ .ui-dialog-body {
1201
+ display: block;
1202
+ flex: 1 1 auto;
1203
+ min-height: 0;
1204
+ padding: 1.25rem;
1205
+ overflow-y: auto;
1206
+ overscroll-behavior: contain;
1207
+ scroll-padding-block: 1.25rem;
1208
+ }
1209
+
1210
+ .ui-dialog-footer,
1211
+ .ui-dialog .ui-dialog-footer {
1212
+ display: flex;
1213
+ flex-wrap: wrap;
1214
+ justify-content: flex-end;
1215
+ gap: 0.5rem;
1216
+ border-block-start: var(--ui-border-width, 1px) solid hsl(var(--line));
1217
+ }
1218
+
1075
1219
  .ui-alert-dialog {
1076
1220
  max-width: 28rem;
1077
1221
  }
@@ -1119,7 +1263,7 @@
1119
1263
  display: inline-flex;
1120
1264
  align-items: center;
1121
1265
  gap: 0.25rem;
1122
- border: 1px solid hsl(var(--line));
1266
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1123
1267
  border-radius: var(--ui-radius);
1124
1268
  background: hsl(var(--surface));
1125
1269
  padding: 0.25rem;
@@ -1127,10 +1271,13 @@
1127
1271
 
1128
1272
  .ui-tabs {
1129
1273
  display: grid;
1274
+ min-width: 0;
1130
1275
  gap: 1rem;
1131
1276
  }
1132
1277
 
1133
1278
  .ui-tabs [role="tablist"] {
1279
+ box-sizing: border-box;
1280
+ min-width: 0;
1134
1281
  display: inline-flex;
1135
1282
  width: fit-content;
1136
1283
  max-width: 100%;
@@ -1138,7 +1285,7 @@
1138
1285
  gap: 0.25rem;
1139
1286
  overflow-x: auto;
1140
1287
  overscroll-behavior-inline: contain;
1141
- border: 1px solid hsl(var(--line));
1288
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1142
1289
  border-radius: var(--ui-radius);
1143
1290
  background: hsl(var(--surface-muted));
1144
1291
  padding: 0.25rem;
@@ -1178,7 +1325,7 @@
1178
1325
 
1179
1326
  width: 100%;
1180
1327
  overflow-x: auto;
1181
- border: 1px solid hsl(var(--line));
1328
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1182
1329
  border-radius: var(--ui-radius);
1183
1330
  background: hsl(var(--surface));
1184
1331
  }
@@ -1211,6 +1358,15 @@
1211
1358
  white-space: nowrap;
1212
1359
  }
1213
1360
 
1361
+ .ui-table-wrap--records thead:focus-within {
1362
+ position: static;
1363
+ width: auto;
1364
+ height: auto;
1365
+ overflow: visible;
1366
+ clip-path: none;
1367
+ white-space: normal;
1368
+ }
1369
+
1214
1370
  .ui-table-wrap--records tbody tr {
1215
1371
  display: grid;
1216
1372
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
@@ -1219,7 +1375,7 @@
1219
1375
  }
1220
1376
 
1221
1377
  .ui-table-wrap--records tbody tr + tr {
1222
- border-top: 1px solid hsl(var(--line));
1378
+ border-top: var(--ui-border-width, 1px) solid hsl(var(--line));
1223
1379
  }
1224
1380
 
1225
1381
  .ui-table-wrap--records tbody td {
@@ -1245,9 +1401,24 @@
1245
1401
  }
1246
1402
  }
1247
1403
 
1404
+ .ui-data-table__sort-controls,
1405
+ .ui-filter-bar__controls,
1406
+ .ui-filter-bar__active {
1407
+ display: flex;
1408
+ flex-wrap: wrap;
1409
+ align-items: end;
1410
+ gap: var(--ui-space-related, 0.75rem);
1411
+ }
1412
+
1413
+ .ui-data-table__sort-controls .ui-field,
1414
+ .ui-filter-bar__controls > * {
1415
+ flex: 1 1 12rem;
1416
+ min-width: 0;
1417
+ }
1418
+
1248
1419
  .ui-table-wrap th,
1249
1420
  .ui-data-table th {
1250
- border-bottom: 1px solid hsl(var(--line));
1421
+ border-bottom: var(--ui-border-width, 1px) solid hsl(var(--line));
1251
1422
  color: hsl(var(--ink));
1252
1423
  font-weight: 650;
1253
1424
  padding: var(--ui-table-cell-padding);
@@ -1347,7 +1518,7 @@
1347
1518
  }
1348
1519
 
1349
1520
  .ui-calendar {
1350
- border: 1px solid hsl(var(--line));
1521
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1351
1522
  border-radius: var(--ui-radius-lg);
1352
1523
  background: hsl(var(--surface));
1353
1524
  box-shadow: var(--ui-shadow-sm);
@@ -1375,7 +1546,7 @@
1375
1546
  width: 2rem;
1376
1547
  height: 2rem;
1377
1548
  place-items: center;
1378
- border: 1px solid hsl(var(--line));
1549
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1379
1550
  border-radius: var(--ui-radius-sm);
1380
1551
  background: hsl(var(--surface));
1381
1552
  color: hsl(var(--ink-soft));
@@ -1457,7 +1628,9 @@
1457
1628
  .ui-input-otp-field {
1458
1629
  position: relative;
1459
1630
  display: inline-grid;
1460
- width: min(100%, max-content);
1631
+ width: fit-content;
1632
+ max-width: 100%;
1633
+ min-width: 0;
1461
1634
  }
1462
1635
 
1463
1636
  .ui-input-otp {
@@ -1468,7 +1641,9 @@
1468
1641
 
1469
1642
  .ui-input-otp__native[data-ui-enhanced="true"] {
1470
1643
  position: absolute;
1471
- width: 1px;
1644
+ inset-block-start: 0;
1645
+ inset-inline-start: 0;
1646
+ width: 100%;
1472
1647
  height: 1px;
1473
1648
  overflow: hidden;
1474
1649
  clip-path: inset(50%);
@@ -1477,9 +1652,11 @@
1477
1652
  }
1478
1653
 
1479
1654
  .ui-input-otp__segments {
1480
- display: flex;
1481
- flex-wrap: wrap;
1482
- gap: 0.45rem;
1655
+ display: grid;
1656
+ grid-auto-flow: column;
1657
+ grid-auto-columns: minmax(0, 2.5rem);
1658
+ gap: clamp(0.25rem, 1vw, 0.45rem);
1659
+ min-width: 0;
1483
1660
  }
1484
1661
 
1485
1662
  .ui-input-otp__segments[hidden] {
@@ -1488,10 +1665,11 @@
1488
1665
 
1489
1666
  .ui-input-otp__segment {
1490
1667
  display: inline-grid;
1491
- width: 2.5rem;
1668
+ width: 100%;
1669
+ min-width: 0;
1492
1670
  min-height: 2.75rem;
1493
1671
  place-items: center;
1494
- border: 1px solid hsl(var(--line));
1672
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1495
1673
  border-radius: var(--ui-radius-sm);
1496
1674
  background: hsl(var(--surface));
1497
1675
  color: hsl(var(--ink));
@@ -1519,6 +1697,19 @@
1519
1697
  box-shadow: 0 0 0 3px hsl(var(--danger) / 0.14);
1520
1698
  }
1521
1699
 
1700
+ .ui-chart__actions .ui-button {
1701
+ height: auto;
1702
+ min-height: 44px;
1703
+ max-width: 100%;
1704
+ white-space: normal;
1705
+ text-align: start;
1706
+ }
1707
+
1708
+ .ui-chart__actions .ui-button__content {
1709
+ min-width: 0;
1710
+ overflow-wrap: anywhere;
1711
+ }
1712
+
1522
1713
  .ui-tvp > .ui-toast {
1523
1714
  pointer-events: auto;
1524
1715
  }
@@ -2107,3 +2298,442 @@
2107
2298
  font-size: 0.6875rem;
2108
2299
  }
2109
2300
  }
2301
+
2302
+ @layer lumen.components {
2303
+ .ui-range-calendar__presets .ui-button {
2304
+ justify-content: start;
2305
+ min-height: 2.75rem;
2306
+ padding-inline: .75rem;
2307
+ font-size: inherit;
2308
+ font-weight: 500;
2309
+ white-space: normal;
2310
+ text-align: start;
2311
+ }
2312
+
2313
+ .ui-range-calendar .ui-calendar { width: 100%; max-width: none; border: 0; padding: 0; box-shadow: none; background: transparent; }
2314
+
2315
+ .ui-range-calendar .ui-calendar__header { margin-bottom: .5rem; }
2316
+
2317
+ .ui-range-calendar .ui-calendar__header strong { font-size: .8125rem; font-weight: 650; }
2318
+
2319
+ .ui-range-calendar .ui-calendar__header button { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; }
2320
+
2321
+ .ui-range-calendar .ui-calendar__grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0 .25rem; }
2322
+
2323
+ .ui-range-calendar .ui-calendar__grid th { height: 2rem; font-size: .6875rem; font-weight: 500; }
2324
+
2325
+ .ui-range-calendar .ui-calendar__grid td { height: 2.5rem; padding: 0; text-align: center; border: 0; border-radius: 0; font-size: .8125rem; font-weight: 400; }
2326
+
2327
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"] { background: hsl(var(--brand-soft)); color: hsl(var(--ink)); box-shadow: none; }
2328
+
2329
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"]:first-child { border-start-start-radius: .375rem; border-end-start-radius: .375rem; }
2330
+
2331
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"]:last-child { border-start-end-radius: .375rem; border-end-end-radius: .375rem; }
2332
+
2333
+ .ui-range-calendar .ui-calendar__grid td[data-selected="true"] { background: hsl(var(--brand-solid)); color: hsl(var(--on-brand)); border-radius: .375rem; font-weight: 650; }
2334
+
2335
+ @media (max-width: 640px) {
2336
+ .ui-range-calendar__presets .ui-button { flex-shrink: 0; white-space: nowrap; }
2337
+
2338
+ .ui-range-calendar .ui-calendar__grid td { height: 2.75rem; }
2339
+
2340
+ .ui-range-calendar .ui-calendar__header button { width: 2.75rem; height: 2.75rem; }
2341
+ }
2342
+ }
2343
+
2344
+ @layer lumen.components {
2345
+ .ui-range-input > .ui-button {
2346
+ width: 100%;
2347
+ min-height: 44px;
2348
+ justify-content: space-between;
2349
+ gap: .75rem;
2350
+ padding-inline: .875rem;
2351
+ font-size: .8125rem;
2352
+ font-weight: 500;
2353
+ color: hsl(var(--ink));
2354
+ }
2355
+
2356
+ .ui-range-input > .ui-button[aria-expanded="true"] {
2357
+ border-color: hsl(var(--brand));
2358
+ box-shadow: 0 0 0 2px hsl(var(--brand) / .12);
2359
+ }
2360
+
2361
+ .ui-range-input > .ui-button > .ui-button__content { width: 100%; min-width: 0; justify-content: space-between; }
2362
+
2363
+ .ui-range-input > .ui-button .ui-icon { flex-shrink: 0; color: hsl(var(--ink-muted)); }
2364
+
2365
+ .ui-range-input__panel .ui-range-input__actions .ui-button { min-height: 44px; font-size: .8125rem; }
2366
+
2367
+ @media (max-width: 640px) {
2368
+ .ui-range-input__actions .ui-button { flex: 1; }
2369
+ }
2370
+ }
2371
+
2372
+ @layer lumen.components {
2373
+ .ui-range-calendar .ui-calendar__grid th,
2374
+ .ui-range-calendar .ui-calendar__grid td[data-outside="true"]:not([data-in-range="true"]) {
2375
+ color: hsl(var(--ink-soft));
2376
+ }
2377
+ }
2378
+
2379
+ @layer lumen.tokens {
2380
+ [data-lumen-preset="default"],
2381
+ [data-lumen-preset="default"][data-lumen-scheme="light"] {
2382
+ color-scheme: light;
2383
+ --canvas: 210 24% 98%;
2384
+ --surface: 0 0% 100%;
2385
+ --surface-muted: 210 22% 95%;
2386
+ --surface-strong: 213 18% 88%;
2387
+ --line: 214 17% 84%;
2388
+ --ink: 216 28% 12%;
2389
+ --ink-soft: 215 14% 35%;
2390
+ --ink-muted: 215 10% 50%;
2391
+ --brand: 201 96% 32%;
2392
+ --brand-solid: 201 96% 28%;
2393
+ --brand-soft: 198 64% 92%;
2394
+ --on-brand: 0 0% 100%;
2395
+ --accent: 169 78% 33%;
2396
+ --success: 142 76% 36%;
2397
+ --warning: 38 92% 50%;
2398
+ --danger: 0 84% 60%;
2399
+ --on-danger: 0 0% 0%;
2400
+ --ui-space-zero: 0rem;
2401
+ --ui-space-xs: 0.25rem;
2402
+ --ui-space-sm: 0.5rem;
2403
+ --ui-space-md: 0.75rem;
2404
+ --ui-space-lg: 1rem;
2405
+ --ui-space-xl: 1.5rem;
2406
+ --ui-space-2xl: 2rem;
2407
+ --ui-space-3xl: 3rem;
2408
+ --ui-radius-sm: 0.375rem;
2409
+ --ui-radius: 0.625rem;
2410
+ --ui-radius-lg: 0.75rem;
2411
+ --ui-border-width: 1px;
2412
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2413
+ --ui-shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.06);
2414
+ --ui-shadow-md: 0 8px 24px hsl(222 47% 11% / 0.08);
2415
+ --ui-shadow-lg: 0 24px 64px hsl(222 47% 11% / 0.14);
2416
+ --glass-bg: 0 0% 100% / 0.55;
2417
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2418
+ --glass-bg-strong: 0 0% 100% / 0.72;
2419
+ --glass-border: 220 30% 100% / 0.55;
2420
+ --glass-highlight: 0 0% 100% / 0.85;
2421
+ --glass-blur: 22px;
2422
+ --glass-saturate: 1.7;
2423
+ --glass-brightness: 1.05;
2424
+ --glass-edge: 0 0% 100% / 0.9;
2425
+ --glass-edge-soft: 0 0% 100% / 0.34;
2426
+ --glass-shade: 222 47% 11% / 0.07;
2427
+ --glass-refraction: 201 96% 32% / 0.08;
2428
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2429
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2430
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2431
+ }
2432
+
2433
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="default"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2434
+ [data-lumen-preset="default"][data-lumen-scheme="dark"],
2435
+ [data-lumen-preset="default"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2436
+ [data-lumen-preset="default"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2437
+ color-scheme: dark;
2438
+ --canvas: 224 24% 8%;
2439
+ --surface: 224 18% 11%;
2440
+ --surface-muted: 223 16% 15%;
2441
+ --surface-strong: 222 14% 22%;
2442
+ --line: 222 14% 26%;
2443
+ --ink: 210 20% 96%;
2444
+ --ink-soft: 214 14% 77%;
2445
+ --ink-muted: 216 10% 62%;
2446
+ --brand: 199 91% 56%;
2447
+ --brand-solid: 199 91% 36%;
2448
+ --brand-soft: 199 84% 16%;
2449
+ --on-brand: 0 0% 100%;
2450
+ --accent: 166 76% 43%;
2451
+ --success: 142 69% 45%;
2452
+ --warning: 38 92% 55%;
2453
+ --danger: 0 84% 65%;
2454
+ --on-danger: 224 24% 8%;
2455
+ --ui-space-zero: 0rem;
2456
+ --ui-space-xs: 0.25rem;
2457
+ --ui-space-sm: 0.5rem;
2458
+ --ui-space-md: 0.75rem;
2459
+ --ui-space-lg: 1rem;
2460
+ --ui-space-xl: 1.5rem;
2461
+ --ui-space-2xl: 2rem;
2462
+ --ui-space-3xl: 3rem;
2463
+ --ui-radius-sm: 0.375rem;
2464
+ --ui-radius: 0.625rem;
2465
+ --ui-radius-lg: 0.75rem;
2466
+ --ui-border-width: 1px;
2467
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2468
+ --ui-shadow-sm: 0 1px 2px hsl(0 0% 0% / 0.18);
2469
+ --ui-shadow-md: 0 12px 32px hsl(0 0% 0% / 0.24);
2470
+ --ui-shadow-lg: 0 28px 80px hsl(0 0% 0% / 0.36);
2471
+ --glass-bg: 224 20% 13% / 0.78;
2472
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2473
+ --glass-bg-strong: 224 20% 13% / 0.9;
2474
+ --glass-border: 210 30% 92% / 0.24;
2475
+ --glass-highlight: 210 30% 96% / 0.1;
2476
+ --glass-brightness: 1;
2477
+ --glass-edge: 210 40% 98% / 0.24;
2478
+ --glass-edge-soft: 210 40% 98% / 0.08;
2479
+ --glass-shade: 240 40% 3% / 0.3;
2480
+ --glass-refraction: 199 91% 56% / 0.1;
2481
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2482
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2483
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2484
+ }
2485
+
2486
+ [data-lumen-preset="studio"],
2487
+ [data-lumen-preset="studio"][data-lumen-scheme="light"] {
2488
+ color-scheme: light;
2489
+ --canvas: 0 0% 100%;
2490
+ --surface: 0 0% 100%;
2491
+ --surface-muted: 0 0% 96%;
2492
+ --surface-strong: 0 0% 91%;
2493
+ --line: 0 0% 90%;
2494
+ --ink: 0 0% 9%;
2495
+ --ink-soft: 0 0% 32%;
2496
+ --ink-muted: 0 0% 45%;
2497
+ --brand: 0 0% 9%;
2498
+ --brand-solid: 0 0% 9%;
2499
+ --brand-soft: 0 0% 92%;
2500
+ --on-brand: 0 0% 100%;
2501
+ --accent: 0 0% 9%;
2502
+ --success: 142 76% 36%;
2503
+ --warning: 38 92% 50%;
2504
+ --danger: 0 84% 60%;
2505
+ --on-danger: 0 0% 0%;
2506
+ --ui-space-zero: 0rem;
2507
+ --ui-space-xs: 0.25rem;
2508
+ --ui-space-sm: 0.5rem;
2509
+ --ui-space-md: 0.75rem;
2510
+ --ui-space-lg: 1rem;
2511
+ --ui-space-xl: 1.5rem;
2512
+ --ui-space-2xl: 2rem;
2513
+ --ui-space-3xl: 3rem;
2514
+ --ui-radius-sm: 0.22499999999999998rem;
2515
+ --ui-radius: 0.375rem;
2516
+ --ui-radius-lg: 0.44999999999999996rem;
2517
+ --ui-border-width: 1px;
2518
+ --ui-font: system-ui, "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
2519
+ --ui-shadow-sm: none;
2520
+ --ui-shadow-md: none;
2521
+ --ui-shadow-lg: none;
2522
+ --glass-bg: 0 0% 100% / 0.55;
2523
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2524
+ --glass-bg-strong: 0 0% 100% / 0.72;
2525
+ --glass-border: 220 30% 100% / 0.55;
2526
+ --glass-highlight: 0 0% 100% / 0.85;
2527
+ --glass-blur: 22px;
2528
+ --glass-saturate: 1.7;
2529
+ --glass-brightness: 1.05;
2530
+ --glass-edge: 0 0% 100% / 0.9;
2531
+ --glass-edge-soft: 0 0% 100% / 0.34;
2532
+ --glass-shade: 222 47% 11% / 0.07;
2533
+ --glass-refraction: 0 0% 50% / 0.04;
2534
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2535
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2536
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2537
+ }
2538
+
2539
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="studio"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2540
+ [data-lumen-preset="studio"][data-lumen-scheme="dark"],
2541
+ [data-lumen-preset="studio"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2542
+ [data-lumen-preset="studio"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2543
+ color-scheme: dark;
2544
+ --canvas: 0 0% 7%;
2545
+ --surface: 0 0% 7%;
2546
+ --surface-muted: 0 0% 11%;
2547
+ --surface-strong: 0 0% 19%;
2548
+ --line: 0 0% 22%;
2549
+ --ink: 0 0% 96%;
2550
+ --ink-soft: 0 0% 80%;
2551
+ --ink-muted: 0 0% 64%;
2552
+ --brand: 0 0% 96%;
2553
+ --brand-solid: 0 0% 96%;
2554
+ --brand-soft: 0 0% 14%;
2555
+ --on-brand: 0 0% 7%;
2556
+ --accent: 0 0% 96%;
2557
+ --success: 142 69% 45%;
2558
+ --warning: 38 92% 55%;
2559
+ --danger: 0 84% 65%;
2560
+ --on-danger: 224 24% 8%;
2561
+ --ui-space-zero: 0rem;
2562
+ --ui-space-xs: 0.25rem;
2563
+ --ui-space-sm: 0.5rem;
2564
+ --ui-space-md: 0.75rem;
2565
+ --ui-space-lg: 1rem;
2566
+ --ui-space-xl: 1.5rem;
2567
+ --ui-space-2xl: 2rem;
2568
+ --ui-space-3xl: 3rem;
2569
+ --ui-radius-sm: 0.22499999999999998rem;
2570
+ --ui-radius: 0.375rem;
2571
+ --ui-radius-lg: 0.44999999999999996rem;
2572
+ --ui-border-width: 1px;
2573
+ --ui-font: system-ui, "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
2574
+ --ui-shadow-sm: none;
2575
+ --ui-shadow-md: none;
2576
+ --ui-shadow-lg: none;
2577
+ --glass-bg: 224 20% 13% / 0.78;
2578
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2579
+ --glass-bg-strong: 224 20% 13% / 0.9;
2580
+ --glass-border: 210 30% 92% / 0.24;
2581
+ --glass-highlight: 210 30% 96% / 0.1;
2582
+ --glass-brightness: 1;
2583
+ --glass-edge: 210 40% 98% / 0.24;
2584
+ --glass-edge-soft: 210 40% 98% / 0.08;
2585
+ --glass-shade: 240 40% 3% / 0.3;
2586
+ --glass-refraction: 0 0% 50% / 0.04;
2587
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2588
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2589
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2590
+ }
2591
+
2592
+ [data-lumen-preset="glass"],
2593
+ [data-lumen-preset="glass"][data-lumen-scheme="light"] {
2594
+ color-scheme: light;
2595
+ --canvas: 210 24% 98%;
2596
+ --surface: 0 0% 100%;
2597
+ --surface-muted: 210 22% 95%;
2598
+ --surface-strong: 213 18% 88%;
2599
+ --line: 214 17% 84%;
2600
+ --ink: 216 28% 12%;
2601
+ --ink-soft: 215 14% 35%;
2602
+ --ink-muted: 215 10% 50%;
2603
+ --brand: 201 96% 32%;
2604
+ --brand-solid: 201 96% 28%;
2605
+ --brand-soft: 198 64% 92%;
2606
+ --on-brand: 0 0% 100%;
2607
+ --accent: 169 78% 33%;
2608
+ --success: 142 76% 36%;
2609
+ --warning: 38 92% 50%;
2610
+ --danger: 0 84% 60%;
2611
+ --on-danger: 0 0% 0%;
2612
+ --ui-space-zero: 0rem;
2613
+ --ui-space-xs: 0.25rem;
2614
+ --ui-space-sm: 0.5rem;
2615
+ --ui-space-md: 0.75rem;
2616
+ --ui-space-lg: 1rem;
2617
+ --ui-space-xl: 1.5rem;
2618
+ --ui-space-2xl: 2rem;
2619
+ --ui-space-3xl: 3rem;
2620
+ --ui-radius-sm: 0.5249999999999999rem;
2621
+ --ui-radius: 0.875rem;
2622
+ --ui-radius-lg: 1.0499999999999998rem;
2623
+ --ui-border-width: 1px;
2624
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2625
+ --ui-shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.06);
2626
+ --ui-shadow-md: 0 8px 24px hsl(222 47% 11% / 0.08);
2627
+ --ui-shadow-lg: 0 24px 64px hsl(222 47% 11% / 0.14);
2628
+ --glass-bg: 0 0% 100% / 0.55;
2629
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2630
+ --glass-bg-strong: 0 0% 100% / 0.72;
2631
+ --glass-border: 220 30% 100% / 0.55;
2632
+ --glass-highlight: 0 0% 100% / 0.85;
2633
+ --glass-blur: 22px;
2634
+ --glass-saturate: 1.7;
2635
+ --glass-brightness: 1.05;
2636
+ --glass-edge: 0 0% 100% / 0.9;
2637
+ --glass-edge-soft: 0 0% 100% / 0.34;
2638
+ --glass-shade: 222 47% 11% / 0.07;
2639
+ --glass-refraction: 201 96% 32% / 0.08;
2640
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2641
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2642
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2643
+ }
2644
+
2645
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="glass"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2646
+ [data-lumen-preset="glass"][data-lumen-scheme="dark"],
2647
+ [data-lumen-preset="glass"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2648
+ [data-lumen-preset="glass"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2649
+ color-scheme: dark;
2650
+ --canvas: 224 24% 8%;
2651
+ --surface: 224 18% 11%;
2652
+ --surface-muted: 223 16% 15%;
2653
+ --surface-strong: 222 14% 22%;
2654
+ --line: 222 14% 26%;
2655
+ --ink: 210 20% 96%;
2656
+ --ink-soft: 214 14% 77%;
2657
+ --ink-muted: 216 10% 62%;
2658
+ --brand: 199 91% 56%;
2659
+ --brand-solid: 199 91% 36%;
2660
+ --brand-soft: 199 84% 16%;
2661
+ --on-brand: 0 0% 100%;
2662
+ --accent: 166 76% 43%;
2663
+ --success: 142 69% 45%;
2664
+ --warning: 38 92% 55%;
2665
+ --danger: 0 84% 65%;
2666
+ --on-danger: 224 24% 8%;
2667
+ --ui-space-zero: 0rem;
2668
+ --ui-space-xs: 0.25rem;
2669
+ --ui-space-sm: 0.5rem;
2670
+ --ui-space-md: 0.75rem;
2671
+ --ui-space-lg: 1rem;
2672
+ --ui-space-xl: 1.5rem;
2673
+ --ui-space-2xl: 2rem;
2674
+ --ui-space-3xl: 3rem;
2675
+ --ui-radius-sm: 0.5249999999999999rem;
2676
+ --ui-radius: 0.875rem;
2677
+ --ui-radius-lg: 1.0499999999999998rem;
2678
+ --ui-border-width: 1px;
2679
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2680
+ --ui-shadow-sm: 0 1px 2px hsl(0 0% 0% / 0.18);
2681
+ --ui-shadow-md: 0 12px 32px hsl(0 0% 0% / 0.24);
2682
+ --ui-shadow-lg: 0 28px 80px hsl(0 0% 0% / 0.36);
2683
+ --glass-bg: 224 20% 13% / 0.78;
2684
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2685
+ --glass-bg-strong: 224 20% 13% / 0.9;
2686
+ --glass-border: 210 30% 92% / 0.24;
2687
+ --glass-highlight: 210 30% 96% / 0.1;
2688
+ --glass-brightness: 1;
2689
+ --glass-edge: 210 40% 98% / 0.24;
2690
+ --glass-edge-soft: 210 40% 98% / 0.08;
2691
+ --glass-shade: 240 40% 3% / 0.3;
2692
+ --glass-refraction: 199 91% 56% / 0.1;
2693
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2694
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2695
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2696
+ }
2697
+ }
2698
+
2699
+ @layer lumen.components {
2700
+ .ui-calendar-heatmap__range { color: hsl(var(--ink-soft)); font-size: .875rem; margin: 0; }
2701
+
2702
+ .ui-calendar-heatmap__plot { overflow-x: auto; max-width: 100%; padding: .5rem 0; }
2703
+
2704
+ .ui-calendar-heatmap__plot svg { display: block; width: auto; max-width: none; min-width: 240px; }
2705
+
2706
+ .ui-calendar-heatmap__weekday { fill: hsl(var(--chart-axis)); font-size: 11px; }
2707
+
2708
+ .ui-calendar-heatmap__cell { fill: hsl(var(--chart-series-1)); }
2709
+
2710
+ .ui-calendar-heatmap__cell[data-missing] { fill: hsl(var(--surface-muted)); stroke: hsl(var(--line)); }
2711
+
2712
+ .ui-calendar-heatmap__missing { fill: hsl(var(--ink-muted)); font-size: 12px; }
2713
+
2714
+ .ui-calendar-heatmap__legend { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .75rem; color: hsl(var(--ink-soft)); font-variant-numeric: tabular-nums; }
2715
+
2716
+ .ui-calendar-heatmap__scale { width: 5rem; height: .5rem; border-radius: var(--ui-radius-sm); background: linear-gradient(to right, hsl(var(--chart-series-1) / .15), hsl(var(--chart-series-1))); }
2717
+
2718
+ :is(.ui-calendar-heatmap, .ui-funnel-chart, .ui-box-plot) [tabindex="0"]:focus-visible { outline: 2px solid hsl(var(--brand)); outline-offset: 2px; }
2719
+
2720
+ @media (forced-colors: active) {
2721
+ .ui-calendar-heatmap__cell { fill: Highlight; stroke: CanvasText; }
2722
+
2723
+ .ui-calendar-heatmap__cell[data-missing] { fill: Canvas; }
2724
+
2725
+ .ui-calendar-heatmap__missing, .ui-calendar-heatmap__weekday { fill: CanvasText; }
2726
+ }
2727
+ }
2728
+
2729
+ @layer lumen.components {
2730
+ .ui-tabs__moving-indicator { position: absolute; left: 0; bottom: 0; height: 2px; background: hsl(var(--brand)); pointer-events: none; }
2731
+
2732
+ @media (prefers-reduced-motion: reduce) {
2733
+ .ui-tabs__moving-indicator { transition: none !important; }
2734
+ }
2735
+
2736
+ [data-ui-motion="reduce"] .ui-tabs__moving-indicator { transition: none !important; }
2737
+ }
2738
+
2739
+ .ui-media-thumbnail .ui-button__content { display: grid; min-width: 0; width: 100%; gap: var(--ui-space-xs); }