@godxjp/ui 28.13.0 → 30.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 (164) hide show
  1. package/agent/START-HERE.md +29 -10
  2. package/agent/components/Anchor.json +6 -1
  3. package/agent/components/AppShell.json +1 -1
  4. package/agent/components/AreaChart.json +19 -1
  5. package/agent/components/BarChart.json +11 -1
  6. package/agent/components/Cascader.json +1 -1
  7. package/agent/components/CompactBarTrend.json +1 -1
  8. package/agent/components/DataState.json +1 -1
  9. package/agent/components/DataTable.json +4 -4
  10. package/agent/components/FormField.json +1 -1
  11. package/agent/components/InfiniteQueryState.json +1 -1
  12. package/agent/components/Input.json +1 -1
  13. package/agent/components/LineChart.json +20 -2
  14. package/agent/components/ListRow.json +1 -1
  15. package/agent/components/Masonry.json +1 -1
  16. package/agent/components/MasterDetail.json +1 -1
  17. package/agent/components/PasswordStrength.json +1 -1
  18. package/agent/components/PermissionMatrix.json +1 -1
  19. package/agent/components/Select.json +1 -0
  20. package/agent/components/Sidebar.json +1 -1
  21. package/agent/components/Table.json +8 -3
  22. package/agent/components/ThemeScope.json +49 -0
  23. package/agent/components/Topbar.json +1 -0
  24. package/agent/components/TopbarItem.json +2 -1
  25. package/agent/components/Transfer.json +1 -1
  26. package/agent/components/TreeSelect.json +1 -1
  27. package/agent/components/UploadCropDialog.json +1 -1
  28. package/agent/components/formatDate.json +1 -1
  29. package/agent/components-index.json +5 -0
  30. package/agent/components.json +138 -30
  31. package/agent/index.json +19 -9
  32. package/agent/llms.txt +10 -10
  33. package/agent/patterns/tenant-brand-color.json +28 -0
  34. package/agent/patterns-index.json +27 -0
  35. package/agent/patterns.json +28 -0
  36. package/agent/rules.json +15 -0
  37. package/agent/tokens.json +5055 -1060
  38. package/dist/app/index.d.ts +3 -0
  39. package/dist/app/index.js +3 -0
  40. package/dist/app/tenant-theme.d.ts +80 -0
  41. package/dist/app/tenant-theme.js +154 -0
  42. package/dist/app/theme-axes.d.ts +14 -1
  43. package/dist/app/theme-axes.js +24 -31
  44. package/dist/components/charts/chart-cartesian.d.ts +5 -1
  45. package/dist/components/charts/chart-cartesian.js +15 -8
  46. package/dist/components/data-display/badge.d.ts +1 -1
  47. package/dist/components/data-display/badge.js +21 -3
  48. package/dist/components/data-display/carousel.js +4 -4
  49. package/dist/components/data-display/data-table.js +13 -2
  50. package/dist/components/data-display/permission-matrix.js +1 -1
  51. package/dist/components/data-display/table.d.ts +11 -2
  52. package/dist/components/data-display/table.js +19 -3
  53. package/dist/components/data-entry/control-appearance.d.ts +12 -6
  54. package/dist/components/data-entry/control-appearance.js +1 -1
  55. package/dist/components/data-entry/select.js +4 -3
  56. package/dist/components/feedback/dialog.js +6 -3
  57. package/dist/components/feedback/overlay-header-tone.d.ts +7 -0
  58. package/dist/components/feedback/overlay-header-tone.js +4 -4
  59. package/dist/components/feedback/sheet.d.ts +1 -1
  60. package/dist/components/feedback/sheet.js +6 -9
  61. package/dist/components/feedback/sonner.js +16 -3
  62. package/dist/components/general/button.js +22 -5
  63. package/dist/components/layout/affix.js +15 -1
  64. package/dist/components/layout/sidebar.js +7 -1
  65. package/dist/components/navigation/anchor.d.ts +1 -1
  66. package/dist/components/navigation/anchor.js +5 -4
  67. package/dist/components/navigation/app-setting-picker.js +1 -1
  68. package/dist/components/navigation/pagination.js +1 -1
  69. package/dist/components/navigation/tabs.js +15 -2
  70. package/dist/components/query/infinite-query-state.d.ts +22 -6
  71. package/dist/contracts/measurement.json +1 -1
  72. package/dist/lib/control-styles.d.ts +31 -11
  73. package/dist/lib/control-styles.js +6 -6
  74. package/dist/lib/overlay-portal.d.ts +20 -0
  75. package/dist/lib/overlay-portal.js +93 -0
  76. package/dist/props/components/app.prop.d.ts +12 -0
  77. package/dist/props/components/charts.prop.d.ts +30 -0
  78. package/dist/props/components/index.d.ts +1 -1
  79. package/dist/props/components/navigation.prop.d.ts +21 -2
  80. package/dist/props/components/query.prop.d.ts +36 -2
  81. package/dist/props/registry.d.ts +46 -1
  82. package/dist/props/registry.js +38 -3
  83. package/dist/styles/alert-layout.css +39 -19
  84. package/dist/styles/badge-layout.css +11 -7
  85. package/dist/styles/base.css +14 -5
  86. package/dist/styles/card-layout.css +29 -16
  87. package/dist/styles/chart-layout.css +27 -5
  88. package/dist/styles/control.css +225 -103
  89. package/dist/styles/data-display-layout.css +178 -76
  90. package/dist/styles/data-entry-layout.css +35 -99
  91. package/dist/styles/dialog-layout.css +58 -28
  92. package/dist/styles/float-button-layout.css +5 -5
  93. package/dist/styles/focus-ring.css +11 -7
  94. package/dist/styles/layout.css +53 -25
  95. package/dist/styles/logo-layout.css +3 -3
  96. package/dist/styles/motion.css +2 -2
  97. package/dist/styles/navigation-layout.css +117 -44
  98. package/dist/styles/shell-layout.css +90 -124
  99. package/dist/styles/table-layout.css +66 -24
  100. package/dist/styles/text-layout.css +13 -4
  101. package/dist/styles/toggle.css +9 -3
  102. package/dist/tokens/components/actions.css +1 -1
  103. package/dist/tokens/components/attachments.css +4 -4
  104. package/dist/tokens/components/badge.css +4 -4
  105. package/dist/tokens/components/banner.css +1 -1
  106. package/dist/tokens/components/callout.css +1 -1
  107. package/dist/tokens/components/card.css +13 -8
  108. package/dist/tokens/components/chart.css +11 -2
  109. package/dist/tokens/components/chat-bubble.css +2 -2
  110. package/dist/tokens/components/control.css +41 -22
  111. package/dist/tokens/components/conversations.css +2 -1
  112. package/dist/tokens/components/data-display.css +23 -18
  113. package/dist/tokens/components/data-entry.css +1 -1
  114. package/dist/tokens/components/descriptions.css +2 -2
  115. package/dist/tokens/components/draggable-panel.css +2 -2
  116. package/dist/tokens/components/feedback.css +29 -9
  117. package/dist/tokens/components/float-button.css +1 -1
  118. package/dist/tokens/components/legal-document.css +2 -2
  119. package/dist/tokens/components/logo.css +2 -2
  120. package/dist/tokens/components/mega-menu.css +6 -4
  121. package/dist/tokens/components/navigation.css +27 -13
  122. package/dist/tokens/components/segmented.css +11 -6
  123. package/dist/tokens/components/separator.css +1 -1
  124. package/dist/tokens/components/shell.css +24 -10
  125. package/dist/tokens/components/table.css +13 -5
  126. package/dist/tokens/components/thought-chain.css +2 -2
  127. package/dist/tokens/components/toggle.css +3 -1
  128. package/dist/tokens/components/tree.css +3 -1
  129. package/dist/tokens/components/upload.css +8 -8
  130. package/dist/tokens/components/welcome.css +1 -1
  131. package/dist/tokens/foundation.css +30 -3
  132. package/docs/COMPOSITION-VS-COMPONENT.md +31 -0
  133. package/docs/CUSTOMER-THEMING.md +637 -1
  134. package/docs/FRAME-COVERAGE-REPORT.md +3 -2
  135. package/docs/GLASSMORPHISM-STANDARD.md +196 -0
  136. package/docs/THEME-API-COVERAGE.md +538 -0
  137. package/docs/TOKEN-RESOLUTION.md +195 -0
  138. package/docs/TOKENS.md +63 -24
  139. package/docs/asset-modules.d.ts +7 -0
  140. package/docs/data-display/charts.tsx +80 -0
  141. package/docs/data-display/data-table/index.tsx +30 -0
  142. package/docs/data-display/popover.tsx +1 -1
  143. package/docs/data-display/table.tsx +52 -0
  144. package/docs/feedback/sheet.tsx +10 -10
  145. package/docs/foundation/density.tsx +4 -4
  146. package/docs/i18n/messages/en.json +506 -0
  147. package/docs/i18n/messages/ja.json +506 -0
  148. package/docs/i18n/messages/vi.json +506 -0
  149. package/docs/layout/account-chip.tsx +2 -2
  150. package/docs/layout/responsive-grid.tsx +1 -1
  151. package/docs/navigation/toolbar.tsx +20 -12
  152. package/docs/providers/theme-scope.tsx +186 -0
  153. package/docs/showcase/caimono-price-comparison.tsx +911 -0
  154. package/docs/showcase/case4-login.tsx +2 -2
  155. package/docs/showcase/permission-matrix.tsx +13 -5
  156. package/docs/showcase/table-pagination.tsx +2 -1
  157. package/docs/showcase/tenant-brand-color.tsx +338 -0
  158. package/docs/showcase/theme-lab.tsx +2125 -0
  159. package/docs/themes/flat.css +462 -0
  160. package/docs/themes/glassmorphism.css +958 -0
  161. package/docs/themes/index.ts +219 -0
  162. package/docs/themes/neubrutalism.css +475 -0
  163. package/package.json +4 -3
  164. package/scripts/explain-token.mjs +382 -0
@@ -11,7 +11,7 @@
11
11
  border-radius: var(--radius-pill);
12
12
  background:
13
13
  linear-gradient(var(--avatar-tint), var(--avatar-tint)),
14
- var(--avatar-background, hsl(var(--muted)));
14
+ var(--avatar-background, hsl(var(--muted) / var(--avatar-background-alpha, 100%)));
15
15
  color: hsl(var(--muted-foreground));
16
16
  font-size: var(--avatar-font-size);
17
17
  font-weight: var(--font-weight-medium);
@@ -20,14 +20,14 @@
20
20
  .ui-avatar[data-shape="square"] {
21
21
  inline-size: var(--avatar-square-size);
22
22
  block-size: var(--avatar-square-size);
23
- border-radius: var(--avatar-square-radius);
23
+ border-radius: var(--avatar-square-radius, var(--radius));
24
24
  --avatar-background: var(--avatar-square-background, hsl(var(--primary)));
25
25
  color: var(--avatar-square-foreground, hsl(var(--primary-foreground)));
26
26
  }
27
27
 
28
28
  .ui-avatar[data-appearance="tinted"] {
29
29
  --avatar-background: var(--avatar-tinted-background, hsl(var(--primary) / 0.1));
30
- color: var(--avatar-tinted-foreground, hsl(var(--primary)));
30
+ color: var(--avatar-tinted-foreground, hsl(var(--text-brand, var(--primary))));
31
31
  }
32
32
 
33
33
  .ui-avatar[data-appearance="tinted"] svg {
@@ -78,7 +78,7 @@
78
78
  height: 100%;
79
79
  align-items: center;
80
80
  justify-content: center;
81
- background: var(--avatar-background, hsl(var(--muted)));
81
+ background: var(--avatar-background, hsl(var(--muted) / var(--avatar-background-alpha, 100%)));
82
82
  }
83
83
 
84
84
  .ui-avatar[data-presence] {
@@ -101,11 +101,11 @@
101
101
  block-size: var(--avatar-presence-size);
102
102
  min-inline-size: var(--avatar-presence-min-size);
103
103
  min-block-size: var(--avatar-presence-min-size);
104
- border: var(--avatar-presence-stroke-width) solid transparent;
104
+ border: var(--avatar-presence-stroke-width, var(--stroke-sm)) solid transparent;
105
105
  border-radius: var(--radius-pill);
106
106
  background-origin: border-box;
107
107
 
108
- box-shadow: 0 0 0 var(--avatar-presence-ring-width)
108
+ box-shadow: 0 0 0 var(--avatar-presence-ring-width, var(--stroke-md))
109
109
  hsl(var(--avatar-presence-ring-color, var(--background)));
110
110
  }
111
111
 
@@ -135,7 +135,7 @@
135
135
  inset: 0;
136
136
  margin: auto;
137
137
  inline-size: var(--avatar-presence-bar-inline-size);
138
- block-size: var(--avatar-presence-bar-block-size);
138
+ block-size: var(--avatar-presence-bar-block-size, var(--stroke-sm));
139
139
  border-radius: var(--radius-pill);
140
140
  background: hsl(var(--avatar-presence-ring-color, var(--background)));
141
141
  }
@@ -150,7 +150,7 @@
150
150
  border-color: CanvasText;
151
151
  background-color: CanvasText;
152
152
  background-image: none;
153
- outline: var(--avatar-presence-ring-width) solid Canvas;
153
+ outline: var(--avatar-presence-ring-width, var(--stroke-md)) solid Canvas;
154
154
  }
155
155
 
156
156
  [data-slot="avatar-presence"][data-presence="away"] {
@@ -176,7 +176,10 @@
176
176
  height: var(--progress-meter-block-size);
177
177
  overflow: hidden;
178
178
  border-radius: var(--radius-pill);
179
- background: var(--progress-track-background, hsl(var(--secondary)));
179
+ background: var(
180
+ --progress-track-background,
181
+ hsl(var(--secondary) / var(--progress-track-background-alpha, 100%))
182
+ );
180
183
  }
181
184
 
182
185
  .ui-progress-bar {
@@ -207,7 +210,7 @@
207
210
  .ui-progress[data-breakdown] .ui-progress-track {
208
211
  display: flex;
209
212
  height: var(--progress-breakdown-block-size);
210
- border-radius: var(--progress-breakdown-radius);
213
+ border-radius: var(--progress-breakdown-radius, var(--radius));
211
214
  }
212
215
 
213
216
  .ui-progress[data-size="sm"] .ui-progress-track {
@@ -265,11 +268,14 @@
265
268
  .ui-progress-ring-track,
266
269
  .ui-progress-ring-indicator {
267
270
  fill: none;
268
- stroke-width: var(--progress-ring-border-width);
271
+ stroke-width: var(--progress-ring-border-width, var(--stroke-lg));
269
272
  }
270
273
 
271
274
  .ui-progress-ring-track {
272
- stroke: var(--progress-track-background, hsl(var(--secondary)));
275
+ stroke: var(
276
+ --progress-track-background,
277
+ hsl(var(--secondary) / var(--progress-track-background-alpha, 100%))
278
+ );
273
279
  }
274
280
 
275
281
  .ui-progress-ring-indicator {
@@ -295,7 +301,8 @@
295
301
  line-height: var(--line-height-normal);
296
302
 
297
303
  max-inline-size: calc(
298
- var(--progress-ring-size) - 2 * var(--progress-ring-border-width) - var(--space-1)
304
+ var(--progress-ring-size) - 2 * var(--progress-ring-border-width, var(--stroke-lg)) -
305
+ var(--space-1)
299
306
  );
300
307
  overflow: hidden;
301
308
  text-overflow: ellipsis;
@@ -381,7 +388,7 @@
381
388
  block-size: var(--swatch-size);
382
389
  border-radius: var(--swatch-radius);
383
390
  background: var(--swatch-color);
384
- box-shadow: inset 0 0 0 var(--swatch-border-width)
391
+ box-shadow: inset 0 0 0 var(--swatch-border-width, var(--stroke-hairline))
385
392
  var(--swatch-border-color, hsl(var(--border)));
386
393
  forced-color-adjust: none;
387
394
  }
@@ -445,8 +452,8 @@
445
452
 
446
453
  max-inline-size: 100%;
447
454
  block-size: var(--thumbnail-block-size);
448
- border: var(--thumbnail-border-width) solid hsl(var(--border));
449
- border-radius: var(--thumbnail-radius);
455
+ border: var(--thumbnail-border-width, var(--stroke-hairline)) solid hsl(var(--border));
456
+ border-radius: var(--thumbnail-radius, var(--radius));
450
457
 
451
458
  background: hsl(var(--muted));
452
459
  object-fit: contain;
@@ -490,7 +497,7 @@
490
497
  width: 1.5rem;
491
498
  height: 1.5rem;
492
499
  place-items: center;
493
- border: 1px solid transparent;
500
+ border: var(--stroke-hairline) solid transparent;
494
501
  border-radius: var(--radius-pill);
495
502
  background: var(--timeline-dot-done-background, hsl(var(--primary)));
496
503
  color: var(--timeline-dot-done-foreground, hsl(var(--primary-foreground)));
@@ -508,7 +515,8 @@
508
515
  .ui-timeline-dot[data-current="true"] {
509
516
  background: var(--timeline-dot-current-background, hsl(var(--primary)));
510
517
  color: hsl(var(--primary-foreground));
511
- box-shadow: 0 0 0 var(--timeline-dot-current-ring-width) hsl(var(--primary) / 0.2);
518
+ box-shadow: 0 0 0 var(--timeline-dot-current-ring-width, var(--stroke-xl))
519
+ hsl(var(--primary) / 0.2);
512
520
  }
513
521
 
514
522
  .ui-timeline-dot[data-status="pending"] {
@@ -557,7 +565,7 @@
557
565
  }
558
566
 
559
567
  .ui-timeline-title[data-current="true"] {
560
- color: hsl(var(--primary));
568
+ color: hsl(var(--text-brand, var(--primary)));
561
569
  font-weight: var(--font-weight-semibold);
562
570
  }
563
571
 
@@ -575,7 +583,7 @@
575
583
  }
576
584
 
577
585
  .ui-accordion-item {
578
- border-bottom: 1px solid hsl(var(--border));
586
+ border-bottom: var(--stroke-hairline) solid hsl(var(--border));
579
587
  }
580
588
  .ui-accordion-header {
581
589
  display: flex;
@@ -595,7 +603,7 @@
595
603
  text-decoration: underline;
596
604
  }
597
605
  .ui-accordion-trigger:focus-visible {
598
- border-radius: var(--radius-sm);
606
+ border-radius: var(--radius-sm, calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio)));
599
607
  }
600
608
  .ui-accordion-trigger:disabled,
601
609
  .ui-accordion-trigger[data-disabled] {
@@ -624,9 +632,9 @@
624
632
  .ui-hover-card-content {
625
633
  z-index: 50;
626
634
  width: 16rem;
627
- border-radius: var(--radius-md);
628
- border: 1px solid hsl(var(--border));
629
- background: hsl(var(--popover));
635
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
636
+ border: var(--stroke-hairline) solid hsl(var(--border));
637
+ background: hsl(var(--popover) / var(--popover-alpha, 100%));
630
638
  color: hsl(var(--popover-foreground));
631
639
  padding: var(--space-4);
632
640
  box-shadow: var(--shadow-md);
@@ -653,10 +661,18 @@
653
661
  padding-inline: var(--space-4);
654
662
  }
655
663
 
664
+ .ui-carousel:has(.ui-carousel-dots) {
665
+ --carousel-dots-block-size: calc(var(--space-4) + var(--touch-target-min));
666
+ }
667
+
656
668
  .ui-carousel-previous,
657
669
  .ui-carousel-next {
658
670
  position: absolute;
659
- top: 50%;
671
+
672
+ inset-block-start: var(
673
+ --carousel-arrow-inset-block-start,
674
+ calc(50% - var(--carousel-dots-block-size) / 2)
675
+ );
660
676
  z-index: 20;
661
677
  display: grid;
662
678
  width: 2rem;
@@ -664,7 +680,7 @@
664
680
  place-items: center;
665
681
  border-radius: var(--radius-pill);
666
682
  background: hsl(var(--background));
667
- border: 1px solid hsl(var(--border));
683
+ border: var(--stroke-hairline) solid hsl(var(--border));
668
684
  color: hsl(var(--foreground));
669
685
  transition: background-color 150ms ease;
670
686
  transform: translateY(-50%);
@@ -685,8 +701,15 @@
685
701
  }
686
702
 
687
703
  .ui-carousel-arrow {
704
+ display: grid;
688
705
  width: var(--carousel-arrow-icon-size);
689
706
  height: var(--carousel-arrow-icon-size);
707
+ place-items: center;
708
+ }
709
+
710
+ .ui-carousel-arrow > * {
711
+ width: 100%;
712
+ height: 100%;
690
713
  }
691
714
 
692
715
  .ui-carousel-dots {
@@ -786,7 +809,7 @@
786
809
  align-items: flex-start;
787
810
  }
788
811
  [data-slot="list-row"]:not(:last-child) {
789
- border-block-end: var(--list-row-border, 1px solid hsl(var(--border)));
812
+ border-block-end: var(--list-row-border, var(--stroke-hairline) solid hsl(var(--border)));
790
813
  }
791
814
 
792
815
  [data-slot="list-row-item"] {
@@ -794,7 +817,7 @@
794
817
  list-style: none;
795
818
  }
796
819
  [data-slot="list-row-item"]:not(:last-child) {
797
- border-block-end: var(--list-row-border, 1px solid hsl(var(--border)));
820
+ border-block-end: var(--list-row-border, var(--stroke-hairline) solid hsl(var(--border)));
798
821
  }
799
822
  [data-slot="list-row-indicator"] {
800
823
  position: relative;
@@ -886,7 +909,7 @@
886
909
  min-height: var(--control-height);
887
910
  padding-block: var(--space-1);
888
911
  padding-inline: var(--space-3);
889
- border: 1px solid hsl(var(--border));
912
+ border: var(--stroke-hairline) solid hsl(var(--border));
890
913
  border-radius: var(--control-radius);
891
914
  background: hsl(var(--muted) / 0.4);
892
915
  }
@@ -938,12 +961,51 @@
938
961
  inset-inline-start: 0;
939
962
 
940
963
  z-index: 20;
941
- background-color: inherit;
942
- border-inline-end: 1px solid hsl(var(--border));
964
+ background-color: hsl(var(--card) / var(--card-alpha, 100%));
965
+ border-inline-end: var(--stroke-hairline) solid hsl(var(--border));
943
966
  inline-size: var(--permission-matrix-label-width);
944
967
  min-inline-size: var(--permission-matrix-label-width);
945
968
  }
946
969
 
970
+ .ui-permission-matrix .ui-table-row[data-tone] > .ui-permission-matrix-pin {
971
+ background-image: linear-gradient(
972
+ var(
973
+ --table-row-tone-surface,
974
+ hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha))
975
+ ),
976
+ var(
977
+ --table-row-tone-surface,
978
+ hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha))
979
+ )
980
+ );
981
+ }
982
+
983
+ .ui-permission-matrix tbody tr:hover > .ui-permission-matrix-pin {
984
+ background-image: linear-gradient(
985
+ var(
986
+ --table-row-hover-background,
987
+ hsl(var(--accent) / var(--table-row-hover-background-alpha, 0.7))
988
+ ),
989
+ var(
990
+ --table-row-hover-background,
991
+ hsl(var(--accent) / var(--table-row-hover-background-alpha, 0.7))
992
+ )
993
+ );
994
+ }
995
+
996
+ .ui-permission-matrix tbody tr[data-state="selected"] > .ui-permission-matrix-pin {
997
+ background-image: linear-gradient(
998
+ var(
999
+ --table-row-selected-background,
1000
+ hsl(var(--primary) / var(--table-row-selected-background-alpha, 0.06))
1001
+ ),
1002
+ var(
1003
+ --table-row-selected-background,
1004
+ hsl(var(--primary) / var(--table-row-selected-background-alpha, 0.06))
1005
+ )
1006
+ );
1007
+ }
1008
+
947
1009
  .ui-permission-matrix-role {
948
1010
  display: inline-flex;
949
1011
  align-items: center;
@@ -1016,7 +1078,7 @@
1016
1078
  :is(.ui-code-block, .ui-prose pre) {
1017
1079
  margin: 0;
1018
1080
  overflow: auto;
1019
- border-radius: var(--code-block-radius);
1081
+ border-radius: var(--code-block-radius, calc(var(--radius) / var(--radius-ratio)));
1020
1082
  background: hsl(var(--muted));
1021
1083
  padding: var(--code-block-space-inset);
1022
1084
  color: var(--code-block-foreground, hsl(var(--foreground)));
@@ -1062,7 +1124,7 @@
1062
1124
 
1063
1125
  .ui-code-block [data-code-token="keyword"],
1064
1126
  .ui-prose pre [data-code-token="keyword"] {
1065
- color: var(--code-block-token-keyword-color, hsl(var(--primary)));
1127
+ color: var(--code-block-token-keyword-color, hsl(var(--text-brand, var(--primary))));
1066
1128
  }
1067
1129
 
1068
1130
  .ui-code-block [data-code-token="string"],
@@ -1207,7 +1269,7 @@
1207
1269
  }
1208
1270
 
1209
1271
  .ui-prose blockquote {
1210
- border-inline-start: var(--prose-quote-border-width) solid hsl(var(--border));
1272
+ border-inline-start: var(--prose-quote-border-width, var(--stroke-md)) solid hsl(var(--border));
1211
1273
  padding-inline-start: var(--prose-quote-space-inline);
1212
1274
  color: hsl(var(--muted-foreground));
1213
1275
  }
@@ -1217,11 +1279,14 @@
1217
1279
  font-size: var(--prose-code-font-size);
1218
1280
  background: hsl(var(--muted));
1219
1281
  padding-inline: var(--prose-code-space-inline);
1220
- border-radius: var(--prose-code-radius);
1282
+ border-radius: var(
1283
+ --prose-code-radius,
1284
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1285
+ );
1221
1286
  }
1222
1287
 
1223
1288
  .ui-prose a {
1224
- color: hsl(var(--prose-link-color, var(--primary)));
1289
+ color: hsl(var(--prose-link-color, var(--text-link, var(--primary))));
1225
1290
  text-decoration-line: var(--prose-link-decoration-line);
1226
1291
  }
1227
1292
 
@@ -1245,7 +1310,7 @@
1245
1310
  .ui-prose img {
1246
1311
  max-inline-size: 100%;
1247
1312
  block-size: auto;
1248
- border-radius: var(--prose-image-radius);
1313
+ border-radius: var(--prose-image-radius, calc(var(--radius) / var(--radius-ratio)));
1249
1314
  }
1250
1315
 
1251
1316
  .ui-prose[data-image-size="original"] img {
@@ -1271,7 +1336,7 @@
1271
1336
  }
1272
1337
 
1273
1338
  .ui-timeline-grid-corner {
1274
- border-block-end: 1px solid hsl(var(--border));
1339
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
1275
1340
  }
1276
1341
 
1277
1342
  .ui-timeline-grid-head {
@@ -1279,8 +1344,8 @@
1279
1344
  flex-direction: column;
1280
1345
  align-items: center;
1281
1346
  padding: var(--space-1);
1282
- border-block-end: 1px solid hsl(var(--border));
1283
- border-inline-start: 1px solid hsl(var(--border));
1347
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
1348
+ border-inline-start: var(--stroke-hairline) solid hsl(var(--border));
1284
1349
  background: hsl(var(--secondary));
1285
1350
  font-size: var(--timeline-grid-head-font-size);
1286
1351
  font-weight: var(--font-weight-medium);
@@ -1319,7 +1384,7 @@
1319
1384
  .ui-timeline-grid-column {
1320
1385
  margin: 0;
1321
1386
  padding: 0;
1322
- border-inline-start: 1px solid hsl(var(--border));
1387
+ border-inline-start: var(--stroke-hairline) solid hsl(var(--border));
1323
1388
  background-image: repeating-linear-gradient(
1324
1389
  to bottom,
1325
1390
  var(--timeline-grid-line-color, hsl(var(--border))) 0 1px,
@@ -1358,9 +1423,12 @@
1358
1423
  inline-size: 100%;
1359
1424
  block-size: 100%;
1360
1425
  padding: var(--timeline-grid-event-space-inset);
1361
- border-inline-start: var(--timeline-grid-event-border-width) solid
1426
+ border-inline-start: var(--timeline-grid-event-border-width, var(--stroke-md)) solid
1362
1427
  var(--timeline-grid-event-color, hsl(var(--primary)));
1363
- border-radius: var(--timeline-grid-event-radius);
1428
+ border-radius: var(
1429
+ --timeline-grid-event-radius,
1430
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1431
+ );
1364
1432
 
1365
1433
  background-color: color-mix(
1366
1434
  in srgb,
@@ -1422,7 +1490,7 @@
1422
1490
  position: absolute;
1423
1491
  inset-inline: 0;
1424
1492
  inset-block-start: calc(var(--timeline-grid-hour-height) * var(--timeline-grid-now-offset, 0));
1425
- block-size: var(--timeline-grid-now-width);
1493
+ block-size: var(--timeline-grid-now-width, var(--stroke-sm));
1426
1494
  background: var(--timeline-grid-now-color, hsl(var(--destructive)));
1427
1495
  pointer-events: none;
1428
1496
  }
@@ -1450,8 +1518,8 @@
1450
1518
  @layer components {
1451
1519
  .ui-range-timeline {
1452
1520
  overflow: auto;
1453
- border: 1px solid hsl(var(--range-timeline-border-color));
1454
- border-radius: var(--radius-md);
1521
+ border: var(--stroke-hairline) solid hsl(var(--range-timeline-border-color));
1522
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1455
1523
  }
1456
1524
  .ui-range-timeline-canvas {
1457
1525
  min-inline-size: calc(
@@ -1472,9 +1540,9 @@
1472
1540
  position: sticky;
1473
1541
  inset-inline-start: 0;
1474
1542
  z-index: 1;
1475
- background: hsl(var(--card));
1543
+ background: hsl(var(--card) / var(--card-alpha, 100%));
1476
1544
  padding: var(--space-2);
1477
- border-inline-end: 1px solid hsl(var(--range-timeline-border-color));
1545
+ border-inline-end: var(--stroke-hairline) solid hsl(var(--range-timeline-border-color));
1478
1546
  }
1479
1547
 
1480
1548
  .ui-range-timeline-columns {
@@ -1486,9 +1554,11 @@
1486
1554
  min-inline-size: 0;
1487
1555
  overflow: hidden;
1488
1556
  padding: var(--space-2);
1489
- padding-inline-start: calc(var(--space-2) + var(--range-timeline-grid-width));
1557
+ padding-inline-start: calc(
1558
+ var(--space-2) + var(--range-timeline-grid-width, var(--stroke-hairline))
1559
+ );
1490
1560
  text-align: center;
1491
- border-inline-end: var(--range-timeline-grid-width) solid
1561
+ border-inline-end: var(--range-timeline-grid-width, var(--stroke-hairline)) solid
1492
1562
  hsl(var(--range-timeline-border-color));
1493
1563
  }
1494
1564
  .ui-range-timeline-track {
@@ -1511,7 +1581,7 @@
1511
1581
  .ui-range-timeline-grid-column {
1512
1582
  min-inline-size: 0;
1513
1583
  padding-inline: var(--space-2);
1514
- border-inline-end: var(--range-timeline-grid-width) solid transparent;
1584
+ border-inline-end: var(--range-timeline-grid-width, var(--stroke-hairline)) solid transparent;
1515
1585
  }
1516
1586
  .ui-range-timeline-grid-column[data-muted="true"] {
1517
1587
  background: var(--range-timeline-muted-column-background, hsl(var(--muted)));
@@ -1524,7 +1594,7 @@
1524
1594
  }
1525
1595
  .ui-range-timeline[data-bordered="true"] .ui-range-timeline-header + .ui-range-timeline-header,
1526
1596
  .ui-range-timeline[data-bordered="true"] .ui-range-timeline-row {
1527
- border-block-start: var(--range-timeline-grid-width) solid
1597
+ border-block-start: var(--range-timeline-grid-width, var(--stroke-hairline)) solid
1528
1598
  var(--range-timeline-grid-color, hsl(var(--border)));
1529
1599
  }
1530
1600
 
@@ -1563,7 +1633,10 @@
1563
1633
  inset-block-start: 50%;
1564
1634
  transform: translateY(-50%);
1565
1635
  block-size: var(--range-timeline-bar-height);
1566
- border-radius: var(--radius-sm);
1636
+ border-radius: var(
1637
+ --radius-sm,
1638
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1639
+ );
1567
1640
  background: hsl(var(--primary));
1568
1641
  color: hsl(var(--primary-foreground));
1569
1642
  }
@@ -1587,7 +1660,7 @@
1587
1660
  .ui-range-timeline-today {
1588
1661
  position: absolute;
1589
1662
  inset-block: 0;
1590
- border-inline-start: 1px solid hsl(var(--primary));
1663
+ border-inline-start: var(--stroke-hairline) solid hsl(var(--primary));
1591
1664
  }
1592
1665
 
1593
1666
  .ui-range-timeline-label[data-nested="true"] {
@@ -1646,16 +1719,20 @@
1646
1719
 
1647
1720
  [data-slot="descriptions"][data-bordered] {
1648
1721
  gap: 0;
1649
- border-inline-end: var(--descriptions-border-width) solid hsl(var(--border));
1650
- border-block-end: var(--descriptions-border-width) solid hsl(var(--border));
1651
- border-radius: var(--descriptions-border-radius);
1722
+ border-inline-end: var(--descriptions-border-width, var(--stroke-hairline)) solid
1723
+ hsl(var(--border));
1724
+ border-block-end: var(--descriptions-border-width, var(--stroke-hairline)) solid
1725
+ hsl(var(--border));
1726
+ border-radius: var(--descriptions-border-radius, calc(var(--radius) / var(--radius-ratio)));
1652
1727
  overflow: hidden;
1653
1728
  }
1654
1729
 
1655
1730
  [data-slot="descriptions"][data-bordered] [data-slot="descriptions-item"] {
1656
1731
  gap: 0;
1657
- border-block-start: var(--descriptions-border-width) solid hsl(var(--border));
1658
- border-inline-start: var(--descriptions-border-width) solid hsl(var(--border));
1732
+ border-block-start: var(--descriptions-border-width, var(--stroke-hairline)) solid
1733
+ hsl(var(--border));
1734
+ border-inline-start: var(--descriptions-border-width, var(--stroke-hairline)) solid
1735
+ hsl(var(--border));
1659
1736
  }
1660
1737
 
1661
1738
  [data-slot="descriptions"][data-bordered]
@@ -1670,7 +1747,8 @@
1670
1747
  [data-slot="descriptions"][data-bordered]
1671
1748
  [data-slot="descriptions-item"][data-layout="horizontal"]
1672
1749
  [data-slot="descriptions-label"] {
1673
- border-inline-end: var(--descriptions-border-width) solid hsl(var(--border));
1750
+ border-inline-end: var(--descriptions-border-width, var(--stroke-hairline)) solid
1751
+ hsl(var(--border));
1674
1752
  }
1675
1753
  }
1676
1754
 
@@ -1771,7 +1849,10 @@
1771
1849
  }
1772
1850
  .ui-text[data-chip] {
1773
1851
  background: hsl(var(--muted));
1774
- border-radius: var(--prose-code-radius);
1852
+ border-radius: var(
1853
+ --prose-code-radius,
1854
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1855
+ );
1775
1856
  padding-inline: var(--prose-code-space-inline);
1776
1857
  font-size: var(--prose-code-font-size);
1777
1858
  }
@@ -1816,7 +1897,7 @@
1816
1897
 
1817
1898
  .ui-chat-bubble-body {
1818
1899
  min-inline-size: 0;
1819
- border-radius: var(--chat-bubble-radius);
1900
+ border-radius: var(--chat-bubble-radius, var(--radius));
1820
1901
  padding-block: var(--chat-bubble-padding-block);
1821
1902
  padding-inline: var(--chat-bubble-padding-inline);
1822
1903
  background: var(--chat-bubble-background, hsl(var(--muted)));
@@ -1860,28 +1941,37 @@
1860
1941
 
1861
1942
  .ui-chat-bubble[data-tone="info"] .ui-chat-bubble-body {
1862
1943
  border: var(--stroke-hairline) solid hsl(var(--info) / var(--chat-bubble-tone-border-alpha));
1863
- background: hsl(var(--info) / var(--chat-bubble-tone-background-alpha));
1944
+ background: var(--surface-info, hsl(var(--info) / var(--chat-bubble-tone-background-alpha)));
1864
1945
  }
1865
1946
 
1866
1947
  .ui-chat-bubble[data-tone="success"] .ui-chat-bubble-body {
1867
1948
  border: var(--stroke-hairline) solid hsl(var(--success) / var(--chat-bubble-tone-border-alpha));
1868
- background: hsl(var(--success) / var(--chat-bubble-tone-background-alpha));
1949
+ background: var(
1950
+ --surface-success,
1951
+ hsl(var(--success) / var(--chat-bubble-tone-background-alpha))
1952
+ );
1869
1953
  }
1870
1954
 
1871
1955
  .ui-chat-bubble[data-tone="warning"] .ui-chat-bubble-body {
1872
1956
  border: var(--stroke-hairline) solid hsl(var(--warning) / var(--chat-bubble-tone-border-alpha));
1873
- background: hsl(var(--warning) / var(--chat-bubble-tone-background-alpha));
1957
+ background: var(
1958
+ --surface-warning,
1959
+ hsl(var(--warning) / var(--chat-bubble-tone-background-alpha))
1960
+ );
1874
1961
  }
1875
1962
 
1876
1963
  .ui-chat-bubble[data-tone="destructive"] .ui-chat-bubble-body {
1877
1964
  border: var(--stroke-hairline) solid
1878
1965
  hsl(var(--destructive) / var(--chat-bubble-tone-border-alpha));
1879
- background: hsl(var(--destructive) / var(--chat-bubble-tone-background-alpha));
1966
+ background: var(
1967
+ --surface-destructive,
1968
+ hsl(var(--destructive) / var(--chat-bubble-tone-background-alpha))
1969
+ );
1880
1970
  }
1881
1971
 
1882
1972
  .ui-chat-bubble-caret {
1883
1973
  display: inline-block;
1884
- inline-size: var(--chat-bubble-typing-caret-width);
1974
+ inline-size: var(--chat-bubble-typing-caret-width, var(--stroke-md));
1885
1975
  block-size: var(--chat-bubble-typing-caret-height);
1886
1976
  margin-inline-start: var(--space-1);
1887
1977
  background: var(--chat-bubble-typing-caret-color, hsl(var(--muted-foreground)));
@@ -1951,7 +2041,10 @@
1951
2041
  gap: var(--tree-node-gap);
1952
2042
 
1953
2043
  min-block-size: var(--tree-node-height, var(--control-height));
1954
- border-radius: var(--tree-node-radius);
2044
+ border-radius: var(
2045
+ --tree-node-radius,
2046
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2047
+ );
1955
2048
  padding-inline: var(--tree-node-padding-inline);
1956
2049
 
1957
2050
  padding-inline-start: calc(
@@ -1961,11 +2054,17 @@
1961
2054
  }
1962
2055
 
1963
2056
  .ui-tree-node:hover {
1964
- background: var(--tree-node-hover-background, hsl(var(--accent)));
2057
+ background: var(
2058
+ --tree-node-hover-background,
2059
+ hsl(var(--accent) / var(--tree-node-hover-background-alpha, 100%))
2060
+ );
1965
2061
  }
1966
2062
 
1967
2063
  .ui-tree-node[data-selected="true"] {
1968
- background: var(--tree-node-selected-background, hsl(var(--accent)));
2064
+ background: var(
2065
+ --tree-node-selected-background,
2066
+ hsl(var(--accent) / var(--tree-node-selected-background-alpha, 100%))
2067
+ );
1969
2068
  color: var(--tree-node-selected-foreground, hsl(var(--accent-foreground)));
1970
2069
  font-weight: var(--font-weight-medium);
1971
2070
  }
@@ -2036,7 +2135,7 @@
2036
2135
  var(--tree-node-padding-inline) + (var(--tree-node-level, 1) - 1) * var(--tree-indent-width) +
2037
2136
  var(--tree-switcher-size) / 2
2038
2137
  );
2039
- border-inline-start: 1px solid var(--tree-line-color, hsl(var(--border)));
2138
+ border-inline-start: var(--stroke-hairline) solid var(--tree-line-color, hsl(var(--border)));
2040
2139
  content: "";
2041
2140
  }
2042
2141
 
@@ -2086,7 +2185,10 @@
2086
2185
  }
2087
2186
 
2088
2187
  .ui-tree[data-variant="directory"] .ui-tree-node[data-selected="true"] {
2089
- background: var(--tree-node-selected-background, hsl(var(--primary) / 0.12));
2188
+ background: var(
2189
+ --tree-node-selected-background,
2190
+ hsl(var(--primary) / var(--tree-node-selected-background-alpha, 0.12))
2191
+ );
2090
2192
  }
2091
2193
  }
2092
2194
 
@@ -2097,7 +2199,7 @@
2097
2199
  min-inline-size: 0;
2098
2200
  align-items: flex-start;
2099
2201
  gap: var(--welcome-gap);
2100
- border-radius: var(--welcome-radius);
2202
+ border-radius: var(--welcome-radius, var(--radius));
2101
2203
  }
2102
2204
 
2103
2205
  .ui-welcome[data-variant="filled"] {
@@ -2172,10 +2274,10 @@
2172
2274
  position: absolute;
2173
2275
  inset-block: var(--thought-chain-icon-size) calc(-1 * var(--thought-chain-gap));
2174
2276
  inset-inline-start: calc(var(--thought-chain-icon-size) / 2);
2175
- border-inline-start: var(--thought-chain-line-width) solid
2277
+ border-inline-start: var(--thought-chain-line-width, var(--stroke-hairline)) solid
2176
2278
  var(--thought-chain-line-color, hsl(var(--border)));
2177
2279
  content: "";
2178
- translate: calc(-1 * var(--thought-chain-line-width) / 2) 0;
2280
+ translate: calc(-1 * var(--thought-chain-line-width, var(--stroke-hairline)) / 2) 0;
2179
2281
  }
2180
2282
 
2181
2283
  .ui-thought-chain[data-line="dashed"] .ui-thought-chain-node::before {
@@ -2292,7 +2394,7 @@
2292
2394
  padding-block: var(--thought-chain-item-padding-block);
2293
2395
  padding-inline: var(--thought-chain-item-padding-inline);
2294
2396
  border: 0;
2295
- border-radius: var(--thought-chain-item-radius);
2397
+ border-radius: var(--thought-chain-item-radius, var(--radius));
2296
2398
  background: transparent;
2297
2399
  color: inherit;
2298
2400
  font: inherit;