@godxjp/ui 28.13.0 → 29.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 (159) 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 +4965 -970
  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 +20 -2
  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 +18 -2
  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/lib/control-styles.d.ts +31 -11
  72. package/dist/lib/control-styles.js +6 -6
  73. package/dist/lib/overlay-portal.d.ts +20 -0
  74. package/dist/lib/overlay-portal.js +93 -0
  75. package/dist/props/components/app.prop.d.ts +12 -0
  76. package/dist/props/components/charts.prop.d.ts +30 -0
  77. package/dist/props/components/index.d.ts +1 -1
  78. package/dist/props/components/navigation.prop.d.ts +21 -2
  79. package/dist/props/components/query.prop.d.ts +36 -2
  80. package/dist/props/registry.d.ts +46 -1
  81. package/dist/props/registry.js +38 -3
  82. package/dist/styles/alert-layout.css +34 -14
  83. package/dist/styles/badge-layout.css +10 -6
  84. package/dist/styles/base.css +14 -5
  85. package/dist/styles/card-layout.css +19 -8
  86. package/dist/styles/chart-layout.css +22 -3
  87. package/dist/styles/control.css +165 -59
  88. package/dist/styles/data-display-layout.css +129 -36
  89. package/dist/styles/data-entry-layout.css +23 -87
  90. package/dist/styles/dialog-layout.css +49 -19
  91. package/dist/styles/float-button-layout.css +5 -5
  92. package/dist/styles/focus-ring.css +9 -5
  93. package/dist/styles/layout.css +42 -15
  94. package/dist/styles/logo-layout.css +1 -1
  95. package/dist/styles/motion.css +1 -1
  96. package/dist/styles/navigation-layout.css +90 -29
  97. package/dist/styles/shell-layout.css +63 -40
  98. package/dist/styles/table-layout.css +56 -17
  99. package/dist/styles/text-layout.css +13 -4
  100. package/dist/styles/toggle.css +8 -2
  101. package/dist/tokens/components/actions.css +1 -1
  102. package/dist/tokens/components/attachments.css +4 -4
  103. package/dist/tokens/components/badge.css +4 -4
  104. package/dist/tokens/components/callout.css +1 -1
  105. package/dist/tokens/components/card.css +9 -4
  106. package/dist/tokens/components/chart.css +10 -1
  107. package/dist/tokens/components/chat-bubble.css +1 -1
  108. package/dist/tokens/components/control.css +28 -10
  109. package/dist/tokens/components/conversations.css +2 -1
  110. package/dist/tokens/components/data-display.css +12 -7
  111. package/dist/tokens/components/descriptions.css +1 -1
  112. package/dist/tokens/components/draggable-panel.css +1 -1
  113. package/dist/tokens/components/feedback.css +28 -8
  114. package/dist/tokens/components/float-button.css +1 -1
  115. package/dist/tokens/components/legal-document.css +1 -1
  116. package/dist/tokens/components/logo.css +1 -1
  117. package/dist/tokens/components/mega-menu.css +5 -3
  118. package/dist/tokens/components/navigation.css +21 -7
  119. package/dist/tokens/components/segmented.css +8 -3
  120. package/dist/tokens/components/shell.css +19 -5
  121. package/dist/tokens/components/table.css +9 -1
  122. package/dist/tokens/components/thought-chain.css +1 -1
  123. package/dist/tokens/components/toggle.css +2 -0
  124. package/dist/tokens/components/tree.css +3 -1
  125. package/dist/tokens/components/upload.css +6 -6
  126. package/dist/tokens/components/welcome.css +1 -1
  127. package/dist/tokens/foundation.css +28 -1
  128. package/docs/COMPOSITION-VS-COMPONENT.md +31 -0
  129. package/docs/CUSTOMER-THEMING.md +637 -1
  130. package/docs/FRAME-COVERAGE-REPORT.md +3 -2
  131. package/docs/GLASSMORPHISM-STANDARD.md +196 -0
  132. package/docs/THEME-API-COVERAGE.md +538 -0
  133. package/docs/TOKEN-RESOLUTION.md +195 -0
  134. package/docs/TOKENS.md +63 -24
  135. package/docs/asset-modules.d.ts +7 -0
  136. package/docs/data-display/charts.tsx +80 -0
  137. package/docs/data-display/data-table/index.tsx +30 -0
  138. package/docs/data-display/popover.tsx +1 -1
  139. package/docs/data-display/table.tsx +52 -0
  140. package/docs/feedback/sheet.tsx +10 -10
  141. package/docs/foundation/density.tsx +4 -4
  142. package/docs/i18n/messages/en.json +502 -0
  143. package/docs/i18n/messages/ja.json +502 -0
  144. package/docs/i18n/messages/vi.json +502 -0
  145. package/docs/layout/account-chip.tsx +2 -2
  146. package/docs/layout/responsive-grid.tsx +1 -1
  147. package/docs/navigation/toolbar.tsx +20 -12
  148. package/docs/providers/theme-scope.tsx +186 -0
  149. package/docs/showcase/caimono-price-comparison.tsx +911 -0
  150. package/docs/showcase/case4-login.tsx +2 -2
  151. package/docs/showcase/permission-matrix.tsx +13 -5
  152. package/docs/showcase/table-pagination.tsx +2 -1
  153. package/docs/showcase/tenant-brand-color.tsx +338 -0
  154. package/docs/showcase/theme-lab.tsx +2125 -0
  155. package/docs/themes/flat.css +462 -0
  156. package/docs/themes/glassmorphism.css +958 -0
  157. package/docs/themes/index.ts +200 -0
  158. package/package.json +4 -3
  159. package/scripts/explain-token.mjs +382 -0
@@ -151,9 +151,16 @@
151
151
  overflow: clip;
152
152
  overflow-clip-margin: var(--focus-ring-clip-margin);
153
153
  border-inline-end: 1px solid hsl(var(--border));
154
- background: hsl(var(--card));
154
+
155
+ background: var(
156
+ --sidebar-surface-background,
157
+ hsl(var(--card) / var(--sidebar-surface-background-alpha, var(--card-alpha, 100%)))
158
+ );
155
159
 
156
160
  background-image: var(--sidebar-gradient);
161
+
162
+ backdrop-filter: blur(var(--sidebar-backdrop-blur-size))
163
+ saturate(var(--surface-backdrop-saturate, 160%));
157
164
  color: hsl(var(--foreground));
158
165
  }
159
166
 
@@ -168,7 +175,7 @@
168
175
  overflow: clip;
169
176
  overflow-clip-margin: var(--focus-ring-clip-margin);
170
177
  border-inline-end: 1px solid hsl(var(--border));
171
- background: hsl(var(--muted));
178
+ background: var(--app-shell-nav-rail-background, hsl(var(--muted)));
172
179
  color: hsl(var(--foreground));
173
180
  padding-block: var(--app-shell-nav-rail-inset);
174
181
  }
@@ -252,9 +259,13 @@
252
259
  gap: var(--app-shell-bar-gap);
253
260
  padding-inline: var(--app-shell-bar-inset);
254
261
  border-bottom: 1px solid hsl(var(--border));
255
- background: hsl(var(--card));
262
+
263
+ background: var(--app-shell-bar-background, hsl(var(--card) / var(--card-alpha, 100%)));
256
264
 
257
265
  background-image: var(--topbar-gradient);
266
+
267
+ backdrop-filter: blur(var(--app-shell-bar-backdrop-blur-size))
268
+ saturate(var(--surface-backdrop-saturate, 160%));
258
269
  }
259
270
 
260
271
  .app-main {
@@ -481,9 +492,12 @@
481
492
  height: var(--auth-requester-icon-size);
482
493
  align-items: center;
483
494
  justify-content: center;
484
- border-radius: var(--radius-sm);
495
+ border-radius: var(
496
+ --radius-sm,
497
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
498
+ );
485
499
  background: hsl(var(--accent));
486
- color: hsl(var(--primary));
500
+ color: hsl(var(--text-brand, var(--primary)));
487
501
  }
488
502
 
489
503
  .ui-auth-requester-icon > svg {
@@ -498,7 +512,7 @@
498
512
  align-items: center;
499
513
  gap: var(--auth-account-summary-gap);
500
514
  padding: var(--auth-account-summary-padding);
501
- border-radius: var(--radius-md);
515
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
502
516
  background: hsl(var(--muted));
503
517
  }
504
518
 
@@ -645,7 +659,7 @@
645
659
  gap: var(--space-3);
646
660
  padding-inline: var(--centered-shell-bar-padding-x);
647
661
  border-bottom: 1px solid hsl(var(--border));
648
- background: hsl(var(--card));
662
+ background: hsl(var(--card) / var(--card-alpha, 100%));
649
663
 
650
664
  background-image: var(--topbar-gradient);
651
665
  }
@@ -1185,8 +1199,8 @@
1185
1199
 
1186
1200
  --org-switcher-list-offset: var(--org-switcher-sheet-inset);
1187
1201
  max-height: var(--org-switcher-sheet-max-height);
1188
- border-start-start-radius: var(--radius-lg);
1189
- border-start-end-radius: var(--radius-lg);
1202
+ border-start-start-radius: var(--radius-lg, var(--radius));
1203
+ border-start-end-radius: var(--radius-lg, var(--radius));
1190
1204
  }
1191
1205
 
1192
1206
  .ui-org-switcher-command {
@@ -1197,7 +1211,7 @@
1197
1211
 
1198
1212
  .ui-org-switcher-command .ui-command-input-wrapper {
1199
1213
 
1200
- border: 1px solid hsl(var(--input));
1214
+ border: 1px solid hsl(var(--input) / var(--input-alpha, 100%));
1201
1215
  border-radius: var(--control-radius);
1202
1216
 
1203
1217
  margin-block: var(--org-switcher-search-space-block);
@@ -1256,8 +1270,8 @@
1256
1270
 
1257
1271
  .ui-app-launcher-sheet {
1258
1272
  max-height: var(--app-launcher-sheet-max-height);
1259
- border-start-start-radius: var(--radius-lg);
1260
- border-start-end-radius: var(--radius-lg);
1273
+ border-start-start-radius: var(--radius-lg, var(--radius));
1274
+ border-start-end-radius: var(--radius-lg, var(--radius));
1261
1275
  }
1262
1276
 
1263
1277
  [data-slot="dialog-overlay"].ui-app-launcher-launchpad-overlay {
@@ -1342,7 +1356,7 @@
1342
1356
  justify-content: flex-start;
1343
1357
  gap: var(--app-launcher-launchpad-tile-gap);
1344
1358
  padding: var(--app-launcher-launchpad-tile-padding);
1345
- border-radius: var(--app-launcher-launchpad-tile-radius);
1359
+ border-radius: var(--app-launcher-launchpad-tile-radius, var(--radius));
1346
1360
  }
1347
1361
 
1348
1362
  .ui-app-launcher-launchpad .ui-app-launcher-tile:hover,
@@ -1355,7 +1369,7 @@
1355
1369
  width: var(--app-launcher-launchpad-mark-size);
1356
1370
  height: var(--app-launcher-launchpad-mark-size);
1357
1371
  border: 1px solid var(--app-launcher-launchpad-mark-border-color);
1358
- border-radius: var(--app-launcher-launchpad-mark-radius);
1372
+ border-radius: var(--app-launcher-launchpad-mark-radius, var(--radius));
1359
1373
  background: var(--app-launcher-launchpad-mark-background);
1360
1374
  box-shadow: var(--app-launcher-launchpad-mark-shadow);
1361
1375
  color: hsl(var(--foreground));
@@ -1431,7 +1445,7 @@
1431
1445
  justify-content: center;
1432
1446
  gap: var(--app-launcher-tile-gap);
1433
1447
  padding: var(--app-launcher-tile-padding);
1434
- border-radius: var(--app-launcher-tile-radius);
1448
+ border-radius: var(--app-launcher-tile-radius, var(--radius));
1435
1449
  color: hsl(var(--app-launcher-tile-color));
1436
1450
  text-align: center;
1437
1451
  text-decoration: none;
@@ -1441,7 +1455,10 @@
1441
1455
  }
1442
1456
 
1443
1457
  .ui-app-launcher-tile:hover {
1444
- background: hsl(var(--app-launcher-tile-hover-background, var(--accent)));
1458
+ background: hsl(
1459
+ var(--app-launcher-tile-hover-background, var(--accent)) /
1460
+ var(--app-launcher-tile-hover-background-alpha, 100%)
1461
+ );
1445
1462
  color: hsl(var(--app-launcher-tile-hover-color, var(--accent-foreground)));
1446
1463
  }
1447
1464
 
@@ -1456,7 +1473,7 @@
1456
1473
  flex: 0 0 auto;
1457
1474
  place-items: center;
1458
1475
  overflow: hidden;
1459
- border-radius: var(--app-launcher-mark-radius);
1476
+ border-radius: var(--app-launcher-mark-radius, var(--radius));
1460
1477
  background: hsl(var(--app-launcher-mark-background));
1461
1478
  color: hsl(var(--app-launcher-mark-foreground));
1462
1479
  font-size: var(--app-launcher-mark-font-size);
@@ -1544,7 +1561,8 @@
1544
1561
  flex: 0 0 auto;
1545
1562
  place-items: center;
1546
1563
  border-radius: var(--radius);
1547
- color: white;
1564
+
1565
+ color: var(--sidebar-logo-mark-color, white);
1548
1566
  font-size: var(--sidebar-logo-mark-font-size);
1549
1567
  font-weight: 700;
1550
1568
  }
@@ -1637,7 +1655,7 @@
1637
1655
  gap: var(--sidebar-nav-item-gap);
1638
1656
  padding-inline: var(--sidebar-nav-item-padding-x);
1639
1657
  border: 0;
1640
- border-radius: var(--sidebar-nav-item-radius);
1658
+ border-radius: var(--sidebar-nav-item-radius, calc(var(--radius) - 1px));
1641
1659
  background: transparent;
1642
1660
 
1643
1661
  color: var(--sidebar-nav-item-foreground, hsl(var(--muted-foreground)));
@@ -1664,7 +1682,12 @@
1664
1682
  );
1665
1683
  color: var(
1666
1684
  --sidebar-item-active-foreground,
1667
- hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels)))
1685
+ hsl(
1686
+ var(
1687
+ --text-primary,
1688
+ var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels))
1689
+ )
1690
+ )
1668
1691
  );
1669
1692
  font-weight: var(--font-weight-medium);
1670
1693
  }
@@ -1786,7 +1809,12 @@
1786
1809
  background: transparent;
1787
1810
  color: var(
1788
1811
  --sidebar-item-active-foreground,
1789
- hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels)))
1812
+ hsl(
1813
+ var(
1814
+ --text-primary,
1815
+ var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels))
1816
+ )
1817
+ )
1790
1818
  );
1791
1819
  font-weight: var(--font-weight-medium);
1792
1820
  }
@@ -1888,7 +1916,7 @@
1888
1916
  width: 0.5625rem;
1889
1917
  height: 0.5625rem;
1890
1918
  border-radius: var(--radius-pill);
1891
- border: 1.5px solid hsl(var(--card));
1919
+ border: 1.5px solid hsl(var(--card) / var(--card-alpha, 100%));
1892
1920
  background: hsl(var(--success));
1893
1921
  }
1894
1922
 
@@ -2031,6 +2059,10 @@
2031
2059
  justify-content: center;
2032
2060
  }
2033
2061
 
2062
+ :is(.ui-topbar-start, .ui-topbar-center, .ui-topbar-end) > *:has(.ui-topbar-item) {
2063
+ align-self: stretch;
2064
+ }
2065
+
2034
2066
  .ui-topbar-end {
2035
2067
  max-width: 100%;
2036
2068
  flex: 0 1 auto;
@@ -2076,7 +2108,10 @@
2076
2108
  }
2077
2109
 
2078
2110
  .ui-topbar-item:hover {
2079
- background: hsl(var(--topbar-item-hover-background, var(--accent)));
2111
+ background: hsl(
2112
+ var(--topbar-item-hover-background, var(--accent)) /
2113
+ var(--topbar-item-hover-background-alpha, 100%)
2114
+ );
2080
2115
  color: hsl(var(--topbar-item-hover-color, var(--accent-foreground)));
2081
2116
  }
2082
2117
 
@@ -2184,18 +2219,6 @@
2184
2219
  cursor: default;
2185
2220
  }
2186
2221
 
2187
- .tb-chip-icon {
2188
- display: grid;
2189
- width: var(--topbar-chip-icon-size);
2190
- height: var(--topbar-chip-icon-size);
2191
- flex: 0 0 auto;
2192
- place-items: center;
2193
- border-radius: calc(var(--radius) - 2px);
2194
- color: white;
2195
- font-size: var(--topbar-chip-icon-font-size);
2196
- font-weight: 700;
2197
- }
2198
-
2199
2222
  .tb-chip-label {
2200
2223
  min-width: 0;
2201
2224
  overflow: hidden;
@@ -2228,7 +2251,7 @@
2228
2251
  align-items: center;
2229
2252
  gap: var(--space-2);
2230
2253
  padding-inline: var(--space-2);
2231
- border: 1px solid hsl(var(--input));
2254
+ border: 1px solid hsl(var(--input) / var(--input-alpha, 100%));
2232
2255
  border-radius: var(--radius);
2233
2256
  background: hsl(var(--background));
2234
2257
  color: hsl(var(--muted-foreground));
@@ -2451,7 +2474,7 @@
2451
2474
  gap: var(--mobile-shell-region-gap);
2452
2475
  padding-block-start: var(--mobile-shell-safe-inset-block-start);
2453
2476
  padding-inline: var(--mobile-shell-padding-inline);
2454
- background: hsl(var(--card));
2477
+ background: hsl(var(--card) / var(--card-alpha, 100%));
2455
2478
  }
2456
2479
 
2457
2480
  .ui-mobile-shell-header {
@@ -2466,7 +2489,7 @@
2466
2489
  gap: var(--mobile-shell-region-gap);
2467
2490
  padding-inline: var(--mobile-shell-padding-inline);
2468
2491
  border-block-end: 1px solid hsl(var(--border));
2469
- background: hsl(var(--card));
2492
+ background: hsl(var(--card) / var(--card-alpha, 100%));
2470
2493
  background-image: var(--topbar-gradient);
2471
2494
  }
2472
2495
 
@@ -2509,7 +2532,7 @@
2509
2532
  padding-block: var(--mobile-shell-actions-padding-block);
2510
2533
  padding-inline: var(--mobile-shell-padding-inline);
2511
2534
  border-block-start: 1px solid hsl(var(--border));
2512
- background: hsl(var(--card));
2535
+ background: hsl(var(--card) / var(--card-alpha, 100%));
2513
2536
  }
2514
2537
 
2515
2538
  .ui-mobile-shell-tabbar {
@@ -2522,7 +2545,7 @@
2522
2545
  padding-block-end: var(--mobile-shell-safe-inset-block-end);
2523
2546
  padding-inline: var(--mobile-shell-safe-inset-inline);
2524
2547
  border-block-start: 1px solid hsl(var(--border));
2525
- background: hsl(var(--card));
2548
+ background: hsl(var(--card) / var(--card-alpha, 100%));
2526
2549
  }
2527
2550
 
2528
2551
  .ui-mobile-shell-tabbar > * {
@@ -24,14 +24,17 @@
24
24
 
25
25
  .ui-table-row[data-tone="success"] {
26
26
  --table-row-tone-color: var(--mark-success, var(--text-success));
27
+ --table-row-tone-surface: var(--surface-success);
27
28
  }
28
29
 
29
30
  .ui-table-row[data-tone="warning"] {
30
31
  --table-row-tone-color: var(--mark-warning, var(--text-warning));
32
+ --table-row-tone-surface: var(--surface-warning);
31
33
  }
32
34
 
33
35
  .ui-table-row[data-tone="info"] {
34
36
  --table-row-tone-color: var(--mark-info, var(--text-info));
37
+ --table-row-tone-surface: var(--surface-info);
35
38
  }
36
39
 
37
40
  .ui-table-row[data-tone="attention"] {
@@ -40,12 +43,19 @@
40
43
 
41
44
  .ui-table-row[data-tone="destructive"] {
42
45
  --table-row-tone-color: var(--mark-destructive, var(--text-error));
46
+ --table-row-tone-surface: var(--surface-destructive);
43
47
  }
44
48
 
45
49
  .ui-table-row[data-tone] {
46
50
  background-image: linear-gradient(
47
- hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha)),
48
- hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha))
51
+ var(
52
+ --table-row-tone-surface,
53
+ hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha))
54
+ ),
55
+ var(
56
+ --table-row-tone-surface,
57
+ hsl(var(--table-row-tone-color) / var(--table-row-tone-wash-alpha))
58
+ )
49
59
  );
50
60
  }
51
61
 
@@ -98,7 +108,10 @@
98
108
  padding: var(--table-cell-padding-y) var(--table-cell-space-x, var(--space-section-active));
99
109
  text-align: start;
100
110
  vertical-align: middle;
101
- background: var(--table-header-background, hsl(var(--muted)));
111
+ background: var(
112
+ --table-header-background,
113
+ hsl(var(--muted) / var(--table-header-background-alpha, 100%))
114
+ );
102
115
  font-size: var(--table-head-font-size);
103
116
 
104
117
  font-weight: var(--table-head-font-weight);
@@ -257,8 +270,16 @@
257
270
  overflow: clip;
258
271
 
259
272
  min-inline-size: min-content;
260
- border: 1px solid hsl(var(--border));
261
- border-radius: var(--radius-md);
273
+
274
+ border: 1px solid var(--table-border-color, hsl(var(--border)));
275
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
276
+
277
+ background-color: var(
278
+ --table-surface-background,
279
+ hsl(var(--card) / var(--table-surface-background-alpha))
280
+ );
281
+ backdrop-filter: blur(var(--table-surface-backdrop-blur-size))
282
+ saturate(var(--surface-backdrop-saturate, 160%));
262
283
  }
263
284
 
264
285
  .ui-data-table-surface[data-preset="action-collection"] {
@@ -388,7 +409,7 @@
388
409
  .ui-data-table-surface
389
410
  tbody
390
411
  :is(.ui-data-table-pin-end, .ui-data-table-pin-start) {
391
- background-color: hsl(var(--card-background, var(--card)));
412
+ background-color: hsl(var(--card-background, var(--card)) / var(--card-alpha, 100%));
392
413
  }
393
414
 
394
415
  th.ui-data-table-pin-end,
@@ -423,16 +444,28 @@
423
444
  .ui-data-table-surface tbody tr:hover > .ui-data-table-pin-end,
424
445
  .ui-data-table-surface tbody tr:hover > .ui-data-table-pin-start {
425
446
  background-image: linear-gradient(
426
- var(--table-row-hover-background, hsl(var(--accent) / 0.7)),
427
- var(--table-row-hover-background, hsl(var(--accent) / 0.7))
447
+ var(
448
+ --table-row-hover-background,
449
+ hsl(var(--accent) / var(--table-row-hover-background-alpha, 0.7))
450
+ ),
451
+ var(
452
+ --table-row-hover-background,
453
+ hsl(var(--accent) / var(--table-row-hover-background-alpha, 0.7))
454
+ )
428
455
  );
429
456
  }
430
457
 
431
458
  .ui-data-table-surface tbody tr[data-state="selected"] > .ui-data-table-pin-end,
432
459
  .ui-data-table-surface tbody tr[data-state="selected"] > .ui-data-table-pin-start {
433
460
  background-image: linear-gradient(
434
- var(--table-row-selected-background, hsl(var(--muted) / 0.3)),
435
- var(--table-row-selected-background, hsl(var(--muted) / 0.3))
461
+ var(
462
+ --table-row-selected-background,
463
+ hsl(var(--muted) / var(--table-row-selected-background-alpha, 0.3))
464
+ ),
465
+ var(
466
+ --table-row-selected-background,
467
+ hsl(var(--muted) / var(--table-row-selected-background-alpha, 0.3))
468
+ )
436
469
  );
437
470
  }
438
471
 
@@ -478,7 +511,7 @@
478
511
  }
479
512
 
480
513
  .ui-data-table-filter-trigger[data-filtered] {
481
- color: hsl(var(--primary));
514
+ color: hsl(var(--text-brand, var(--primary)));
482
515
  }
483
516
 
484
517
  .ui-data-table-selection-menu {
@@ -605,7 +638,10 @@
605
638
  .ui-data-table-root .ui-data-table-skeleton-check {
606
639
  inline-size: var(--table-skeleton-check-size);
607
640
  block-size: var(--table-skeleton-check-size);
608
- border-radius: var(--table-skeleton-radius);
641
+ border-radius: var(
642
+ --table-skeleton-radius,
643
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
644
+ );
609
645
  }
610
646
 
611
647
  .ui-data-table-root .ui-data-table-skeleton-line {
@@ -613,7 +649,10 @@
613
649
  }
614
650
 
615
651
  .ui-data-table-sort-button {
616
- border-radius: var(--table-skeleton-radius);
652
+ border-radius: var(
653
+ --table-skeleton-radius,
654
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
655
+ );
617
656
  }
618
657
  }
619
658
 
@@ -793,7 +832,7 @@
793
832
 
794
833
  height: auto;
795
834
  border: var(--stroke-hairline) solid hsl(var(--border));
796
- border-radius: var(--radius-md);
835
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
797
836
  padding: var(--table-stacked-collection-card-padding-y)
798
837
  var(--table-stacked-collection-card-padding-x);
799
838
  margin-block-end: var(--table-stacked-collection-card-gap);
@@ -837,7 +876,7 @@
837
876
 
838
877
  height: auto;
839
878
  border: var(--stroke-hairline) solid hsl(var(--border));
840
- border-radius: var(--radius-md);
879
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
841
880
  padding: var(--table-stacked-collection-card-padding-y)
842
881
  var(--table-stacked-collection-card-padding-x);
843
882
  margin-block-end: var(--table-stacked-collection-card-gap);
@@ -881,7 +920,7 @@
881
920
 
882
921
  height: auto;
883
922
  border: var(--stroke-hairline) solid hsl(var(--border));
884
- border-radius: var(--radius-md);
923
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
885
924
  padding: var(--table-stacked-collection-card-padding-y)
886
925
  var(--table-stacked-collection-card-padding-x);
887
926
  margin-block-end: var(--table-stacked-collection-card-gap);
@@ -925,7 +964,7 @@
925
964
 
926
965
  height: auto;
927
966
  border: var(--stroke-hairline) solid hsl(var(--border));
928
- border-radius: var(--radius-md);
967
+ border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
929
968
  padding: var(--table-stacked-collection-card-padding-y)
930
969
  var(--table-stacked-collection-card-padding-x);
931
970
  margin-block-end: var(--table-stacked-collection-card-gap);
@@ -111,7 +111,7 @@
111
111
  [data-slot="text"][data-tone="primary"],
112
112
  [data-slot="heading"][data-tone="primary"],
113
113
  [data-slot="icon"][data-tone="primary"] {
114
- color: hsl(var(--primary));
114
+ color: hsl(var(--text-brand, var(--primary)));
115
115
  }
116
116
 
117
117
  [data-slot="text"][data-tone="success"],
@@ -330,7 +330,10 @@
330
330
  [data-slot="heading"] kbd {
331
331
  background: hsl(var(--muted));
332
332
  border: var(--stroke-hairline) solid hsl(var(--border));
333
- border-radius: var(--prose-code-radius);
333
+ border-radius: var(
334
+ --prose-code-radius,
335
+ calc(var(--radius) / var(--radius-ratio) / var(--radius-ratio))
336
+ );
334
337
  padding-inline: var(--prose-code-space-inline);
335
338
  font-family: var(--font-family-mono, ui-monospace, "SFMono-Regular", monospace);
336
339
  font-size: var(--prose-code-font-size);
@@ -358,7 +361,7 @@
358
361
  border: 0;
359
362
  background: none;
360
363
  padding: 0;
361
- color: var(--text-action-color, hsl(var(--primary)));
364
+ color: var(--text-action-color, hsl(var(--text-brand, var(--primary))));
362
365
  font: inherit;
363
366
  cursor: pointer;
364
367
  vertical-align: baseline;
@@ -367,11 +370,17 @@
367
370
  .ui-typography-actions > .ui-typography-action:first-child {
368
371
  margin-inline-start: 0;
369
372
  }
373
+
370
374
  .ui-typography-action:hover,
371
375
  .ui-typography-action:focus-visible {
372
376
  color: var(
373
377
  --text-action-color-hover,
374
- hsl(var(--primary-hover, from hsl(var(--primary)) var(--primary-hover-channels)))
378
+ hsl(
379
+ var(
380
+ --text-primary,
381
+ var(--primary-hover, from hsl(var(--primary)) var(--primary-hover-channels))
382
+ )
383
+ )
375
384
  );
376
385
  }
377
386
 
@@ -22,11 +22,17 @@
22
22
  }
23
23
 
24
24
  .ui-toggle[data-state="on"] {
25
- border-color: var(--toggle-pressed-border-color, hsl(var(--primary)));
25
+ border-color: var(
26
+ --toggle-pressed-border-color,
27
+ hsl(var(--primary) / var(--toggle-pressed-border-color-alpha, 100%))
28
+ );
26
29
  }
27
30
 
28
31
  .ui-toggle[data-state="on"] .ui-toggle-count {
29
- background: var(--toggle-pressed-count-background, hsl(var(--primary-foreground)));
32
+ background: var(
33
+ --toggle-pressed-count-background,
34
+ hsl(var(--primary-foreground) / var(--toggle-pressed-count-background-alpha, 100%))
35
+ );
30
36
  color: var(--toggle-pressed-count-color, hsl(var(--primary)));
31
37
  }
32
38
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  --actions-padding-block: var(--space-1);
7
7
  --actions-padding-inline: var(--space-1);
8
- --actions-radius: var(--radius);
8
+ --actions-radius: initial;
9
9
 
10
10
  --actions-filled-background: initial;
11
11
  --actions-outlined-border: initial;
@@ -5,13 +5,13 @@
5
5
 
6
6
  --attachments-card-size: 16.75rem;
7
7
  --attachments-card-block-size: 4.25rem;
8
- --attachments-card-radius: var(--radius-lg);
8
+
9
+ --attachments-card-radius: initial;
9
10
  --attachments-card-gap: var(--space-3);
10
11
 
11
12
  --attachments-placeholder-space-inset: var(--space-4);
12
- --attachments-placeholder-radius: var(
13
- --radius-lg
14
- );
13
+
14
+ --attachments-placeholder-radius: initial;
15
15
 
16
16
  --attachments-placeholder-icon-size: var(--icon-size-3xl);
17
17
  --attachments-placeholder-title-font-size: var(--font-size-base);
@@ -5,7 +5,7 @@
5
5
  --badge-space-x: var(--space-2);
6
6
  --badge-space-y: var(--space-1);
7
7
 
8
- --badge-radius: var(--radius-md);
8
+ --badge-radius: initial;
9
9
  --badge-font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
10
10
 
11
11
  --badge-line-height: calc(1 / 0.75);
@@ -21,8 +21,8 @@
21
21
  --badge-tint-fill: 18%;
22
22
  --badge-tint-edge: 45%;
23
23
 
24
- --badge-tint-surface: hsl(var(--card));
25
- --badge-tint-foreground: hsl(var(--card-foreground));
24
+ --badge-tint-surface: initial;
25
+ --badge-tint-foreground: initial;
26
26
 
27
- --badge-color: var(--badge-tint-surface);
27
+ --badge-color: initial;
28
28
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  --callout-rail-width: var(--space-1);
6
6
 
7
- --callout-radius: var(--alert-radius);
7
+ --callout-radius: initial;
8
8
 
9
9
  --callout-space-inset-block: var(--space-3);
10
10
  --callout-space-inset-inline: var(--space-4);
@@ -30,9 +30,9 @@
30
30
  --card-header-background-alpha: 0.55;
31
31
 
32
32
  --card-header-border-bottom: initial;
33
- --card-radius: var(--radius-xl);
33
+ --card-radius: initial;
34
34
 
35
- --card-shadow: var(--shadow-sm);
35
+ --card-shadow: initial;
36
36
 
37
37
  --card-glow: 0 0 0 0 transparent;
38
38
 
@@ -40,6 +40,11 @@
40
40
 
41
41
  --card-tint: transparent;
42
42
 
43
+ --card-tint-end: initial;
44
+ --card-tint-angle: initial;
45
+
46
+ --card-backdrop-blur-size: initial;
47
+
43
48
  --card-accent-rail-width: var(--stroke-2xl);
44
49
 
45
50
  --card-accent-perimeter-width: var(--stroke-hairline);
@@ -69,7 +74,7 @@
69
74
  --stat-card-gap: var(--space-stack-xs);
70
75
  --stat-card-icon-size: var(--icon-size-2xl);
71
76
  --stat-card-icon-glyph-size: var(--icon-size-lg);
72
- --stat-card-icon-radius: var(--radius-md);
77
+ --stat-card-icon-radius: initial;
73
78
 
74
79
  --stat-card-icon-background: initial;
75
80
  --stat-card-icon-foreground: initial;
@@ -82,7 +87,7 @@
82
87
 
83
88
  --card-service-launcher-icon-size: calc(var(--icon-size-2xl) * var(--scaling));
84
89
  --card-service-launcher-icon-glyph-size: calc(var(--icon-size-lg) * var(--scaling));
85
- --card-service-launcher-icon-radius: var(--radius-md);
90
+ --card-service-launcher-icon-radius: initial;
86
91
 
87
92
  --card-service-launcher-icon-background: initial;
88
93
  --card-service-launcher-icon-foreground: initial;
@@ -10,7 +10,7 @@
10
10
  --chart-trend-plot-height: var(--chart-trend-plot-height-xs);
11
11
 
12
12
  --chart-trend-bar-gap: var(--space-2);
13
- --chart-trend-bar-radius: var(--radius-sm);
13
+ --chart-trend-bar-radius: initial;
14
14
 
15
15
  --chart-trend-bar-max-width: 1.5rem;
16
16
 
@@ -37,3 +37,12 @@
37
37
 
38
38
  --chart-category-axis-max-fraction: 0.4;
39
39
  }
40
+
41
+ :root {
42
+
43
+ --chart-series-stroke-width: 2;
44
+
45
+ --chart-area-fill-alpha: 0.2;
46
+
47
+ --chart-grid-line-dash: 3 3;
48
+ }
@@ -6,7 +6,7 @@
6
6
  --chat-bubble-foreground: initial;
7
7
 
8
8
  --chat-bubble-border-color: initial;
9
- --chat-bubble-radius: var(--radius-lg);
9
+ --chat-bubble-radius: initial;
10
10
 
11
11
  --chat-bubble-gap: var(--space-3);
12
12