@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
@@ -6,7 +6,7 @@
6
6
  align-items: center;
7
7
  justify-content: center;
8
8
  gap: var(--space-inline-xs);
9
- border-radius: var(--radius-md);
9
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
10
10
  color: hsl(var(--foreground));
11
11
  font-size: var(--font-size-base);
12
12
  font-weight: var(--font-weight-medium);
@@ -18,16 +18,16 @@
18
18
  }
19
19
 
20
20
  .ui-toggle-default {
21
- border: 1px solid transparent;
21
+ border: var(--stroke-hairline) solid transparent;
22
22
  }
23
23
 
24
24
  .ui-toggle-outline {
25
- border: 1px solid hsl(var(--border));
25
+ border: var(--stroke-hairline) solid hsl(var(--border));
26
26
  background: hsl(var(--background));
27
27
  }
28
28
 
29
29
  .ui-toggle-soft {
30
- border: 1px solid transparent;
30
+ border: var(--stroke-hairline) solid transparent;
31
31
  background: var(--toggle-soft-background, hsl(var(--secondary)));
32
32
  color: var(--toggle-soft-color, hsl(var(--secondary-foreground)));
33
33
  }
@@ -60,7 +60,10 @@
60
60
  }
61
61
 
62
62
  .ui-toggle-soft:hover {
63
- background: var(--toggle-soft-hover-background, hsl(var(--secondary-hover)));
63
+ background: var(
64
+ --toggle-soft-hover-background,
65
+ hsl(var(--secondary-hover) / var(--secondary-hover-alpha, 100%))
66
+ );
64
67
  color: var(--toggle-soft-color, hsl(var(--secondary-foreground)));
65
68
  }
66
69
 
@@ -124,8 +127,13 @@
124
127
  flex-shrink: 0;
125
128
  }
126
129
 
130
+ .ui-button {
131
+ backdrop-filter: blur(var(--button-backdrop-blur-size))
132
+ saturate(var(--surface-backdrop-saturate, 160%));
133
+ }
134
+
127
135
  .ui-button--default {
128
- background: hsl(var(--primary));
136
+ background: var(--button-default-background, hsl(var(--primary)));
129
137
  color: hsl(var(--primary-foreground));
130
138
 
131
139
  box-shadow: var(--shadow-sm), var(--shadow-glow);
@@ -136,7 +144,7 @@
136
144
  }
137
145
 
138
146
  .ui-button--destructive {
139
- background: hsl(var(--destructive));
147
+ background: var(--button-destructive-background, hsl(var(--destructive)));
140
148
  color: hsl(var(--destructive-foreground));
141
149
  box-shadow: var(--shadow-sm);
142
150
  }
@@ -149,9 +157,23 @@
149
157
  background: hsl(var(--destructive-active));
150
158
  }
151
159
 
160
+ .ui-button--dashed {
161
+
162
+ border: var(--stroke-hairline) dashed
163
+ var(--button-outline-border-color, hsl(var(--input) / var(--input-alpha, 100%)));
164
+ background: var(
165
+ --button-outline-background,
166
+ hsl(var(--background) / var(--button-outline-background-alpha, 100%))
167
+ );
168
+ }
169
+
152
170
  .ui-button--outline {
153
- border: 1px solid hsl(var(--input));
154
- background: hsl(var(--background));
171
+ border: var(--stroke-hairline) solid
172
+ var(--button-outline-border-color, hsl(var(--input) / var(--input-alpha, 100%)));
173
+ background: var(
174
+ --button-outline-background,
175
+ hsl(var(--background) / var(--button-outline-background-alpha, 100%))
176
+ );
155
177
  color: hsl(var(--foreground));
156
178
 
157
179
  box-shadow: var(--shadow-sm);
@@ -168,7 +190,10 @@
168
190
  }
169
191
 
170
192
  .ui-button--secondary {
171
- background: hsl(var(--secondary));
193
+ background: var(
194
+ --button-secondary-background,
195
+ hsl(var(--secondary) / var(--button-secondary-background-alpha, 100%))
196
+ );
172
197
  color: hsl(var(--secondary-foreground));
173
198
  }
174
199
 
@@ -177,7 +202,7 @@
177
202
  }
178
203
 
179
204
  .ui-button--link {
180
- color: hsl(var(--primary));
205
+ color: var(--button-link-foreground, hsl(var(--text-link, var(--primary))));
181
206
  text-underline-offset: 4px;
182
207
  }
183
208
 
@@ -232,7 +257,10 @@
232
257
  [data-slot="badge"] {
233
258
  --badge-space-y: 0;
234
259
  --badge-line-height: var(--line-height-tight);
235
- --badge-radius: var(--radius-sm);
260
+ --badge-radius: var(
261
+ --radius-sm,
262
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
263
+ );
236
264
  }
237
265
 
238
266
  .ui-button--lg {
@@ -277,7 +305,7 @@
277
305
  padding-inline-start: var(--control-padding-x);
278
306
  padding-inline-end: var(--control-padding-x);
279
307
  font-size: var(--control-font-size);
280
- border-width: var(--control-border-width);
308
+ border-width: var(--control-border-width, var(--stroke-hairline));
281
309
  border-style: solid;
282
310
  box-shadow: var(--control-shadow);
283
311
  }
@@ -287,7 +315,7 @@
287
315
  padding-block: var(--control-multiline-padding-block);
288
316
  padding-inline: var(--control-padding-x);
289
317
  font-size: var(--control-font-size);
290
- border-width: var(--control-border-width);
318
+ border-width: var(--control-border-width, var(--stroke-hairline));
291
319
  border-style: solid;
292
320
  box-shadow: var(--control-shadow);
293
321
  }
@@ -330,7 +358,7 @@
330
358
  padding-block-end: var(--textarea-padding-block-end, var(--control-multiline-padding-block));
331
359
  padding-inline-start: var(--textarea-padding-inline-start, var(--control-padding-x));
332
360
  padding-inline-end: var(--textarea-padding-inline-end, var(--control-padding-x));
333
- border: var(--control-border-width) solid transparent;
361
+ border: var(--control-border-width, var(--stroke-hairline)) solid transparent;
334
362
 
335
363
  min-block-size: max(
336
364
  var(--control-height),
@@ -466,8 +494,8 @@
466
494
  width: var(--checkbox-size);
467
495
  height: var(--checkbox-size);
468
496
  flex-shrink: 0;
469
- border: var(--checkbox-border-width) solid hsl(var(--primary));
470
- color: hsl(var(--primary));
497
+ border: var(--checkbox-border-width, var(--stroke-hairline)) solid hsl(var(--primary));
498
+ color: hsl(var(--text-brand, var(--primary)));
471
499
  background: transparent;
472
500
  }
473
501
 
@@ -536,7 +564,7 @@
536
564
  flex-shrink: 0;
537
565
  cursor: pointer;
538
566
  align-items: center;
539
- border: 2px solid transparent;
567
+ border: var(--stroke-md) solid transparent;
540
568
  border-radius: var(--radius-pill);
541
569
  box-shadow: var(--shadow-sm);
542
570
  transition-property: color, background-color, border-color, box-shadow;
@@ -555,7 +583,7 @@
555
583
  }
556
584
 
557
585
  .ui-switch[data-state="unchecked"] {
558
- background: var(--switch-unchecked-background, hsl(var(--input)));
586
+ background: var(--switch-unchecked-background, hsl(var(--input) / var(--input-alpha, 100%)));
559
587
  }
560
588
 
561
589
  .ui-switch-thumb {
@@ -652,7 +680,7 @@
652
680
  block-size: var(--slider-thumb-size);
653
681
  margin-block-start: calc(var(--slider-thumb-size) / -2);
654
682
  margin-inline-start: calc(var(--slider-thumb-size) / -2);
655
- border: 1px solid hsl(var(--primary) / 0.5);
683
+ border: var(--stroke-hairline) solid hsl(var(--primary) / 0.5);
656
684
  border-radius: var(--radius-pill);
657
685
  background: hsl(var(--background));
658
686
  box-shadow: var(--shadow-sm);
@@ -685,7 +713,7 @@
685
713
  .ui-color-picker-preview {
686
714
  width: 100%;
687
715
  height: 100%;
688
- border: 1px solid hsl(var(--input));
716
+ border: var(--stroke-hairline) solid hsl(var(--input) / var(--input-alpha, 100%));
689
717
  border-radius: var(--control-radius);
690
718
  box-shadow: var(--shadow-sm);
691
719
  }
@@ -722,14 +750,14 @@
722
750
  overflow: clip;
723
751
  overflow-clip-margin: var(--focus-ring-clip-margin);
724
752
  border-radius: var(--control-radius);
725
- background: hsl(var(--popover));
753
+ background: hsl(var(--popover) / var(--popover-alpha, 100%));
726
754
  color: hsl(var(--popover-foreground));
727
755
  }
728
756
 
729
757
  .ui-command-input-wrapper {
730
758
  display: flex;
731
759
  align-items: center;
732
- border-bottom: 1px solid hsl(var(--border));
760
+ border-bottom: var(--stroke-hairline) solid hsl(var(--border));
733
761
  padding-inline: var(--command-input-padding-x);
734
762
  }
735
763
 
@@ -828,12 +856,12 @@
828
856
  }
829
857
 
830
858
  .ui-command[data-split] .ui-command-item:has(+ .ui-command-item) {
831
- border-block-end: var(--command-item-divider-width) solid
859
+ border-block-end: var(--command-item-divider-width, var(--stroke-hairline)) solid
832
860
  hsl(var(--command-item-divider-color, var(--border)));
833
861
  }
834
862
 
835
863
  .ui-command[data-split] .ui-command-group:not([hidden]) ~ .ui-command-group:not([hidden]) {
836
- border-block-start: var(--command-item-divider-width) solid
864
+ border-block-start: var(--command-item-divider-width, var(--stroke-hairline)) solid
837
865
  hsl(var(--command-item-divider-color, var(--border)));
838
866
  }
839
867
 
@@ -847,7 +875,7 @@
847
875
  transform: translateX(-50%);
848
876
  gap: 0;
849
877
  padding: 0;
850
- background: hsl(var(--popover));
878
+ background: hsl(var(--popover) / var(--popover-alpha, 100%));
851
879
  }
852
880
 
853
881
  .ui-command-palette-trigger {
@@ -876,7 +904,7 @@
876
904
  display: flex;
877
905
  flex-wrap: wrap;
878
906
  gap: var(--command-palette-hint-gap);
879
- border-top: 1px solid hsl(var(--border));
907
+ border-top: var(--stroke-hairline) solid hsl(var(--border));
880
908
  padding: var(--command-palette-hint-padding-y) var(--command-palette-hint-padding-x);
881
909
  color: hsl(var(--muted-foreground));
882
910
  font-family: var(--font-mono);
@@ -1030,24 +1058,24 @@
1030
1058
  align-items: center;
1031
1059
  justify-content: center;
1032
1060
  font-size: var(--font-size-base);
1033
- border: var(--control-border-width) solid hsl(var(--border));
1061
+ border: var(--control-border-width, var(--stroke-hairline)) solid hsl(var(--border));
1034
1062
  border-inline-start-width: 0;
1035
1063
  background: hsl(var(--background));
1036
1064
  transition: box-shadow 0.15s ease;
1037
1065
  }
1038
1066
  .ui-otp-group .ui-otp-slot:first-child {
1039
- border-inline-start-width: var(--control-border-width);
1040
- border-start-start-radius: var(--radius-md);
1041
- border-end-start-radius: var(--radius-md);
1067
+ border-inline-start-width: var(--control-border-width, var(--stroke-hairline));
1068
+ border-start-start-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1069
+ border-end-start-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1042
1070
  }
1043
1071
  .ui-otp-group .ui-otp-slot:last-child {
1044
- border-start-end-radius: var(--radius-md);
1045
- border-end-end-radius: var(--radius-md);
1072
+ border-start-end-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1073
+ border-end-end-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1046
1074
  }
1047
1075
  .ui-otp-group[data-appearance="grouped"] {
1048
1076
  overflow: hidden;
1049
- border: var(--control-border-width) solid hsl(var(--border));
1050
- border-radius: var(--radius-md);
1077
+ border: var(--control-border-width, var(--stroke-hairline)) solid hsl(var(--border));
1078
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1051
1079
  background: hsl(var(--background));
1052
1080
  }
1053
1081
  .ui-otp-group[data-appearance="grouped"] .ui-otp-slot {
@@ -1093,7 +1121,7 @@
1093
1121
  justify-content: center;
1094
1122
  }
1095
1123
  .ui-otp-caret {
1096
- width: var(--otp-caret-inline-size);
1124
+ width: var(--otp-caret-inline-size, var(--stroke-hairline));
1097
1125
  height: var(--otp-caret-block-size);
1098
1126
  background: hsl(var(--foreground));
1099
1127
  animation: ui-otp-blink 1s step-end infinite;
@@ -1147,21 +1175,29 @@
1147
1175
  fill: currentColor;
1148
1176
  }
1149
1177
  .ui-rating-star:focus-visible {
1150
- border-radius: var(--radius-sm);
1178
+ border-radius: var(
1179
+ --radius-sm,
1180
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1181
+ );
1151
1182
  }
1152
1183
 
1153
1184
  .ui-segmented {
1154
1185
 
1155
1186
  --segmented-item-height: calc(var(--control-height) - var(--segmented-track-padding) * 2);
1156
1187
  display: inline-flex;
1188
+
1189
+ inline-size: fit-content;
1157
1190
  max-width: 100%;
1158
1191
 
1159
1192
  flex-wrap: wrap;
1160
1193
  align-items: stretch;
1161
1194
  padding: var(--segmented-track-padding);
1162
- border-radius: var(--segmented-track-radius);
1163
- background: hsl(var(--segmented-track-background, var(--muted)));
1164
- color: hsl(var(--segmented-item-color));
1195
+ border-radius: var(--segmented-track-radius, var(--radius));
1196
+ background: hsl(
1197
+ var(--segmented-track-background, var(--muted)) /
1198
+ var(--segmented-track-background-alpha, 100%)
1199
+ );
1200
+ color: hsl(var(--segmented-item-color, var(--muted-foreground)));
1165
1201
  font-size: var(--font-size-base);
1166
1202
  }
1167
1203
 
@@ -1176,7 +1212,7 @@
1176
1212
  gap: var(--segmented-item-gap);
1177
1213
  padding-inline: var(--segmented-item-padding-inline);
1178
1214
  border: 0;
1179
- border-radius: var(--segmented-item-radius);
1215
+ border-radius: var(--segmented-item-radius, calc(var(--radius) / var(--radius-ratio)));
1180
1216
  background: transparent;
1181
1217
  color: inherit;
1182
1218
  cursor: pointer;
@@ -1188,20 +1224,29 @@
1188
1224
  }
1189
1225
 
1190
1226
  .ui-segmented-item:not([data-state="checked"]):not([data-disabled]):hover {
1191
- background: hsl(var(--segmented-item-hover-background, var(--accent)));
1192
- color: hsl(var(--segmented-item-hover-color));
1227
+ background: hsl(
1228
+ var(--segmented-item-hover-background, var(--accent)) /
1229
+ var(--segmented-item-hover-background-alpha, 100%)
1230
+ );
1231
+ color: hsl(var(--segmented-item-hover-color, var(--foreground)));
1193
1232
  }
1194
1233
  .ui-segmented-item:not([data-state="checked"]):not([data-disabled]):active {
1195
- background: hsl(var(--segmented-item-active-background));
1234
+ background: hsl(
1235
+ var(--segmented-item-active-background) / var(--segmented-item-active-background-alpha, 100%)
1236
+ );
1196
1237
  }
1197
1238
 
1198
1239
  .ui-segmented-item[data-state="checked"] {
1199
- background: hsl(var(--segmented-item-selected-background, var(--background)));
1240
+ background: hsl(
1241
+ var(--segmented-item-selected-background, var(--background)) /
1242
+ var(--segmented-item-selected-background-alpha, 100%)
1243
+ );
1200
1244
 
1201
1245
  box-shadow:
1202
- var(--segmented-item-selected-shadow),
1203
- inset 0 0 0 1px hsl(var(--segmented-item-selected-border-color, var(--input)));
1204
- color: hsl(var(--segmented-item-selected-color));
1246
+ var(--segmented-item-selected-shadow, var(--shadow-md)),
1247
+ inset 0 0 0 1px
1248
+ hsl(var(--segmented-item-selected-border-color, var(--input)) / var(--input-alpha, 100%));
1249
+ color: hsl(var(--segmented-item-selected-color, var(--foreground)));
1205
1250
 
1206
1251
  font-weight: var(--segmented-item-selected-font-weight);
1207
1252
  }
@@ -1252,9 +1297,13 @@
1252
1297
  min-height: var(--control-height);
1253
1298
  padding: var(--space-1) var(--control-padding-x);
1254
1299
 
1255
- border: var(--control-border-width) solid var(--control-surface-border-color, hsl(var(--input)));
1300
+ border: var(--control-border-width, var(--stroke-hairline)) solid
1301
+ var(--control-surface-border-color, hsl(var(--input) / var(--input-alpha, 100%)));
1256
1302
  border-radius: var(--control-radius);
1257
- background: var(--control-surface-background, hsl(var(--background)));
1303
+ background: var(
1304
+ --control-surface-background,
1305
+ hsl(var(--background) / var(--control-surface-background-alpha, 100%))
1306
+ );
1258
1307
  box-shadow: var(--control-shadow);
1259
1308
  }
1260
1309
  .ui-tag-input-disabled {
@@ -1277,7 +1326,10 @@
1277
1326
  gap: var(--space-1);
1278
1327
  font-size: var(--tag-input-chip-font-size);
1279
1328
  padding: 0.0625rem var(--space-2);
1280
- border-radius: var(--radius-sm);
1329
+ border-radius: var(
1330
+ --radius-sm,
1331
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1332
+ );
1281
1333
  background: hsl(var(--secondary));
1282
1334
  color: hsl(var(--secondary-foreground));
1283
1335
  }
@@ -1314,7 +1366,10 @@
1314
1366
  .ui-tag-input-field {
1315
1367
  flex: 1;
1316
1368
  min-width: 6rem;
1317
- block-size: calc(var(--control-height) - var(--space-1) * 2 - var(--control-border-width) * 2);
1369
+ block-size: calc(
1370
+ var(--control-height) - var(--space-1) * 2 -
1371
+ var(--control-border-width, var(--stroke-hairline)) * 2
1372
+ );
1318
1373
  border: 0;
1319
1374
  outline: none;
1320
1375
  background: transparent;
@@ -1374,8 +1429,11 @@
1374
1429
  }
1375
1430
 
1376
1431
  .ui-control-surface {
1377
- border-color: var(--control-surface-border-color, hsl(var(--input)));
1378
- background: var(--control-surface-background, hsl(var(--background)));
1432
+ border-color: var(--control-surface-border-color, hsl(var(--input) / var(--input-alpha, 100%)));
1433
+ background: var(
1434
+ --control-surface-background,
1435
+ hsl(var(--background) / var(--control-surface-background-alpha, 100%))
1436
+ );
1379
1437
  }
1380
1438
 
1381
1439
  .ui-control-surface[data-variant="filled"] {
@@ -1510,7 +1568,10 @@
1510
1568
  block-size: var(--control-affix-action-size);
1511
1569
  align-items: center;
1512
1570
  justify-content: center;
1513
- border-radius: var(--control-affix-action-radius);
1571
+ border-radius: var(
1572
+ --control-affix-action-radius,
1573
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1574
+ );
1514
1575
  opacity: var(--control-affix-rest-alpha);
1515
1576
  }
1516
1577
 
@@ -1570,7 +1631,7 @@
1570
1631
 
1571
1632
  .ui-search-select-search {
1572
1633
  flex-shrink: 0;
1573
- border-block-end: 1px solid hsl(var(--border));
1634
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
1574
1635
  }
1575
1636
 
1576
1637
  .ui-search-select-search-input {
@@ -1623,7 +1684,10 @@
1623
1684
  max-inline-size: 100%;
1624
1685
  align-items: center;
1625
1686
  overflow: hidden;
1626
- border-radius: var(--radius-sm);
1687
+ border-radius: var(
1688
+ --radius-sm,
1689
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1690
+ );
1627
1691
  background: hsl(var(--secondary));
1628
1692
  padding: 0.0625rem var(--space-2);
1629
1693
  color: hsl(var(--secondary-foreground));
@@ -1683,7 +1747,7 @@
1683
1747
  .ui-search-select-footer {
1684
1748
  flex-shrink: 0;
1685
1749
  padding: var(--search-select-footer-space-inset);
1686
- border-block-start: 1px solid hsl(var(--border));
1750
+ border-block-start: var(--stroke-hairline) solid hsl(var(--border));
1687
1751
  }
1688
1752
  }
1689
1753
 
@@ -1696,7 +1760,7 @@
1696
1760
 
1697
1761
  .ui-cascader-column {
1698
1762
  min-inline-size: var(--cascader-column-min-width);
1699
- border-inline-end: 1px solid hsl(var(--border));
1763
+ border-inline-end: var(--stroke-hairline) solid hsl(var(--border));
1700
1764
  }
1701
1765
 
1702
1766
  .ui-cascader-column:last-child {
@@ -1753,7 +1817,10 @@
1753
1817
  display: flex;
1754
1818
  inline-size: 100%;
1755
1819
  align-items: center;
1756
- border-radius: var(--cascader-result-radius);
1820
+ border-radius: var(
1821
+ --cascader-result-radius,
1822
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1823
+ );
1757
1824
  padding-inline: var(--cascader-result-space-inline);
1758
1825
  padding-block: var(--cascader-result-space-block);
1759
1826
  font-size: var(--cascader-option-font-size);
@@ -1806,10 +1873,14 @@
1806
1873
  var(--trigger-width, var(--menu-content-min-width))
1807
1874
  );
1808
1875
  overflow: hidden;
1809
- border-radius: var(--radius-md);
1810
- border: 1px solid hsl(var(--border));
1811
- background: hsl(var(--popover));
1876
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
1877
+ border: var(--stroke-hairline) solid hsl(var(--border));
1878
+
1879
+ background: var(--select-content-background, hsl(var(--popover) / var(--popover-alpha, 100%)));
1812
1880
  color: hsl(var(--popover-foreground));
1881
+
1882
+ backdrop-filter: blur(var(--select-content-backdrop-blur-size))
1883
+ saturate(var(--surface-backdrop-saturate, 160%));
1813
1884
  box-shadow: var(--shadow-md);
1814
1885
  }
1815
1886
 
@@ -1840,7 +1911,10 @@
1840
1911
 
1841
1912
  .ui-select-item,
1842
1913
  .ui-select-label {
1843
- border-radius: var(--menu-item-radius);
1914
+ border-radius: var(
1915
+ --menu-item-radius,
1916
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1917
+ );
1844
1918
  padding-inline: var(--menu-item-space-inline);
1845
1919
  height: var(--menu-item-height);
1846
1920
  display: flex;
@@ -1851,7 +1925,10 @@
1851
1925
 
1852
1926
  .ui-select-item,
1853
1927
  .ui-select-label {
1854
- border-radius: var(--menu-item-radius);
1928
+ border-radius: var(
1929
+ --menu-item-radius,
1930
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
1931
+ );
1855
1932
  padding-inline: var(--menu-item-space-inline);
1856
1933
  height: var(--menu-item-height);
1857
1934
  display: flex;
@@ -1947,7 +2024,7 @@
1947
2024
  .ui-time-picker-column-heading {
1948
2025
  padding-inline: var(--time-picker-heading-space-inline);
1949
2026
  padding-block: var(--time-picker-heading-space-block);
1950
- border-block-end: 1px solid hsl(var(--border));
2027
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
1951
2028
  text-align: center;
1952
2029
  font-size: var(--time-picker-heading-font-size);
1953
2030
  font-weight: var(--font-weight-medium);
@@ -1968,7 +2045,7 @@
1968
2045
  inline-size: 100%;
1969
2046
  align-items: center;
1970
2047
  justify-content: center;
1971
- border-radius: var(--time-picker-option-radius);
2048
+ border-radius: var(--time-picker-option-radius, calc(var(--radius) / var(--radius-ratio)));
1972
2049
  padding-block: var(--time-picker-option-space-block);
1973
2050
  font-size: var(--time-picker-option-font-size);
1974
2051
  font-variant-numeric: tabular-nums;
@@ -2002,7 +2079,7 @@
2002
2079
  flex-direction: column;
2003
2080
  gap: var(--time-picker-footer-space-gap);
2004
2081
  padding: var(--time-picker-footer-space-inset);
2005
- border-block-start: 1px solid hsl(var(--border));
2082
+ border-block-start: var(--stroke-hairline) solid hsl(var(--border));
2006
2083
  }
2007
2084
 
2008
2085
  .ui-time-picker-footer-actions {
@@ -2042,7 +2119,10 @@
2042
2119
  block-size: var(--control-inline-affix-size);
2043
2120
  align-items: center;
2044
2121
  justify-content: center;
2045
- border-radius: var(--control-affix-action-radius);
2122
+ border-radius: var(
2123
+ --control-affix-action-radius,
2124
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2125
+ );
2046
2126
  color: hsl(var(--muted-foreground));
2047
2127
  opacity: var(--control-inline-affix-rest-alpha);
2048
2128
  transition: opacity 150ms ease;
@@ -2174,7 +2254,10 @@
2174
2254
  .ui-tree-select-row {
2175
2255
  display: flex;
2176
2256
  align-items: center;
2177
- border-radius: var(--tree-select-row-radius);
2257
+ border-radius: var(
2258
+ --tree-select-row-radius,
2259
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2260
+ );
2178
2261
  padding-block: var(--tree-select-row-space-block);
2179
2262
  padding-inline-end: var(--tree-select-row-space-inline-end);
2180
2263
  padding-inline-start: calc(
@@ -2207,7 +2290,10 @@
2207
2290
  align-items: center;
2208
2291
  justify-content: center;
2209
2292
  margin-inline-end: var(--tree-select-toggle-space-inline-end);
2210
- border-radius: var(--tree-select-row-radius);
2293
+ border-radius: var(
2294
+ --tree-select-row-radius,
2295
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2296
+ );
2211
2297
  }
2212
2298
 
2213
2299
  .ui-tree-select-toggle[data-leaf] {
@@ -2243,7 +2329,10 @@
2243
2329
  block-size: var(--control-affix-action-size);
2244
2330
  align-items: center;
2245
2331
  justify-content: center;
2246
- border-radius: var(--control-affix-action-radius);
2332
+ border-radius: var(
2333
+ --control-affix-action-radius,
2334
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2335
+ );
2247
2336
  opacity: var(--control-affix-rest-alpha);
2248
2337
  }
2249
2338
 
@@ -2279,13 +2368,16 @@
2279
2368
 
2280
2369
  .ui-calendar[data-bordered="true"] .ui-calendar-day,
2281
2370
  .ui-calendar[data-bordered="true"] .ui-calendar-weekday {
2282
- border-inline-start: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2283
- border-block-start: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2371
+ border-inline-start: var(--stroke-hairline) solid
2372
+ var(--calendar-grid-border-color, hsl(var(--border)));
2373
+ border-block-start: var(--stroke-hairline) solid
2374
+ var(--calendar-grid-border-color, hsl(var(--border)));
2284
2375
  }
2285
2376
 
2286
2377
  .ui-calendar[data-bordered="true"] .ui-calendar-week,
2287
2378
  .ui-calendar[data-bordered="true"] .ui-calendar-weekdays {
2288
- border-inline-end: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2379
+ border-inline-end: var(--stroke-hairline) solid
2380
+ var(--calendar-grid-border-color, hsl(var(--border)));
2289
2381
  }
2290
2382
 
2291
2383
  .ui-calendar[data-bordered="true"] .ui-calendar-weekday {
@@ -2297,7 +2389,8 @@
2297
2389
  }
2298
2390
 
2299
2391
  .ui-calendar[data-bordered="true"] .ui-calendar-grid {
2300
- border-block-end: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2392
+ border-block-end: var(--stroke-hairline) solid
2393
+ var(--calendar-grid-border-color, hsl(var(--border)));
2301
2394
  }
2302
2395
 
2303
2396
  .ui-calendar[data-bordered="true"] .ui-calendar-day.invisible {
@@ -2318,8 +2411,10 @@
2318
2411
 
2319
2412
  .ui-calendar[data-bordered="true"] .ui-calendar-week-number,
2320
2413
  .ui-calendar[data-bordered="true"] .ui-calendar-week-number-header {
2321
- border-inline-start: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2322
- border-block-start: 1px solid var(--calendar-grid-border-color, hsl(var(--border)));
2414
+ border-inline-start: var(--stroke-hairline) solid
2415
+ var(--calendar-grid-border-color, hsl(var(--border)));
2416
+ border-block-start: var(--stroke-hairline) solid
2417
+ var(--calendar-grid-border-color, hsl(var(--border)));
2323
2418
  }
2324
2419
 
2325
2420
  .ui-calendar[data-bordered="true"] .ui-calendar-day {
@@ -2427,7 +2522,7 @@
2427
2522
 
2428
2523
  .ui-calendar-weekday {
2429
2524
  inline-size: var(--control-height);
2430
- border-radius: var(--calendar-weekday-radius);
2525
+ border-radius: var(--calendar-weekday-radius, calc(var(--radius) / var(--radius-ratio)));
2431
2526
  font-size: var(--calendar-weekday-font-size);
2432
2527
  font-weight: var(--font-weight-normal);
2433
2528
  color: hsl(var(--muted-foreground));
@@ -2458,7 +2553,7 @@
2458
2553
  block-size: var(--control-height);
2459
2554
  padding: 0;
2460
2555
  font-weight: var(--font-weight-normal);
2461
- border-radius: var(--calendar-day-radius);
2556
+ border-radius: var(--calendar-day-radius, calc(var(--radius) / var(--radius-ratio)));
2462
2557
  }
2463
2558
 
2464
2559
  .ui-calendar .ui-calendar-day-button[aria-selected] {
@@ -2505,7 +2600,7 @@
2505
2600
  box-shadow: inset 0 0 0 1px hsl(var(--primary));
2506
2601
  color: hsl(var(--text-primary, from hsl(var(--primary)) var(--text-primary-channels)));
2507
2602
  font-weight: var(--font-weight-medium);
2508
- border-radius: var(--calendar-day-radius);
2603
+ border-radius: var(--calendar-day-radius, calc(var(--radius) / var(--radius-ratio)));
2509
2604
  }
2510
2605
 
2511
2606
  .ui-calendar .ui-calendar-day.day-outside:not(:has(button)) {
@@ -2515,7 +2610,7 @@
2515
2610
  .ui-calendar .ui-calendar-day.day-selected:not(:has(button)) {
2516
2611
  background-color: hsl(var(--primary));
2517
2612
  color: hsl(var(--primary-foreground));
2518
- border-radius: var(--calendar-day-radius);
2613
+ border-radius: var(--calendar-day-radius, calc(var(--radius) / var(--radius-ratio)));
2519
2614
  }
2520
2615
 
2521
2616
  .ui-calendar-day-disabled {
@@ -2533,7 +2628,8 @@
2533
2628
  gap: var(--calendar-footer-space-gap);
2534
2629
  margin-block-start: var(--calendar-footer-space-block-start);
2535
2630
  padding-block-start: var(--calendar-footer-space-block-start);
2536
- border-block-start: var(--calendar-footer-border-width) solid hsl(var(--border));
2631
+ border-block-start: var(--calendar-footer-border-width, var(--stroke-hairline)) solid
2632
+ hsl(var(--border));
2537
2633
  }
2538
2634
 
2539
2635
  .ui-calendar-footer-today {
@@ -2555,8 +2651,8 @@
2555
2651
  min-block-size: var(--transfer-pane-min-height);
2556
2652
  flex: 1 1 0%;
2557
2653
  flex-direction: column;
2558
- border-radius: var(--transfer-pane-radius);
2559
- border: 1px solid hsl(var(--border));
2654
+ border-radius: var(--transfer-pane-radius, calc(var(--radius) / var(--radius-ratio)));
2655
+ border: var(--stroke-hairline) solid hsl(var(--border));
2560
2656
  background: hsl(var(--background));
2561
2657
  }
2562
2658
 
@@ -2566,7 +2662,7 @@
2566
2662
  justify-content: space-between;
2567
2663
  padding-inline: var(--transfer-header-space-inline);
2568
2664
  padding-block: var(--transfer-header-space-block);
2569
- border-block-end: 1px solid hsl(var(--border));
2665
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
2570
2666
  font-size: var(--transfer-header-font-size);
2571
2667
  }
2572
2668
 
@@ -2580,7 +2676,7 @@
2580
2676
 
2581
2677
  .ui-transfer-search {
2582
2678
  padding: var(--transfer-search-space-inset);
2583
- border-block-end: 1px solid hsl(var(--border));
2679
+ border-block-end: var(--stroke-hairline) solid hsl(var(--border));
2584
2680
  }
2585
2681
 
2586
2682
  .ui-transfer-search[data-disabled] {
@@ -2604,7 +2700,10 @@
2604
2700
  cursor: pointer;
2605
2701
  align-items: flex-start;
2606
2702
  gap: var(--transfer-row-space-gap);
2607
- border-radius: var(--transfer-row-radius);
2703
+ border-radius: var(
2704
+ --transfer-row-radius,
2705
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
2706
+ );
2608
2707
  padding-inline: var(--transfer-row-space-inline);
2609
2708
  padding-block: var(--transfer-row-space-block);
2610
2709
  font-size: var(--transfer-row-font-size);
@@ -2645,7 +2744,7 @@
2645
2744
  align-items: center;
2646
2745
  gap: var(--control-composite-field-space-gap);
2647
2746
  border-radius: var(--control-radius);
2648
- border-color: hsl(var(--input));
2747
+ border-color: hsl(var(--input) / var(--input-alpha, 100%));
2649
2748
  background: hsl(var(--background));
2650
2749
  outline: none;
2651
2750
  transition:
@@ -2821,13 +2920,24 @@
2821
2920
 
2822
2921
  @layer components {
2823
2922
 
2923
+ .ui-control-outlined-surface {
2924
+ border-color: var(--control-surface-border-color, hsl(var(--input) / var(--input-alpha, 100%)));
2925
+ background-color: var(
2926
+ --control-surface-background,
2927
+ hsl(var(--background) / var(--control-surface-background-alpha, 100%))
2928
+ );
2929
+ }
2930
+
2824
2931
  .ui-control--filled {
2825
2932
  border-color: transparent;
2826
2933
  background-color: hsl(var(--control-variant-filled-background));
2827
2934
  }
2828
2935
 
2829
2936
  .ui-control--filled:hover:not(:disabled):not([readonly]):not([data-disabled]) {
2830
- background-color: hsl(var(--control-variant-filled-hover-background, var(--accent)));
2937
+ background-color: hsl(
2938
+ var(--control-variant-filled-hover-background, var(--accent)) /
2939
+ var(--control-variant-filled-hover-background-alpha, 100%)
2940
+ );
2831
2941
  }
2832
2942
 
2833
2943
  .ui-control--borderless {
@@ -2859,7 +2969,7 @@
2859
2969
  .ui-control-count {
2860
2970
  flex-shrink: 0;
2861
2971
  font-size: var(--control-count-font-size);
2862
- color: hsl(var(--control-count-color));
2972
+ color: hsl(var(--control-count-color, var(--muted-foreground)));
2863
2973
  font-variant-numeric: tabular-nums;
2864
2974
  padding-inline-end: var(--control-count-space-inline);
2865
2975
  }
@@ -2888,9 +2998,10 @@
2888
2998
  block-size: var(--control-height);
2889
2999
  padding-inline: var(--input-addon-padding-inline);
2890
3000
  font-size: var(--control-font-size);
2891
- color: hsl(var(--input-addon-color));
3001
+ color: hsl(var(--input-addon-color, var(--muted-foreground)));
2892
3002
  background-color: hsl(var(--input-addon-background));
2893
- border: var(--control-border-width) solid hsl(var(--input));
3003
+ border: var(--control-border-width, var(--stroke-hairline)) solid
3004
+ hsl(var(--input) / var(--input-alpha, 100%));
2894
3005
  white-space: nowrap;
2895
3006
  }
2896
3007
 
@@ -2945,7 +3056,7 @@
2945
3056
  .ui-switch-spinner {
2946
3057
  inline-size: var(--switch-spinner-size);
2947
3058
  block-size: var(--switch-spinner-size);
2948
- color: hsl(var(--primary));
3059
+ color: hsl(var(--text-brand, var(--primary)));
2949
3060
  animation: spin 1s linear infinite;
2950
3061
  }
2951
3062
 
@@ -2961,7 +3072,10 @@
2961
3072
  }
2962
3073
 
2963
3074
  .ui-switch:has(.ui-switch-content)[data-state="unchecked"] {
2964
- background: var(--switch-unchecked-background, hsl(var(--muted-foreground)));
3075
+ background: var(
3076
+ --switch-unchecked-background,
3077
+ hsl(var(--muted-foreground) / var(--switch-unchecked-background-alpha, 100%))
3078
+ );
2965
3079
  }
2966
3080
 
2967
3081
  .ui-switch[data-state="unchecked"] .ui-switch-content {
@@ -3022,7 +3136,7 @@
3022
3136
  justify-content: center;
3023
3137
  inline-size: 0;
3024
3138
  font-size: var(--slider-mark-font-size);
3025
- color: hsl(var(--slider-mark-color));
3139
+ color: hsl(var(--slider-mark-color, var(--muted-foreground)));
3026
3140
  white-space: nowrap;
3027
3141
  cursor: pointer;
3028
3142
  }
@@ -3046,7 +3160,8 @@
3046
3160
  margin-inline-start: calc(var(--slider-dot-size) / -2);
3047
3161
  border-radius: var(--radius-pill);
3048
3162
  background: hsl(var(--slider-dot-background));
3049
- border: var(--control-border-width) solid hsl(var(--slider-dot-border-color));
3163
+ border: var(--control-border-width, var(--stroke-hairline)) solid
3164
+ hsl(var(--slider-dot-border-color));
3050
3165
  }
3051
3166
 
3052
3167
  .ui-slider[data-orientation="vertical"] .ui-slider-dot {
@@ -3105,7 +3220,10 @@
3105
3220
 
3106
3221
  .ui-slider-tooltip-content {
3107
3222
  padding-inline: var(--slider-tooltip-padding-inline);
3108
- border-radius: var(--slider-tooltip-radius);
3223
+ border-radius: var(
3224
+ --slider-tooltip-radius,
3225
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
3226
+ );
3109
3227
  background: hsl(var(--slider-tooltip-background));
3110
3228
  color: hsl(var(--slider-tooltip-color));
3111
3229
  font-size: var(--slider-tooltip-font-size);
@@ -3153,15 +3271,16 @@
3153
3271
  block-size: var(--control-height);
3154
3272
  padding-inline: var(--control-padding-x);
3155
3273
  font-size: var(--control-font-size);
3156
- color: hsl(var(--choice-button-color));
3274
+ color: hsl(var(--choice-button-color, var(--foreground)));
3157
3275
  background: hsl(var(--choice-button-background));
3158
- border: var(--control-border-width) solid hsl(var(--choice-button-border-color));
3276
+ border: var(--control-border-width, var(--stroke-hairline)) solid
3277
+ hsl(var(--choice-button-border-color));
3159
3278
  border-inline-start-width: 0;
3160
3279
  cursor: pointer;
3161
3280
  }
3162
3281
 
3163
3282
  .ui-radio-button:first-child {
3164
- border-inline-start-width: var(--control-border-width);
3283
+ border-inline-start-width: var(--control-border-width, var(--stroke-hairline));
3165
3284
  border-start-start-radius: var(--control-radius);
3166
3285
  border-end-start-radius: var(--control-radius);
3167
3286
  }
@@ -3172,8 +3291,11 @@
3172
3291
  }
3173
3292
 
3174
3293
  .ui-radio-button[data-state="checked"] {
3175
- color: hsl(var(--choice-button-selected-color, var(--primary)));
3176
- border-color: hsl(var(--choice-button-selected-border-color, var(--primary)));
3294
+ color: hsl(var(--choice-button-selected-color, var(--text-brand, var(--primary))));
3295
+ border-color: hsl(
3296
+ var(--choice-button-selected-border-color, var(--primary)) /
3297
+ var(--choice-button-selected-border-color-alpha, 100%)
3298
+ );
3177
3299
  }
3178
3300
 
3179
3301
  .ui-radio-button-bar[data-button-style="solid"] .ui-radio-button[data-state="checked"] {