@santi020k/lumen 3.0.1 → 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.
Files changed (125) hide show
  1. package/README.md +207 -3
  2. package/dist/cli.js +49 -5
  3. package/dist/consumer-upgrade-audit.d.ts +10 -0
  4. package/dist/consumer-upgrade-audit.d.ts.map +1 -0
  5. package/dist/consumer-upgrade-audit.js +52 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -0
  9. package/dist/installer.d.ts.map +1 -1
  10. package/dist/installer.js +16 -0
  11. package/dist/integration-diagnostics.d.ts.map +1 -1
  12. package/dist/integration-diagnostics.js +199 -3
  13. package/dist/registry-component-name.d.ts +2 -0
  14. package/dist/registry-component-name.d.ts.map +1 -0
  15. package/dist/registry-component-name.js +53 -0
  16. package/dist/registry-data.d.ts +339 -18
  17. package/dist/registry-data.d.ts.map +1 -1
  18. package/dist/registry-data.js +789 -3
  19. package/dist/registry.d.ts.map +1 -1
  20. package/dist/registry.js +11 -9
  21. package/dist/source-script-ranges.d.ts +3 -0
  22. package/dist/source-script-ranges.d.ts.map +1 -0
  23. package/dist/source-script-ranges.js +41 -0
  24. package/dist/v2-migration.d.ts +38 -0
  25. package/dist/v2-migration.d.ts.map +1 -1
  26. package/dist/v2-migration.js +26 -14
  27. package/dist/v4-migration.d.ts +26 -0
  28. package/dist/v4-migration.d.ts.map +1 -0
  29. package/dist/v4-migration.js +272 -0
  30. package/dist/version-migration-dependencies.d.ts +8 -0
  31. package/dist/version-migration-dependencies.d.ts.map +1 -0
  32. package/dist/version-migration-dependencies.js +10 -0
  33. package/dist/version-migration-source.d.ts +4 -0
  34. package/dist/version-migration-source.d.ts.map +1 -0
  35. package/dist/version-migration-source.js +281 -0
  36. package/dist/version-migration.d.ts +34 -0
  37. package/dist/version-migration.d.ts.map +1 -0
  38. package/dist/version-migration.js +158 -0
  39. package/native-components.json +563 -16
  40. package/package.json +26 -11
  41. package/release-manifest.json +22 -17
  42. package/styles/critical.css +634 -61
  43. package/styles/motion.css +61 -0
  44. package/styles/world-map.css +30 -0
  45. package/styles.css +1736 -455
  46. package/templates/astro/advanced-fields/src/lumen/advanced-fields.astro +35 -0
  47. package/templates/astro/ai-docs/llms.txt +3 -0
  48. package/templates/astro/analytics-dashboard/src/lumen/analytics-dashboard.astro +110 -0
  49. package/templates/astro/auth-onboarding/src/lumen/auth-onboarding.astro +107 -0
  50. package/templates/astro/command-center/src/lumen/command-center.astro +34 -0
  51. package/templates/astro/commerce-dashboard/src/lumen/commerce-dashboard.astro +108 -0
  52. package/templates/astro/content-flow-actions/src/lumen/content-flow-actions.astro +10 -0
  53. package/templates/astro/content-flow-header/src/lumen/content-flow-header.astro +14 -0
  54. package/templates/astro/content-flow-list/src/lumen/content-flow-list.astro +13 -0
  55. package/templates/astro/content-flow-settings/src/lumen/content-flow-settings.astro +17 -0
  56. package/templates/astro/data-collections/src/lumen/data-collections.astro +52 -0
  57. package/templates/astro/feature-preview/src/lumen/feature-preview.astro +32 -0
  58. package/templates/astro/guided-onboarding/src/lumen/guided-onboarding.astro +35 -0
  59. package/templates/astro/interactive-pricing/src/lumen/interactive-pricing.astro +32 -0
  60. package/templates/astro/media-workspace/src/lumen/adjustment-controls.astro +89 -0
  61. package/templates/astro/media-workspace/src/lumen/media-processing.astro +47 -0
  62. package/templates/astro/media-workspace/src/lumen/media-workspace.astro +77 -0
  63. package/templates/astro/page-header/src/lumen/page-header.astro +41 -0
  64. package/templates/astro/project-workspace/src/lumen/project-workspace.astro +103 -0
  65. package/templates/astro/rich-text-editor/src/lumen/rich-text-editor.astro +21 -0
  66. package/templates/astro/saas-admin/src/lumen/saas-admin.astro +110 -0
  67. package/templates/astro/scheduler/src/lumen/scheduler.astro +36 -0
  68. package/templates/astro/section-header/src/lumen/section-header.astro +35 -0
  69. package/templates/astro/theme-builder/src/lumen/theme-builder.astro +28 -0
  70. package/templates/elements/advanced-fields/src/lumen/advanced-fields.html +25 -0
  71. package/templates/elements/analytics-dashboard/src/lumen/analytics-dashboard.html +28 -0
  72. package/templates/elements/auth-onboarding/src/lumen/auth-onboarding.html +79 -0
  73. package/templates/elements/command-center/src/lumen/command-center.html +15 -0
  74. package/templates/elements/commerce-dashboard/src/lumen/commerce-dashboard.html +24 -0
  75. package/templates/elements/content-flow-actions/src/lumen/content-flow-actions.html +11 -0
  76. package/templates/elements/content-flow-header/src/lumen/content-flow-header.html +15 -0
  77. package/templates/elements/content-flow-list/src/lumen/content-flow-list.html +14 -0
  78. package/templates/elements/content-flow-settings/src/lumen/content-flow-settings.html +18 -0
  79. package/templates/elements/data-collections/src/lumen/data-collections.html +31 -0
  80. package/templates/elements/feature-preview/src/lumen/feature-preview.html +13 -0
  81. package/templates/elements/guided-onboarding/src/lumen/guided-onboarding.html +16 -0
  82. package/templates/elements/interactive-pricing/src/lumen/interactive-pricing.html +13 -0
  83. package/templates/elements/media-workspace/src/lumen/media-workspace.html +57 -0
  84. package/templates/elements/media-workspace/src/lumen/media-workspace.ts +163 -0
  85. package/templates/elements/page-header/src/lumen/page-header.html +20 -0
  86. package/templates/elements/project-workspace/src/lumen/project-workspace.html +17 -0
  87. package/templates/elements/rich-text-editor/src/lumen/rich-text-editor.html +17 -0
  88. package/templates/elements/saas-admin/src/lumen/saas-admin.html +18 -0
  89. package/templates/elements/scheduler/src/lumen/scheduler.html +27 -0
  90. package/templates/elements/section-header/src/lumen/section-header.html +21 -0
  91. package/templates/elements/theme-builder/src/lumen/theme-builder.html +59 -0
  92. package/templates/react/advanced-fields/src/lumen/advanced-fields.tsx +37 -0
  93. package/templates/react/analytics-dashboard/src/lumen/analytics-dashboard.tsx +143 -0
  94. package/templates/react/auth-onboarding/src/lumen/auth-onboarding.tsx +129 -0
  95. package/templates/react/command-center/src/lumen/command-center.tsx +85 -0
  96. package/templates/react/commerce-dashboard/src/lumen/commerce-dashboard.tsx +148 -0
  97. package/templates/react/content-flow-actions/src/lumen/content-flow-actions.tsx +11 -0
  98. package/templates/react/content-flow-header/src/lumen/content-flow-header.tsx +14 -0
  99. package/templates/react/content-flow-list/src/lumen/content-flow-list.tsx +19 -0
  100. package/templates/react/content-flow-settings/src/lumen/content-flow-settings.tsx +26 -0
  101. package/templates/react/data-collections/src/lumen/data-collections.tsx +60 -0
  102. package/templates/react/feature-preview/src/lumen/feature-preview.tsx +42 -0
  103. package/templates/react/guided-onboarding/src/lumen/guided-onboarding.tsx +100 -0
  104. package/templates/react/import-review/src/lumen/import-review.tsx +150 -0
  105. package/templates/react/interactive-pricing/src/lumen/interactive-pricing.tsx +60 -0
  106. package/templates/react/media-workspace/src/lumen/adjustment-controls.tsx +61 -0
  107. package/templates/react/media-workspace/src/lumen/media-processing.tsx +43 -0
  108. package/templates/react/media-workspace/src/lumen/media-workspace.tsx +100 -0
  109. package/templates/react/operational-records/src/lumen/operational-records.tsx +92 -0
  110. package/templates/react/page-header/src/lumen/page-header.tsx +41 -0
  111. package/templates/react/project-workspace/src/lumen/project-workspace.tsx +112 -0
  112. package/templates/react/record-workspace/src/lumen/record-workspace.tsx +67 -0
  113. package/templates/react/review-workflow/src/lumen/review-workflow.tsx +202 -0
  114. package/templates/react/rich-text-editor/src/lumen/rich-text-editor.tsx +33 -0
  115. package/templates/react/saas-admin/src/lumen/saas-admin.tsx +119 -0
  116. package/templates/react/scheduler/src/lumen/scheduler.tsx +45 -0
  117. package/templates/react/section-header/src/lumen/section-header.tsx +33 -0
  118. package/templates/react/styles.d.ts +1 -0
  119. package/templates/react/theme-builder/src/lumen/theme-builder.tsx +57 -0
  120. package/templates/react/tsconfig.json +14 -0
  121. package/templates/react/validated-form/src/lumen/validated-form.tsx +166 -0
  122. package/templates/shared/common/src/lumen/lumen-template.css +247 -0
  123. package/templates/shared/media-workspace/src/lumen/media-workspace.css +14 -0
  124. package/templates/shared/visual-blocks/src/lumen/product-blocks.ts +224 -0
  125. package/v4-migration.json +447 -0
@@ -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;
@@ -310,7 +331,8 @@
310
331
  .ui-tree,
311
332
  .ui-tree-grid,
312
333
  .ui-typography,
313
- .ui-virtual-list
334
+ .ui-virtual-list,
335
+ .ui-world-map
314
336
  ) {
315
337
  box-sizing: border-box;
316
338
  font-family: var(--ui-font);
@@ -326,14 +348,15 @@
326
348
  .panel-card,
327
349
  .ui-card {
328
350
  position: relative;
329
- overflow: hidden;
330
- border: 1px solid hsl(var(--line));
351
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
331
352
  border-radius: var(--ui-radius-lg);
332
353
  background: hsl(var(--surface));
333
354
  box-shadow: var(--ui-shadow-sm);
334
355
  color: hsl(var(--ink));
335
356
  }
336
357
 
358
+ .ui-card { overflow: visible; overflow-wrap: anywhere; }
359
+
337
360
  .card-interactive,
338
361
  .ui-card--interactive {
339
362
  transition:
@@ -349,49 +372,33 @@
349
372
  transform: translateY(-1px);
350
373
  }
351
374
 
352
- .ui-card {
353
- --ui-card-gap: 1rem;
354
- --ui-card-padding: 1.25rem;
355
- --ui-card-section-gap: 0.375rem;
375
+ .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
376
 
357
- padding: var(--ui-card-padding);
358
- }
377
+ .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
378
 
360
- .ui-card__header {
361
- display: grid;
362
- gap: var(--ui-card-section-gap);
363
- }
379
+ .ui-card--spacious{--ui-card-gap:var(--ui-space-xl);--ui-card-padding:var(--ui-space-2xl);}
364
380
 
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
- }
381
+ .ui-card__header{display:grid;gap:var(--ui-card-section-gap);}
372
382
 
373
- .ui-card__description {
374
- color: hsl(var(--ink-muted));
375
- font-size: 0.875rem;
376
- line-height: 1.55;
377
- }
383
+ .ui-card__title{color:hsl(var(--ink));font-size:1.125rem;font-weight:700;letter-spacing:-0.015em;line-height:1.3;}
378
384
 
379
- .ui-card__content {
380
- color: hsl(var(--ink-soft));
381
- }
385
+ .ui-card__description{color:hsl(var(--ink-soft));font-size:0.875rem;line-height:1.55;}
382
386
 
383
- .ui-card__footer {
384
- align-items: center;
385
- display: flex;
386
- gap: 0.75rem;
387
- }
387
+ .ui-card__content{color:hsl(var(--ink-soft));}
388
388
 
389
- .ui-card > :where(
390
- .ui-card__content,
391
- .ui-card__footer
392
- ) {
393
- margin-block-start: var(--ui-card-gap);
394
- }
389
+ .ui-card__footer{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ui-space-related);}
390
+
391
+ .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;}
392
+
393
+ .ui-card__footer .ui-button__content,.ui-stack--wrap > .ui-button .ui-button__content{min-width:0;}
394
+
395
+ .ui-card >:where(*),.ui-card__header >:where(*),.ui-field >:where(*){min-width:0;margin:0;}
396
+
397
+ .ui-card__content >:where(:first-child){margin-block-start:0;}
398
+
399
+ .ui-card__content >:where(:last-child){margin-block-end:0;}
400
+
401
+ .ui-card >:where([hidden]:not([hidden="until-found"])),.ui-card >:where(.ui-card__header,.ui-card__content,.ui-card__footer):empty{display:none;}
395
402
 
396
403
  .ui-card--muted {
397
404
  background: hsl(var(--surface-muted) / 0.72);
@@ -420,6 +427,7 @@
420
427
  --ui-button-padding: 0.5rem 1rem;
421
428
  --ui-button-radius: var(--ui-radius-sm);
422
429
 
430
+ position: relative;
423
431
  display: inline-flex;
424
432
  min-height: var(--ui-button-min-height);
425
433
  align-items: center;
@@ -444,6 +452,23 @@
444
452
  user-select: none;
445
453
  }
446
454
 
455
+ .ui-button__content {
456
+ display: inline-flex;
457
+ align-items: center;
458
+ justify-content: center;
459
+ gap: inherit;
460
+ }
461
+
462
+ .ui-button--loading > .ui-button__content {
463
+ opacity: 0;
464
+ }
465
+
466
+ .ui-button--loading > .ui-spinner {
467
+ position: absolute;
468
+ inset: 0;
469
+ margin: auto;
470
+ }
471
+
447
472
  .ui-button:hover {
448
473
  transform: translateY(-1px);
449
474
  }
@@ -560,9 +585,15 @@
560
585
  padding: 0;
561
586
  }
562
587
 
588
+ .ui-prose :where(table:not(.ui-table)) { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
589
+
590
+ .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; }
591
+
592
+ .ui-prose :where(table:not(.ui-table) th) { color: hsl(var(--ink)); font-weight: 600; }
593
+
563
594
  .ui-alert,
564
595
  .ui-toast {
565
- border: 1px solid hsl(var(--line));
596
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
566
597
  border-radius: var(--ui-radius);
567
598
  background: hsl(var(--surface));
568
599
  color: hsl(var(--ink-soft));
@@ -642,14 +673,14 @@
642
673
  .ui-toast--success {
643
674
  border-color: hsl(var(--success) / 0.36);
644
675
  background: hsl(var(--success) / 0.08);
645
- color: hsl(var(--success));
676
+ color: hsl(var(--ink));
646
677
  }
647
678
 
648
679
  .ui-alert--warning,
649
680
  .ui-toast--warning {
650
681
  border-color: hsl(var(--warning) / 0.42);
651
682
  background: hsl(var(--warning) / 0.1);
652
- color: hsl(var(--warning));
683
+ color: hsl(var(--ink));
653
684
  }
654
685
 
655
686
  .ui-badge {
@@ -707,7 +738,7 @@
707
738
  .ui-input-otp {
708
739
  min-height: 2.75rem;
709
740
  width: 100%;
710
- border: 1px solid hsl(var(--line));
741
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
711
742
  border-radius: var(--ui-radius-sm);
712
743
  background: hsl(var(--surface));
713
744
  color: hsl(var(--ink));
@@ -779,7 +810,7 @@
779
810
  .ui-combobox,
780
811
  .ui-select-field {
781
812
  display: grid;
782
- gap: 0.45rem;
813
+ gap: var(--ui-space-related);
783
814
  }
784
815
 
785
816
  .ui-combobox,
@@ -846,7 +877,7 @@
846
877
  width: 100%;
847
878
  max-height: min(16rem, 50vh);
848
879
  overflow-y: auto;
849
- border: 1px solid hsl(var(--line));
880
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
850
881
  border-radius: var(--ui-radius);
851
882
  background: hsl(var(--surface));
852
883
  box-shadow: var(--ui-shadow-md);
@@ -904,7 +935,7 @@
904
935
  align-items: center;
905
936
  gap: 0.5rem;
906
937
  overflow: hidden;
907
- border: 1px solid hsl(var(--line));
938
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
908
939
  border-radius: var(--ui-radius-sm);
909
940
  background: hsl(var(--surface));
910
941
  color: hsl(var(--ink-soft));
@@ -942,7 +973,7 @@
942
973
  height: 1rem;
943
974
  margin: 0;
944
975
  appearance: none;
945
- border: 1px solid hsl(var(--line));
976
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
946
977
  border-radius: 0.25rem;
947
978
  background: hsl(var(--surface));
948
979
  cursor: pointer;
@@ -1014,7 +1045,7 @@
1014
1045
  .ui-sheet {
1015
1046
  width: min(100% - 2rem, 34rem);
1016
1047
  max-width: 34rem;
1017
- border: 1px solid hsl(var(--line));
1048
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1018
1049
  border-radius: var(--ui-radius-lg);
1019
1050
  background: hsl(var(--surface));
1020
1051
  color: hsl(var(--ink));
@@ -1072,6 +1103,64 @@
1072
1103
  gap: 0.5rem;
1073
1104
  }
1074
1105
 
1106
+ .ui-dialog:has(> [data-slot="dialog-body"]) {
1107
+ padding: 0;
1108
+ overflow: hidden;
1109
+ }
1110
+
1111
+ .ui-dialog[open]:has(> [data-slot="dialog-body"]),
1112
+ lumen-dialog.ui-dialog:not([hidden]):has(> [data-slot="dialog-body"]) {
1113
+ display: flex;
1114
+ flex-direction: column;
1115
+ }
1116
+
1117
+ .ui-dialog:has(> [data-slot="dialog-body"]) > * + * {
1118
+ margin-block-start: 0;
1119
+ }
1120
+
1121
+ .ui-dialog-header,
1122
+ .ui-dialog-footer {
1123
+ display: block;
1124
+ flex: none;
1125
+ padding: 1.25rem;
1126
+ }
1127
+
1128
+ .ui-dialog-header {
1129
+ border-block-end: var(--ui-border-width, 1px) solid hsl(var(--line));
1130
+ }
1131
+
1132
+ .ui-dialog-title {
1133
+ display: block;
1134
+ margin: 0;
1135
+ font-size: 1.125rem;
1136
+ font-weight: 600;
1137
+ line-height: 1.4;
1138
+ }
1139
+
1140
+ .ui-dialog-title > :is(h2, h3, h4) {
1141
+ margin: 0;
1142
+ font: inherit;
1143
+ }
1144
+
1145
+ .ui-dialog-body {
1146
+ display: block;
1147
+ flex: 1 1 auto;
1148
+ min-height: 0;
1149
+ padding: 1.25rem;
1150
+ overflow-y: auto;
1151
+ overscroll-behavior: contain;
1152
+ scroll-padding-block: 1.25rem;
1153
+ }
1154
+
1155
+ .ui-dialog-footer,
1156
+ .ui-dialog .ui-dialog-footer {
1157
+ display: flex;
1158
+ flex-wrap: wrap;
1159
+ justify-content: flex-end;
1160
+ gap: 0.5rem;
1161
+ border-block-start: var(--ui-border-width, 1px) solid hsl(var(--line));
1162
+ }
1163
+
1075
1164
  .ui-alert-dialog {
1076
1165
  max-width: 28rem;
1077
1166
  }
@@ -1119,7 +1208,7 @@
1119
1208
  display: inline-flex;
1120
1209
  align-items: center;
1121
1210
  gap: 0.25rem;
1122
- border: 1px solid hsl(var(--line));
1211
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1123
1212
  border-radius: var(--ui-radius);
1124
1213
  background: hsl(var(--surface));
1125
1214
  padding: 0.25rem;
@@ -1127,10 +1216,13 @@
1127
1216
 
1128
1217
  .ui-tabs {
1129
1218
  display: grid;
1219
+ min-width: 0;
1130
1220
  gap: 1rem;
1131
1221
  }
1132
1222
 
1133
1223
  .ui-tabs [role="tablist"] {
1224
+ box-sizing: border-box;
1225
+ min-width: 0;
1134
1226
  display: inline-flex;
1135
1227
  width: fit-content;
1136
1228
  max-width: 100%;
@@ -1138,7 +1230,7 @@
1138
1230
  gap: 0.25rem;
1139
1231
  overflow-x: auto;
1140
1232
  overscroll-behavior-inline: contain;
1141
- border: 1px solid hsl(var(--line));
1233
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1142
1234
  border-radius: var(--ui-radius);
1143
1235
  background: hsl(var(--surface-muted));
1144
1236
  padding: 0.25rem;
@@ -1178,7 +1270,7 @@
1178
1270
 
1179
1271
  width: 100%;
1180
1272
  overflow-x: auto;
1181
- border: 1px solid hsl(var(--line));
1273
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1182
1274
  border-radius: var(--ui-radius);
1183
1275
  background: hsl(var(--surface));
1184
1276
  }
@@ -1211,6 +1303,15 @@
1211
1303
  white-space: nowrap;
1212
1304
  }
1213
1305
 
1306
+ .ui-table-wrap--records thead:focus-within {
1307
+ position: static;
1308
+ width: auto;
1309
+ height: auto;
1310
+ overflow: visible;
1311
+ clip-path: none;
1312
+ white-space: normal;
1313
+ }
1314
+
1214
1315
  .ui-table-wrap--records tbody tr {
1215
1316
  display: grid;
1216
1317
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
@@ -1219,7 +1320,7 @@
1219
1320
  }
1220
1321
 
1221
1322
  .ui-table-wrap--records tbody tr + tr {
1222
- border-top: 1px solid hsl(var(--line));
1323
+ border-top: var(--ui-border-width, 1px) solid hsl(var(--line));
1223
1324
  }
1224
1325
 
1225
1326
  .ui-table-wrap--records tbody td {
@@ -1245,9 +1346,24 @@
1245
1346
  }
1246
1347
  }
1247
1348
 
1349
+ .ui-data-table__sort-controls,
1350
+ .ui-filter-bar__controls,
1351
+ .ui-filter-bar__active {
1352
+ display: flex;
1353
+ flex-wrap: wrap;
1354
+ align-items: end;
1355
+ gap: var(--ui-space-related, 0.75rem);
1356
+ }
1357
+
1358
+ .ui-data-table__sort-controls .ui-field,
1359
+ .ui-filter-bar__controls > * {
1360
+ flex: 1 1 12rem;
1361
+ min-width: 0;
1362
+ }
1363
+
1248
1364
  .ui-table-wrap th,
1249
1365
  .ui-data-table th {
1250
- border-bottom: 1px solid hsl(var(--line));
1366
+ border-bottom: var(--ui-border-width, 1px) solid hsl(var(--line));
1251
1367
  color: hsl(var(--ink));
1252
1368
  font-weight: 650;
1253
1369
  padding: var(--ui-table-cell-padding);
@@ -1347,7 +1463,7 @@
1347
1463
  }
1348
1464
 
1349
1465
  .ui-calendar {
1350
- border: 1px solid hsl(var(--line));
1466
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1351
1467
  border-radius: var(--ui-radius-lg);
1352
1468
  background: hsl(var(--surface));
1353
1469
  box-shadow: var(--ui-shadow-sm);
@@ -1375,7 +1491,7 @@
1375
1491
  width: 2rem;
1376
1492
  height: 2rem;
1377
1493
  place-items: center;
1378
- border: 1px solid hsl(var(--line));
1494
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1379
1495
  border-radius: var(--ui-radius-sm);
1380
1496
  background: hsl(var(--surface));
1381
1497
  color: hsl(var(--ink-soft));
@@ -1457,7 +1573,9 @@
1457
1573
  .ui-input-otp-field {
1458
1574
  position: relative;
1459
1575
  display: inline-grid;
1460
- width: min(100%, max-content);
1576
+ width: fit-content;
1577
+ max-width: 100%;
1578
+ min-width: 0;
1461
1579
  }
1462
1580
 
1463
1581
  .ui-input-otp {
@@ -1477,9 +1595,11 @@
1477
1595
  }
1478
1596
 
1479
1597
  .ui-input-otp__segments {
1480
- display: flex;
1481
- flex-wrap: wrap;
1482
- gap: 0.45rem;
1598
+ display: grid;
1599
+ grid-auto-flow: column;
1600
+ grid-auto-columns: minmax(0, 2.5rem);
1601
+ gap: clamp(0.25rem, 1vw, 0.45rem);
1602
+ min-width: 0;
1483
1603
  }
1484
1604
 
1485
1605
  .ui-input-otp__segments[hidden] {
@@ -1488,10 +1608,11 @@
1488
1608
 
1489
1609
  .ui-input-otp__segment {
1490
1610
  display: inline-grid;
1491
- width: 2.5rem;
1611
+ width: 100%;
1612
+ min-width: 0;
1492
1613
  min-height: 2.75rem;
1493
1614
  place-items: center;
1494
- border: 1px solid hsl(var(--line));
1615
+ border: var(--ui-border-width, 1px) solid hsl(var(--line));
1495
1616
  border-radius: var(--ui-radius-sm);
1496
1617
  background: hsl(var(--surface));
1497
1618
  color: hsl(var(--ink));
@@ -1519,6 +1640,19 @@
1519
1640
  box-shadow: 0 0 0 3px hsl(var(--danger) / 0.14);
1520
1641
  }
1521
1642
 
1643
+ .ui-chart__actions .ui-button {
1644
+ height: auto;
1645
+ min-height: 44px;
1646
+ max-width: 100%;
1647
+ white-space: normal;
1648
+ text-align: start;
1649
+ }
1650
+
1651
+ .ui-chart__actions .ui-button__content {
1652
+ min-width: 0;
1653
+ overflow-wrap: anywhere;
1654
+ }
1655
+
1522
1656
  .ui-tvp > .ui-toast {
1523
1657
  pointer-events: auto;
1524
1658
  }
@@ -2107,3 +2241,442 @@
2107
2241
  font-size: 0.6875rem;
2108
2242
  }
2109
2243
  }
2244
+
2245
+ @layer lumen.components {
2246
+ .ui-range-calendar__presets .ui-button {
2247
+ justify-content: start;
2248
+ min-height: 2.75rem;
2249
+ padding-inline: .75rem;
2250
+ font-size: inherit;
2251
+ font-weight: 500;
2252
+ white-space: normal;
2253
+ text-align: start;
2254
+ }
2255
+
2256
+ .ui-range-calendar .ui-calendar { width: 100%; max-width: none; border: 0; padding: 0; box-shadow: none; background: transparent; }
2257
+
2258
+ .ui-range-calendar .ui-calendar__header { margin-bottom: .5rem; }
2259
+
2260
+ .ui-range-calendar .ui-calendar__header strong { font-size: .8125rem; font-weight: 650; }
2261
+
2262
+ .ui-range-calendar .ui-calendar__header button { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; }
2263
+
2264
+ .ui-range-calendar .ui-calendar__grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0 .25rem; }
2265
+
2266
+ .ui-range-calendar .ui-calendar__grid th { height: 2rem; font-size: .6875rem; font-weight: 500; }
2267
+
2268
+ .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; }
2269
+
2270
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"] { background: hsl(var(--brand-soft)); color: hsl(var(--ink)); box-shadow: none; }
2271
+
2272
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"]:first-child { border-start-start-radius: .375rem; border-end-start-radius: .375rem; }
2273
+
2274
+ .ui-range-calendar .ui-calendar__grid td[data-in-range="true"]:last-child { border-start-end-radius: .375rem; border-end-end-radius: .375rem; }
2275
+
2276
+ .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; }
2277
+
2278
+ @media (max-width: 640px) {
2279
+ .ui-range-calendar__presets .ui-button { flex-shrink: 0; white-space: nowrap; }
2280
+
2281
+ .ui-range-calendar .ui-calendar__grid td { height: 2.75rem; }
2282
+
2283
+ .ui-range-calendar .ui-calendar__header button { width: 2.75rem; height: 2.75rem; }
2284
+ }
2285
+ }
2286
+
2287
+ @layer lumen.components {
2288
+ .ui-range-input > .ui-button {
2289
+ width: 100%;
2290
+ min-height: 44px;
2291
+ justify-content: space-between;
2292
+ gap: .75rem;
2293
+ padding-inline: .875rem;
2294
+ font-size: .8125rem;
2295
+ font-weight: 500;
2296
+ color: hsl(var(--ink));
2297
+ }
2298
+
2299
+ .ui-range-input > .ui-button[aria-expanded="true"] {
2300
+ border-color: hsl(var(--brand));
2301
+ box-shadow: 0 0 0 2px hsl(var(--brand) / .12);
2302
+ }
2303
+
2304
+ .ui-range-input > .ui-button > .ui-button__content { width: 100%; min-width: 0; justify-content: space-between; }
2305
+
2306
+ .ui-range-input > .ui-button .ui-icon { flex-shrink: 0; color: hsl(var(--ink-muted)); }
2307
+
2308
+ .ui-range-input__panel .ui-range-input__actions .ui-button { min-height: 44px; font-size: .8125rem; }
2309
+
2310
+ @media (max-width: 640px) {
2311
+ .ui-range-input__actions .ui-button { flex: 1; }
2312
+ }
2313
+ }
2314
+
2315
+ @layer lumen.components {
2316
+ .ui-range-calendar .ui-calendar__grid th,
2317
+ .ui-range-calendar .ui-calendar__grid td[data-outside="true"]:not([data-in-range="true"]) {
2318
+ color: hsl(var(--ink-soft));
2319
+ }
2320
+ }
2321
+
2322
+ @layer lumen.tokens {
2323
+ [data-lumen-preset="default"],
2324
+ [data-lumen-preset="default"][data-lumen-scheme="light"] {
2325
+ color-scheme: light;
2326
+ --canvas: 210 24% 98%;
2327
+ --surface: 0 0% 100%;
2328
+ --surface-muted: 210 22% 95%;
2329
+ --surface-strong: 213 18% 88%;
2330
+ --line: 214 17% 84%;
2331
+ --ink: 216 28% 12%;
2332
+ --ink-soft: 215 14% 35%;
2333
+ --ink-muted: 215 10% 50%;
2334
+ --brand: 201 96% 32%;
2335
+ --brand-solid: 201 96% 28%;
2336
+ --brand-soft: 198 64% 92%;
2337
+ --on-brand: 0 0% 100%;
2338
+ --accent: 169 78% 33%;
2339
+ --success: 142 76% 36%;
2340
+ --warning: 38 92% 50%;
2341
+ --danger: 0 84% 60%;
2342
+ --on-danger: 0 0% 0%;
2343
+ --ui-space-zero: 0rem;
2344
+ --ui-space-xs: 0.25rem;
2345
+ --ui-space-sm: 0.5rem;
2346
+ --ui-space-md: 0.75rem;
2347
+ --ui-space-lg: 1rem;
2348
+ --ui-space-xl: 1.5rem;
2349
+ --ui-space-2xl: 2rem;
2350
+ --ui-space-3xl: 3rem;
2351
+ --ui-radius-sm: 0.375rem;
2352
+ --ui-radius: 0.625rem;
2353
+ --ui-radius-lg: 0.75rem;
2354
+ --ui-border-width: 1px;
2355
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2356
+ --ui-shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.06);
2357
+ --ui-shadow-md: 0 8px 24px hsl(222 47% 11% / 0.08);
2358
+ --ui-shadow-lg: 0 24px 64px hsl(222 47% 11% / 0.14);
2359
+ --glass-bg: 0 0% 100% / 0.55;
2360
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2361
+ --glass-bg-strong: 0 0% 100% / 0.72;
2362
+ --glass-border: 220 30% 100% / 0.55;
2363
+ --glass-highlight: 0 0% 100% / 0.85;
2364
+ --glass-blur: 22px;
2365
+ --glass-saturate: 1.7;
2366
+ --glass-brightness: 1.05;
2367
+ --glass-edge: 0 0% 100% / 0.9;
2368
+ --glass-edge-soft: 0 0% 100% / 0.34;
2369
+ --glass-shade: 222 47% 11% / 0.07;
2370
+ --glass-refraction: 201 96% 32% / 0.08;
2371
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2372
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2373
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2374
+ }
2375
+
2376
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="default"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2377
+ [data-lumen-preset="default"][data-lumen-scheme="dark"],
2378
+ [data-lumen-preset="default"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2379
+ [data-lumen-preset="default"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2380
+ color-scheme: dark;
2381
+ --canvas: 224 24% 8%;
2382
+ --surface: 224 18% 11%;
2383
+ --surface-muted: 223 16% 15%;
2384
+ --surface-strong: 222 14% 22%;
2385
+ --line: 222 14% 26%;
2386
+ --ink: 210 20% 96%;
2387
+ --ink-soft: 214 14% 77%;
2388
+ --ink-muted: 216 10% 62%;
2389
+ --brand: 199 91% 56%;
2390
+ --brand-solid: 199 91% 36%;
2391
+ --brand-soft: 199 84% 16%;
2392
+ --on-brand: 0 0% 100%;
2393
+ --accent: 166 76% 43%;
2394
+ --success: 142 69% 45%;
2395
+ --warning: 38 92% 55%;
2396
+ --danger: 0 84% 65%;
2397
+ --on-danger: 224 24% 8%;
2398
+ --ui-space-zero: 0rem;
2399
+ --ui-space-xs: 0.25rem;
2400
+ --ui-space-sm: 0.5rem;
2401
+ --ui-space-md: 0.75rem;
2402
+ --ui-space-lg: 1rem;
2403
+ --ui-space-xl: 1.5rem;
2404
+ --ui-space-2xl: 2rem;
2405
+ --ui-space-3xl: 3rem;
2406
+ --ui-radius-sm: 0.375rem;
2407
+ --ui-radius: 0.625rem;
2408
+ --ui-radius-lg: 0.75rem;
2409
+ --ui-border-width: 1px;
2410
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2411
+ --ui-shadow-sm: 0 1px 2px hsl(0 0% 0% / 0.18);
2412
+ --ui-shadow-md: 0 12px 32px hsl(0 0% 0% / 0.24);
2413
+ --ui-shadow-lg: 0 28px 80px hsl(0 0% 0% / 0.36);
2414
+ --glass-bg: 224 20% 13% / 0.78;
2415
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2416
+ --glass-bg-strong: 224 20% 13% / 0.9;
2417
+ --glass-border: 210 30% 92% / 0.24;
2418
+ --glass-highlight: 210 30% 96% / 0.1;
2419
+ --glass-brightness: 1;
2420
+ --glass-edge: 210 40% 98% / 0.24;
2421
+ --glass-edge-soft: 210 40% 98% / 0.08;
2422
+ --glass-shade: 240 40% 3% / 0.3;
2423
+ --glass-refraction: 199 91% 56% / 0.1;
2424
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2425
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2426
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2427
+ }
2428
+
2429
+ [data-lumen-preset="studio"],
2430
+ [data-lumen-preset="studio"][data-lumen-scheme="light"] {
2431
+ color-scheme: light;
2432
+ --canvas: 0 0% 100%;
2433
+ --surface: 0 0% 100%;
2434
+ --surface-muted: 0 0% 96%;
2435
+ --surface-strong: 0 0% 91%;
2436
+ --line: 0 0% 90%;
2437
+ --ink: 0 0% 9%;
2438
+ --ink-soft: 0 0% 32%;
2439
+ --ink-muted: 0 0% 45%;
2440
+ --brand: 0 0% 9%;
2441
+ --brand-solid: 0 0% 9%;
2442
+ --brand-soft: 0 0% 92%;
2443
+ --on-brand: 0 0% 100%;
2444
+ --accent: 0 0% 9%;
2445
+ --success: 142 76% 36%;
2446
+ --warning: 38 92% 50%;
2447
+ --danger: 0 84% 60%;
2448
+ --on-danger: 0 0% 0%;
2449
+ --ui-space-zero: 0rem;
2450
+ --ui-space-xs: 0.25rem;
2451
+ --ui-space-sm: 0.5rem;
2452
+ --ui-space-md: 0.75rem;
2453
+ --ui-space-lg: 1rem;
2454
+ --ui-space-xl: 1.5rem;
2455
+ --ui-space-2xl: 2rem;
2456
+ --ui-space-3xl: 3rem;
2457
+ --ui-radius-sm: 0.22499999999999998rem;
2458
+ --ui-radius: 0.375rem;
2459
+ --ui-radius-lg: 0.44999999999999996rem;
2460
+ --ui-border-width: 1px;
2461
+ --ui-font: system-ui, "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
2462
+ --ui-shadow-sm: none;
2463
+ --ui-shadow-md: none;
2464
+ --ui-shadow-lg: none;
2465
+ --glass-bg: 0 0% 100% / 0.55;
2466
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2467
+ --glass-bg-strong: 0 0% 100% / 0.72;
2468
+ --glass-border: 220 30% 100% / 0.55;
2469
+ --glass-highlight: 0 0% 100% / 0.85;
2470
+ --glass-blur: 22px;
2471
+ --glass-saturate: 1.7;
2472
+ --glass-brightness: 1.05;
2473
+ --glass-edge: 0 0% 100% / 0.9;
2474
+ --glass-edge-soft: 0 0% 100% / 0.34;
2475
+ --glass-shade: 222 47% 11% / 0.07;
2476
+ --glass-refraction: 0 0% 50% / 0.04;
2477
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2478
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2479
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2480
+ }
2481
+
2482
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="studio"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2483
+ [data-lumen-preset="studio"][data-lumen-scheme="dark"],
2484
+ [data-lumen-preset="studio"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2485
+ [data-lumen-preset="studio"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2486
+ color-scheme: dark;
2487
+ --canvas: 0 0% 7%;
2488
+ --surface: 0 0% 7%;
2489
+ --surface-muted: 0 0% 11%;
2490
+ --surface-strong: 0 0% 19%;
2491
+ --line: 0 0% 22%;
2492
+ --ink: 0 0% 96%;
2493
+ --ink-soft: 0 0% 80%;
2494
+ --ink-muted: 0 0% 64%;
2495
+ --brand: 0 0% 96%;
2496
+ --brand-solid: 0 0% 96%;
2497
+ --brand-soft: 0 0% 14%;
2498
+ --on-brand: 0 0% 7%;
2499
+ --accent: 0 0% 96%;
2500
+ --success: 142 69% 45%;
2501
+ --warning: 38 92% 55%;
2502
+ --danger: 0 84% 65%;
2503
+ --on-danger: 224 24% 8%;
2504
+ --ui-space-zero: 0rem;
2505
+ --ui-space-xs: 0.25rem;
2506
+ --ui-space-sm: 0.5rem;
2507
+ --ui-space-md: 0.75rem;
2508
+ --ui-space-lg: 1rem;
2509
+ --ui-space-xl: 1.5rem;
2510
+ --ui-space-2xl: 2rem;
2511
+ --ui-space-3xl: 3rem;
2512
+ --ui-radius-sm: 0.22499999999999998rem;
2513
+ --ui-radius: 0.375rem;
2514
+ --ui-radius-lg: 0.44999999999999996rem;
2515
+ --ui-border-width: 1px;
2516
+ --ui-font: system-ui, "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
2517
+ --ui-shadow-sm: none;
2518
+ --ui-shadow-md: none;
2519
+ --ui-shadow-lg: none;
2520
+ --glass-bg: 224 20% 13% / 0.78;
2521
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2522
+ --glass-bg-strong: 224 20% 13% / 0.9;
2523
+ --glass-border: 210 30% 92% / 0.24;
2524
+ --glass-highlight: 210 30% 96% / 0.1;
2525
+ --glass-brightness: 1;
2526
+ --glass-edge: 210 40% 98% / 0.24;
2527
+ --glass-edge-soft: 210 40% 98% / 0.08;
2528
+ --glass-shade: 240 40% 3% / 0.3;
2529
+ --glass-refraction: 0 0% 50% / 0.04;
2530
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2531
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2532
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2533
+ }
2534
+
2535
+ [data-lumen-preset="glass"],
2536
+ [data-lumen-preset="glass"][data-lumen-scheme="light"] {
2537
+ color-scheme: light;
2538
+ --canvas: 210 24% 98%;
2539
+ --surface: 0 0% 100%;
2540
+ --surface-muted: 210 22% 95%;
2541
+ --surface-strong: 213 18% 88%;
2542
+ --line: 214 17% 84%;
2543
+ --ink: 216 28% 12%;
2544
+ --ink-soft: 215 14% 35%;
2545
+ --ink-muted: 215 10% 50%;
2546
+ --brand: 201 96% 32%;
2547
+ --brand-solid: 201 96% 28%;
2548
+ --brand-soft: 198 64% 92%;
2549
+ --on-brand: 0 0% 100%;
2550
+ --accent: 169 78% 33%;
2551
+ --success: 142 76% 36%;
2552
+ --warning: 38 92% 50%;
2553
+ --danger: 0 84% 60%;
2554
+ --on-danger: 0 0% 0%;
2555
+ --ui-space-zero: 0rem;
2556
+ --ui-space-xs: 0.25rem;
2557
+ --ui-space-sm: 0.5rem;
2558
+ --ui-space-md: 0.75rem;
2559
+ --ui-space-lg: 1rem;
2560
+ --ui-space-xl: 1.5rem;
2561
+ --ui-space-2xl: 2rem;
2562
+ --ui-space-3xl: 3rem;
2563
+ --ui-radius-sm: 0.5249999999999999rem;
2564
+ --ui-radius: 0.875rem;
2565
+ --ui-radius-lg: 1.0499999999999998rem;
2566
+ --ui-border-width: 1px;
2567
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2568
+ --ui-shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.06);
2569
+ --ui-shadow-md: 0 8px 24px hsl(222 47% 11% / 0.08);
2570
+ --ui-shadow-lg: 0 24px 64px hsl(222 47% 11% / 0.14);
2571
+ --glass-bg: 0 0% 100% / 0.55;
2572
+ --glass-bg-subtle: 0 0% 100% / 0.38;
2573
+ --glass-bg-strong: 0 0% 100% / 0.72;
2574
+ --glass-border: 220 30% 100% / 0.55;
2575
+ --glass-highlight: 0 0% 100% / 0.85;
2576
+ --glass-blur: 22px;
2577
+ --glass-saturate: 1.7;
2578
+ --glass-brightness: 1.05;
2579
+ --glass-edge: 0 0% 100% / 0.9;
2580
+ --glass-edge-soft: 0 0% 100% / 0.34;
2581
+ --glass-shade: 222 47% 11% / 0.07;
2582
+ --glass-refraction: 201 96% 32% / 0.08;
2583
+ --glass-shadow: 0 1px 2px hsl(222 47% 11% / 0.08),
2584
+ 0 12px 32px hsl(222 47% 11% / 0.12),
2585
+ 0 32px 80px hsl(222 47% 11% / 0.14);
2586
+ }
2587
+
2588
+ :where([data-theme="dark"], [data-theme="lumen-dark"]) [data-lumen-preset="glass"]:not([data-lumen-scheme="light"], [data-theme="light"], [data-theme="lumen-light"]),
2589
+ [data-lumen-preset="glass"][data-lumen-scheme="dark"],
2590
+ [data-lumen-preset="glass"][data-theme="dark"]:not([data-lumen-scheme="light"]),
2591
+ [data-lumen-preset="glass"][data-theme="lumen-dark"]:not([data-lumen-scheme="light"]) {
2592
+ color-scheme: dark;
2593
+ --canvas: 224 24% 8%;
2594
+ --surface: 224 18% 11%;
2595
+ --surface-muted: 223 16% 15%;
2596
+ --surface-strong: 222 14% 22%;
2597
+ --line: 222 14% 26%;
2598
+ --ink: 210 20% 96%;
2599
+ --ink-soft: 214 14% 77%;
2600
+ --ink-muted: 216 10% 62%;
2601
+ --brand: 199 91% 56%;
2602
+ --brand-solid: 199 91% 36%;
2603
+ --brand-soft: 199 84% 16%;
2604
+ --on-brand: 0 0% 100%;
2605
+ --accent: 166 76% 43%;
2606
+ --success: 142 69% 45%;
2607
+ --warning: 38 92% 55%;
2608
+ --danger: 0 84% 65%;
2609
+ --on-danger: 224 24% 8%;
2610
+ --ui-space-zero: 0rem;
2611
+ --ui-space-xs: 0.25rem;
2612
+ --ui-space-sm: 0.5rem;
2613
+ --ui-space-md: 0.75rem;
2614
+ --ui-space-lg: 1rem;
2615
+ --ui-space-xl: 1.5rem;
2616
+ --ui-space-2xl: 2rem;
2617
+ --ui-space-3xl: 3rem;
2618
+ --ui-radius-sm: 0.5249999999999999rem;
2619
+ --ui-radius: 0.875rem;
2620
+ --ui-radius-lg: 1.0499999999999998rem;
2621
+ --ui-border-width: 1px;
2622
+ --ui-font: "Montserrat", "Avenir Next", "Segoe UI", sans-serif;
2623
+ --ui-shadow-sm: 0 1px 2px hsl(0 0% 0% / 0.18);
2624
+ --ui-shadow-md: 0 12px 32px hsl(0 0% 0% / 0.24);
2625
+ --ui-shadow-lg: 0 28px 80px hsl(0 0% 0% / 0.36);
2626
+ --glass-bg: 224 20% 13% / 0.78;
2627
+ --glass-bg-subtle: 224 20% 13% / 0.64;
2628
+ --glass-bg-strong: 224 20% 13% / 0.9;
2629
+ --glass-border: 210 30% 92% / 0.24;
2630
+ --glass-highlight: 210 30% 96% / 0.1;
2631
+ --glass-brightness: 1;
2632
+ --glass-edge: 210 40% 98% / 0.24;
2633
+ --glass-edge-soft: 210 40% 98% / 0.08;
2634
+ --glass-shade: 240 40% 3% / 0.3;
2635
+ --glass-refraction: 199 91% 56% / 0.1;
2636
+ --glass-shadow: 0 1px 2px hsl(0 0% 0% / 0.3),
2637
+ 0 16px 40px hsl(0 0% 0% / 0.34),
2638
+ 0 40px 96px hsl(0 0% 0% / 0.38);
2639
+ }
2640
+ }
2641
+
2642
+ @layer lumen.components {
2643
+ .ui-calendar-heatmap__range { color: hsl(var(--ink-soft)); font-size: .875rem; margin: 0; }
2644
+
2645
+ .ui-calendar-heatmap__plot { overflow-x: auto; max-width: 100%; padding: .5rem 0; }
2646
+
2647
+ .ui-calendar-heatmap__plot svg { display: block; width: auto; max-width: none; min-width: 240px; }
2648
+
2649
+ .ui-calendar-heatmap__weekday { fill: hsl(var(--chart-axis)); font-size: 11px; }
2650
+
2651
+ .ui-calendar-heatmap__cell { fill: hsl(var(--chart-series-1)); }
2652
+
2653
+ .ui-calendar-heatmap__cell[data-missing] { fill: hsl(var(--surface-muted)); stroke: hsl(var(--line)); }
2654
+
2655
+ .ui-calendar-heatmap__missing { fill: hsl(var(--ink-muted)); font-size: 12px; }
2656
+
2657
+ .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; }
2658
+
2659
+ .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))); }
2660
+
2661
+ :is(.ui-calendar-heatmap, .ui-funnel-chart, .ui-box-plot) [tabindex="0"]:focus-visible { outline: 2px solid hsl(var(--brand)); outline-offset: 2px; }
2662
+
2663
+ @media (forced-colors: active) {
2664
+ .ui-calendar-heatmap__cell { fill: Highlight; stroke: CanvasText; }
2665
+
2666
+ .ui-calendar-heatmap__cell[data-missing] { fill: Canvas; }
2667
+
2668
+ .ui-calendar-heatmap__missing, .ui-calendar-heatmap__weekday { fill: CanvasText; }
2669
+ }
2670
+ }
2671
+
2672
+ @layer lumen.components {
2673
+ .ui-tabs__moving-indicator { position: absolute; left: 0; bottom: 0; height: 2px; background: hsl(var(--brand)); pointer-events: none; }
2674
+
2675
+ @media (prefers-reduced-motion: reduce) {
2676
+ .ui-tabs__moving-indicator { transition: none !important; }
2677
+ }
2678
+
2679
+ [data-ui-motion="reduce"] .ui-tabs__moving-indicator { transition: none !important; }
2680
+ }
2681
+
2682
+ .ui-media-thumbnail .ui-button__content { display: grid; min-width: 0; width: 100%; gap: var(--ui-space-xs); }