@godxjp/ui 19.6.0 → 20.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/README.md +8 -2
  2. package/dist/app/theme-axes.d.ts +2 -0
  3. package/dist/app/theme-axes.js +45 -0
  4. package/dist/components/charts/chart-cartesian.d.ts +2 -1
  5. package/dist/components/charts/chart-cartesian.js +52 -3
  6. package/dist/components/charts/chart-category-axis.d.ts +55 -0
  7. package/dist/components/charts/chart-category-axis.js +93 -0
  8. package/dist/components/charts/chart-frame.d.ts +10 -1
  9. package/dist/components/charts/chart-frame.js +19 -3
  10. package/dist/components/charts/compact-bar-trend.d.ts +1 -1
  11. package/dist/components/charts/compact-bar-trend.js +2 -0
  12. package/dist/components/charts/pie-chart.d.ts +1 -1
  13. package/dist/components/charts/pie-chart.js +12 -1
  14. package/dist/components/charts/recharts-peer.d.ts +49 -0
  15. package/dist/components/charts/recharts-peer.js +45 -0
  16. package/dist/components/data-display/card.d.ts +14 -3
  17. package/dist/components/data-display/card.js +22 -4
  18. package/dist/components/data-display/code-block.js +6 -2
  19. package/dist/components/data-display/collapsible.d.ts +23 -4
  20. package/dist/components/data-display/collapsible.js +119 -4
  21. package/dist/components/data-display/data-table.d.ts +39 -4
  22. package/dist/components/data-display/data-table.js +802 -270
  23. package/dist/components/data-display/descriptions.d.ts +27 -6
  24. package/dist/components/data-display/descriptions.js +58 -17
  25. package/dist/components/data-display/index.d.ts +5 -1
  26. package/dist/components/data-display/index.js +4 -0
  27. package/dist/components/data-display/legend.d.ts +15 -0
  28. package/dist/components/data-display/legend.js +11 -0
  29. package/dist/components/data-display/list-row.d.ts +10 -1
  30. package/dist/components/data-display/list-row.js +8 -2
  31. package/dist/components/data-display/popover.d.ts +60 -7
  32. package/dist/components/data-display/popover.js +268 -39
  33. package/dist/components/data-display/progress.d.ts +50 -2
  34. package/dist/components/data-display/progress.js +57 -9
  35. package/dist/components/data-display/range-timeline.d.ts +38 -0
  36. package/dist/components/data-display/range-timeline.js +161 -0
  37. package/dist/components/data-display/scroll-area.js +13 -2
  38. package/dist/components/data-display/service-launcher-card.js +10 -10
  39. package/dist/components/data-display/table.d.ts +11 -3
  40. package/dist/components/data-display/table.js +48 -18
  41. package/dist/components/data-display/tree-list.js +4 -9
  42. package/dist/components/data-entry/calendar.d.ts +2 -2
  43. package/dist/components/data-entry/calendar.js +79 -33
  44. package/dist/components/data-entry/cascader.d.ts +1 -1
  45. package/dist/components/data-entry/cascader.js +188 -24
  46. package/dist/components/data-entry/checkbox.d.ts +19 -6
  47. package/dist/components/data-entry/checkbox.js +55 -16
  48. package/dist/components/data-entry/choice-option.d.ts +1 -1
  49. package/dist/components/data-entry/color-picker.d.ts +1 -1
  50. package/dist/components/data-entry/color-picker.js +17 -5
  51. package/dist/components/data-entry/control-appearance.d.ts +64 -0
  52. package/dist/components/data-entry/control-appearance.js +39 -0
  53. package/dist/components/data-entry/control-surface.d.ts +61 -0
  54. package/dist/components/data-entry/control-surface.js +39 -0
  55. package/dist/components/data-entry/date-picker.d.ts +1 -1
  56. package/dist/components/data-entry/date-picker.js +344 -113
  57. package/dist/components/data-entry/date-range-picker.d.ts +2 -2
  58. package/dist/components/data-entry/date-range-picker.js +278 -140
  59. package/dist/components/data-entry/field.js +0 -1
  60. package/dist/components/data-entry/form-field.d.ts +1 -1
  61. package/dist/components/data-entry/form-field.js +39 -4
  62. package/dist/components/data-entry/form.d.ts +4 -0
  63. package/dist/components/data-entry/form.js +5 -3
  64. package/dist/components/data-entry/index.d.ts +7 -3
  65. package/dist/components/data-entry/index.js +10 -1
  66. package/dist/components/data-entry/input-otp.d.ts +1 -1
  67. package/dist/components/data-entry/input.d.ts +12 -34
  68. package/dist/components/data-entry/input.js +92 -24
  69. package/dist/components/data-entry/label.d.ts +3 -2
  70. package/dist/components/data-entry/label.js +23 -10
  71. package/dist/components/data-entry/month-picker.d.ts +2 -2
  72. package/dist/components/data-entry/month-picker.js +47 -10
  73. package/dist/components/data-entry/month-range-picker.d.ts +2 -2
  74. package/dist/components/data-entry/month-range-picker.js +51 -11
  75. package/dist/components/data-entry/number-input.d.ts +7 -0
  76. package/dist/components/data-entry/number-input.js +147 -98
  77. package/dist/components/data-entry/password-input.d.ts +1 -1
  78. package/dist/components/data-entry/radio.d.ts +1 -1
  79. package/dist/components/data-entry/radio.js +61 -13
  80. package/dist/components/data-entry/search-input.d.ts +1 -1
  81. package/dist/components/data-entry/search-input.js +16 -2
  82. package/dist/components/data-entry/search-select.d.ts +2 -2
  83. package/dist/components/data-entry/search-select.js +209 -78
  84. package/dist/components/data-entry/select.d.ts +22 -4
  85. package/dist/components/data-entry/select.js +215 -163
  86. package/dist/components/data-entry/slider.d.ts +9 -1
  87. package/dist/components/data-entry/slider.js +87 -9
  88. package/dist/components/data-entry/switch.d.ts +3 -0
  89. package/dist/components/data-entry/switch.js +29 -3
  90. package/dist/components/data-entry/textarea.d.ts +14 -56
  91. package/dist/components/data-entry/textarea.js +80 -33
  92. package/dist/components/data-entry/time-picker.d.ts +2 -2
  93. package/dist/components/data-entry/time-picker.js +333 -109
  94. package/dist/components/data-entry/time-range-picker.d.ts +5 -0
  95. package/dist/components/data-entry/time-range-picker.js +89 -0
  96. package/dist/components/data-entry/transfer.d.ts +1 -1
  97. package/dist/components/data-entry/transfer.js +99 -31
  98. package/dist/components/data-entry/tree-select-strategy.d.ts +1 -1
  99. package/dist/components/data-entry/tree-select.d.ts +1 -1
  100. package/dist/components/data-entry/tree-select.js +197 -92
  101. package/dist/components/data-entry/tree-utils.d.ts +1 -1
  102. package/dist/components/data-entry/tree-utils.js +7 -14
  103. package/dist/components/data-entry/upload-files.d.ts +2 -0
  104. package/dist/components/data-entry/upload-files.js +31 -0
  105. package/dist/components/data-entry/upload-request.d.ts +4 -0
  106. package/dist/components/data-entry/upload-request.js +53 -0
  107. package/dist/components/data-entry/upload-types.d.ts +28 -0
  108. package/dist/components/data-entry/upload-types.js +2 -0
  109. package/dist/components/data-entry/upload.d.ts +2 -2
  110. package/dist/components/data-entry/upload.js +482 -117
  111. package/dist/components/feedback/dialog.d.ts +105 -38
  112. package/dist/components/feedback/dialog.js +268 -193
  113. package/dist/components/feedback/overlay-close-focus.d.ts +31 -0
  114. package/dist/components/feedback/overlay-close-focus.js +31 -0
  115. package/dist/components/feedback/overlay-header-tone.d.ts +1 -1
  116. package/dist/components/feedback/sheet.d.ts +53 -11
  117. package/dist/components/feedback/sheet.js +150 -81
  118. package/dist/components/feedback/tooltip.d.ts +51 -7
  119. package/dist/components/feedback/tooltip.js +107 -25
  120. package/dist/components/general/button.d.ts +1 -1
  121. package/dist/components/general/button.js +7 -3
  122. package/dist/components/general/index.d.ts +1 -0
  123. package/dist/components/general/index.js +2 -0
  124. package/dist/components/general/logo.d.ts +17 -0
  125. package/dist/components/general/logo.js +22 -16
  126. package/dist/components/general/typography.d.ts +3 -0
  127. package/dist/components/general/typography.js +15 -1
  128. package/dist/components/general/visually-hidden.d.ts +3 -0
  129. package/dist/components/general/visually-hidden.js +9 -0
  130. package/dist/components/layout/app-launcher.d.ts +34 -0
  131. package/dist/components/layout/app-launcher.js +228 -0
  132. package/dist/components/layout/app-shell.d.ts +3 -1
  133. package/dist/components/layout/app-shell.js +69 -12
  134. package/dist/components/layout/aspect-ratio.js +0 -1
  135. package/dist/components/layout/auth-divider.js +0 -1
  136. package/dist/components/layout/breadcrumb.d.ts +14 -2
  137. package/dist/components/layout/breadcrumb.js +46 -4
  138. package/dist/components/layout/flex.d.ts +1 -1
  139. package/dist/components/layout/flex.js +41 -3
  140. package/dist/components/layout/index.d.ts +3 -0
  141. package/dist/components/layout/index.js +5 -1
  142. package/dist/components/layout/nav-surface.d.ts +26 -0
  143. package/dist/components/layout/nav-surface.js +17 -0
  144. package/dist/components/layout/org-switcher.d.ts +5 -1
  145. package/dist/components/layout/org-switcher.js +25 -4
  146. package/dist/components/layout/page-container.d.ts +1 -1
  147. package/dist/components/layout/page-container.js +5 -3
  148. package/dist/components/layout/responsive-grid.d.ts +16 -2
  149. package/dist/components/layout/responsive-grid.js +29 -2
  150. package/dist/components/layout/separator.js +0 -1
  151. package/dist/components/layout/sidebar.js +4 -1
  152. package/dist/components/layout/split-pane.d.ts +14 -1
  153. package/dist/components/layout/split-pane.js +26 -13
  154. package/dist/components/layout/topbar-item.d.ts +3 -0
  155. package/dist/components/layout/topbar-item.js +19 -5
  156. package/dist/components/layout/topbar.d.ts +1 -1
  157. package/dist/components/layout/topbar.js +27 -6
  158. package/dist/components/navigation/app-setting-picker.js +21 -2
  159. package/dist/components/navigation/app-setting-toggle.d.ts +16 -0
  160. package/dist/components/navigation/app-setting-toggle.js +96 -0
  161. package/dist/components/navigation/dropdown-menu.d.ts +227 -18
  162. package/dist/components/navigation/dropdown-menu.js +402 -118
  163. package/dist/components/navigation/index.d.ts +2 -0
  164. package/dist/components/navigation/index.js +2 -0
  165. package/dist/components/navigation/pagination-utils.d.ts +2 -1
  166. package/dist/components/navigation/pagination.d.ts +2 -2
  167. package/dist/components/navigation/pagination.js +155 -83
  168. package/dist/components/navigation/steps.d.ts +2 -2
  169. package/dist/components/navigation/steps.js +29 -4
  170. package/dist/components/navigation/tabs.d.ts +29 -16
  171. package/dist/components/navigation/tabs.js +374 -144
  172. package/dist/components/ui/accordion.d.ts +50 -5
  173. package/dist/components/ui/accordion.js +239 -33
  174. package/dist/components/ui/aspect-ratio.d.ts +23 -2
  175. package/dist/components/ui/aspect-ratio.js +15 -13
  176. package/dist/components/ui/avatar.d.ts +29 -4
  177. package/dist/components/ui/avatar.js +111 -25
  178. package/dist/components/ui/hover-card.d.ts +42 -4
  179. package/dist/components/ui/hover-card.js +183 -27
  180. package/dist/components/ui/input-otp.d.ts +26 -28
  181. package/dist/components/ui/input-otp.js +50 -7
  182. package/dist/components/ui/label.js +0 -1
  183. package/dist/components/ui/password-input.d.ts +36 -2
  184. package/dist/components/ui/password-input.js +27 -7
  185. package/dist/components/ui/rating.d.ts +25 -0
  186. package/dist/components/ui/rating.js +67 -27
  187. package/dist/components/ui/segmented.d.ts +12 -3
  188. package/dist/components/ui/segmented.js +17 -2
  189. package/dist/components/ui/separator.d.ts +12 -2
  190. package/dist/components/ui/separator.js +30 -9
  191. package/dist/components/ui/tag-input.d.ts +45 -0
  192. package/dist/components/ui/tag-input.js +109 -27
  193. package/dist/components/ui/toggle-group.d.ts +50 -5
  194. package/dist/components/ui/toggle-group.js +79 -20
  195. package/dist/components/ui/toggle.d.ts +31 -5
  196. package/dist/components/ui/toggle.js +42 -3
  197. package/dist/form/form-context.d.ts +29 -0
  198. package/dist/form/form-context.js +44 -4
  199. package/dist/form/form-field-array.d.ts +22 -0
  200. package/dist/form/form-field-array.js +50 -0
  201. package/dist/form/form-field-control.d.ts +2 -1
  202. package/dist/form/form-field-control.js +116 -40
  203. package/dist/form/form-root.d.ts +2 -1
  204. package/dist/form/form-root.js +142 -23
  205. package/dist/form/index.d.ts +3 -1
  206. package/dist/form/index.js +12 -1
  207. package/dist/i18n/messages/en.json +64 -5
  208. package/dist/i18n/messages/ja.json +64 -5
  209. package/dist/i18n/messages/vi.json +64 -5
  210. package/dist/inertia/index.d.ts +20 -0
  211. package/dist/inertia/index.js +60 -1
  212. package/dist/lib/control-styles.d.ts +25 -3
  213. package/dist/lib/control-styles.js +9 -3
  214. package/dist/lib/datetime/picker-format.d.ts +8 -0
  215. package/dist/lib/datetime/picker-format.js +54 -0
  216. package/dist/lib/slot.d.ts +32 -0
  217. package/dist/lib/slot.js +22 -0
  218. package/dist/lib/variants.d.ts +22 -3
  219. package/dist/lib/variants.js +56 -1
  220. package/dist/props/components/app.prop.d.ts +25 -1
  221. package/dist/props/components/charts.prop.d.ts +21 -0
  222. package/dist/props/components/data-display.prop.d.ts +72 -4
  223. package/dist/props/components/data-entry.prop.d.ts +718 -46
  224. package/dist/props/components/form.prop.d.ts +142 -4
  225. package/dist/props/components/general.prop.d.ts +17 -1
  226. package/dist/props/components/index.d.ts +3 -3
  227. package/dist/props/components/layout.prop.d.ts +281 -11
  228. package/dist/props/components/navigation.prop.d.ts +114 -4
  229. package/dist/props/registry.d.ts +397 -11
  230. package/dist/props/registry.js +526 -11
  231. package/dist/props/vocabulary/content.prop.d.ts +1 -1
  232. package/dist/props/vocabulary/data.prop.d.ts +179 -1
  233. package/dist/props/vocabulary/index.d.ts +5 -5
  234. package/dist/props/vocabulary/interaction.prop.d.ts +68 -3
  235. package/dist/props/vocabulary/layout.prop.d.ts +57 -1
  236. package/dist/props/vocabulary/navigation.prop.d.ts +40 -0
  237. package/dist/props/vocabulary/shared.prop.d.ts +33 -0
  238. package/dist/styles/badge-layout.css +2 -1
  239. package/dist/styles/card-layout.css +26 -4
  240. package/dist/styles/chart-layout.css +15 -0
  241. package/dist/styles/control.css +657 -15
  242. package/dist/styles/core.css +5 -2
  243. package/dist/styles/data-display-layout.css +313 -6
  244. package/dist/styles/data-entry-layout.css +13 -0
  245. package/dist/styles/focus-ring.css +4 -0
  246. package/dist/styles/index.css +5 -2
  247. package/dist/styles/layout.css +327 -4
  248. package/dist/styles/navigation-layout.css +227 -0
  249. package/dist/styles/shell-layout.css +369 -13
  250. package/dist/styles/table-layout.css +95 -6
  251. package/dist/styles/text-layout.css +10 -4
  252. package/dist/tokens/base.css +2 -1
  253. package/dist/tokens/components/badge.css +1 -0
  254. package/dist/tokens/components/chart.css +6 -0
  255. package/dist/tokens/components/control.css +79 -2
  256. package/dist/tokens/components/data-display.css +20 -0
  257. package/dist/tokens/components/descriptions.css +11 -0
  258. package/dist/tokens/components/flex.css +8 -0
  259. package/dist/tokens/components/navigation.css +55 -0
  260. package/dist/tokens/components/shell.css +53 -3
  261. package/dist/tokens/components/table.css +14 -0
  262. package/dist/tokens/foundation.css +2 -0
  263. package/dist/tokens/semantic/layout.css +9 -0
  264. package/docs/COMPONENTS.md +9 -3
  265. package/docs/CONSUMER-RULES.md +13 -0
  266. package/docs/DESIGN-AUTHORITY.md +145 -83
  267. package/docs/DEVELOPMENT.md +4 -3
  268. package/docs/FORMS.md +151 -6
  269. package/docs/FRAME-COVERAGE-REPORT.md +32 -17
  270. package/docs/README.md +15 -15
  271. package/docs/STANDARDS-vocabulary-tokens.md +1 -1
  272. package/docs/TESTING.md +15 -6
  273. package/docs/WHAT-BELONGS-HERE.md +179 -0
  274. package/docs/charts/cjk-category-axis.tsx +81 -0
  275. package/docs/data-display/card/index.tsx +22 -0
  276. package/docs/data-display/data-table/examples/antd-parity.tsx +257 -0
  277. package/docs/data-display/data-table/index.tsx +23 -0
  278. package/docs/data-display/descriptions.tsx +41 -0
  279. package/docs/data-display/legend.tsx +145 -0
  280. package/docs/data-display/progress.tsx +32 -0
  281. package/docs/data-display/scroll-area.tsx +31 -25
  282. package/docs/data-display/table.tsx +104 -45
  283. package/docs/data-display/timeline.tsx +41 -0
  284. package/docs/data-entry/date-picker.tsx +85 -0
  285. package/docs/data-entry/date-range-picker.tsx +26 -0
  286. package/docs/data-entry/form-dynamic-fields.tsx +199 -0
  287. package/docs/data-entry/form.tsx +74 -4
  288. package/docs/data-entry/input-otp.tsx +24 -0
  289. package/docs/data-entry/input.tsx +46 -1
  290. package/docs/data-entry/month-range-picker.tsx +1 -1
  291. package/docs/data-entry/segmented.tsx +1 -1
  292. package/docs/data-entry/select.tsx +29 -2
  293. package/docs/data-entry/switch.tsx +41 -0
  294. package/docs/data-entry/textarea.tsx +38 -0
  295. package/docs/data-entry/time-picker.tsx +85 -1
  296. package/docs/data-entry/time-range-picker.tsx +55 -0
  297. package/docs/data-entry/transfer.tsx +17 -0
  298. package/docs/data-entry/upload.tsx +56 -12
  299. package/docs/feedback/sheet.tsx +1 -1
  300. package/docs/feedback/tooltip.tsx +1 -1
  301. package/docs/general/activity.tsx +2 -2
  302. package/docs/general/button/index.tsx +14 -1
  303. package/docs/general/typography.tsx +14 -1
  304. package/docs/layout/app-launcher.tsx +151 -0
  305. package/docs/layout/app-shell-arrangements.tsx +225 -0
  306. package/docs/layout/app-shell.tsx +11 -0
  307. package/docs/layout/aspect-ratio.tsx +1 -1
  308. package/docs/layout/flex.tsx +50 -0
  309. package/docs/layout/responsive-grid.tsx +21 -1
  310. package/docs/layout/topbar.tsx +5 -9
  311. package/docs/navigation/app-setting-picker.tsx +37 -1
  312. package/docs/navigation/app-setting-toggle.tsx +111 -0
  313. package/docs/navigation/breadcrumb.tsx +48 -0
  314. package/docs/navigation/dropdown-menu.tsx +21 -0
  315. package/docs/navigation/pagination.tsx +52 -0
  316. package/docs/navigation/steps.tsx +37 -0
  317. package/docs/navigation/tabs.tsx +97 -1
  318. package/docs/query/button-refetch.tsx +1 -0
  319. package/package.json +28 -8
  320. package/scripts/_agent-setup.mjs +182 -3
  321. package/scripts/consumer-rule.md +98 -0
  322. package/scripts/guinea-pig-skill.md +322 -0
  323. package/scripts/init-guinea-pig.mjs +84 -0
  324. package/scripts/postinstall.mjs +13 -2
  325. package/scripts/ui-audit.mjs +351 -37
  326. /package/dist/tokens/{antd.generated.css → derived.css} +0 -0
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  .app-root[data-collapsed="true"] {
20
- grid-template-columns: var(--app-shell-rail-width) minmax(0, 1fr);
20
+ grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
21
21
  }
22
22
 
23
23
  .app-root[data-topbar-span="full"] {
@@ -27,6 +27,31 @@
27
27
  "sidebar footer";
28
28
  }
29
29
 
30
+ .app-root[data-nav-rail] {
31
+ grid-template-areas:
32
+ "navrail sidebar topbar"
33
+ "navrail sidebar main"
34
+ "navrail sidebar footer";
35
+ grid-template-columns:
36
+ var(--app-shell-nav-rail-width)
37
+ var(--app-shell-sidebar-width)
38
+ minmax(0, 1fr);
39
+ }
40
+
41
+ .app-root[data-nav-rail][data-collapsed="true"] {
42
+ grid-template-columns:
43
+ var(--app-shell-nav-rail-width)
44
+ var(--app-shell-sidebar-collapsed-width)
45
+ minmax(0, 1fr);
46
+ }
47
+
48
+ .app-root[data-nav-rail][data-topbar-span="full"] {
49
+ grid-template-areas:
50
+ "topbar topbar topbar"
51
+ "navrail sidebar main"
52
+ "navrail sidebar footer";
53
+ }
54
+
30
55
  .app-root[data-topbar="none"] {
31
56
  grid-template-rows: auto minmax(0, 1fr) auto;
32
57
  }
@@ -53,6 +78,21 @@
53
78
  color: hsl(var(--foreground));
54
79
  }
55
80
 
81
+ .app-nav-rail {
82
+ grid-area: navrail;
83
+ display: flex;
84
+ height: 100%;
85
+ min-width: 0;
86
+ min-height: 0;
87
+ flex-direction: column;
88
+ align-items: center;
89
+ overflow: clip;
90
+ overflow-clip-margin: var(--focus-ring-clip-margin);
91
+ border-inline-end: 1px solid hsl(var(--border));
92
+ background: hsl(var(--muted));
93
+ color: hsl(var(--foreground));
94
+ }
95
+
56
96
  .app-topbar {
57
97
  grid-area: topbar;
58
98
  display: flex;
@@ -80,7 +120,7 @@
80
120
  background-image: var(--gradient-glow);
81
121
 
82
122
  contain: paint;
83
- background-color: var(--app-shell-main-background);
123
+ background-color: var(--app-shell-main-background, var(--surface-recessed));
84
124
  }
85
125
 
86
126
  .app-main:focus-visible {
@@ -477,11 +517,45 @@
477
517
  }
478
518
  }
479
519
 
520
+ .app-sidebar-logo {
521
+ display: flex;
522
+ block-size: var(--app-shell-bar-height);
523
+ min-inline-size: 0;
524
+ align-items: center;
525
+ border-block-end: 1px solid hsl(var(--border));
526
+ padding-inline: var(--space-3);
527
+ }
528
+
529
+ .app-root[data-collapsed="true"] .app-sidebar-logo {
530
+ justify-content: center;
531
+ padding-inline: 0;
532
+ }
533
+
534
+ .app-root[data-collapsed="true"] .app-sidebar-logo [data-slot="logo-wordmark"] {
535
+ display: none;
536
+ }
537
+
480
538
  .app-topbar-rail {
481
539
  display: flex;
482
540
  min-width: 0;
483
541
  flex: 1;
484
542
  align-items: center;
543
+ align-self: stretch;
544
+ gap: var(--space-3);
545
+ }
546
+
547
+ .app-topbar-logo,
548
+ .app-topbar-logo > a {
549
+ display: flex;
550
+ align-items: center;
551
+ }
552
+
553
+ .app-topbar-custom {
554
+ display: flex;
555
+ min-width: 0;
556
+ flex: 1;
557
+ align-items: center;
558
+ align-self: stretch;
485
559
  gap: var(--space-3);
486
560
  }
487
561
 
@@ -490,6 +564,7 @@
490
564
  display: flex;
491
565
  min-width: 0;
492
566
  align-items: center;
567
+ align-self: stretch;
493
568
  gap: var(--space-2);
494
569
  }
495
570
 
@@ -524,20 +599,60 @@
524
599
  overscroll-behavior: contain;
525
600
  }
526
601
 
602
+ .app-mobile-nav-columns {
603
+ display: flex;
604
+ min-height: 0;
605
+ flex: 1;
606
+ gap: var(--space-2);
607
+ }
608
+
609
+ .app-mobile-nav-rail {
610
+ display: flex;
611
+ min-height: 0;
612
+ flex: 0 0 auto;
613
+ flex-direction: column;
614
+ border-inline-end: 1px solid hsl(var(--border));
615
+ inline-size: var(--app-shell-nav-rail-width);
616
+ overflow-y: auto;
617
+ overscroll-behavior: contain;
618
+ }
619
+
620
+ .app-mobile-nav-sections {
621
+ display: flex;
622
+ min-width: 0;
623
+ min-height: 0;
624
+ flex: 1;
625
+ flex-direction: column;
626
+ overflow-y: auto;
627
+ overscroll-behavior: contain;
628
+ }
629
+
527
630
  .app-topbar-spacer {
528
631
  flex: 1;
529
632
  }
530
633
 
531
634
  .app-breadcrumb {
532
635
  border-bottom: 1px solid hsl(var(--border));
533
- padding: var(--space-2) var(--space-4);
636
+
637
+ padding: var(--space-2) var(--space-page-active-x);
534
638
  color: hsl(var(--muted-foreground));
535
639
  font-size: var(--font-size-base);
536
640
  }
537
641
 
642
+ .app-root:where([data-sidebar="none"])[data-nav-rail] {
643
+ grid-template-columns: var(--app-shell-nav-rail-width) minmax(0, 1fr);
644
+ grid-template-areas: "navrail topbar" "navrail main" "navrail footer";
645
+ }
646
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-topbar-span="full"] {
647
+ grid-template-areas: "topbar topbar" "navrail main" "navrail footer";
648
+ }
649
+
538
650
  @media (width <= 56.25rem) {
539
651
  .app-root,
540
- .app-root[data-collapsed="true"] {
652
+ .app-root[data-collapsed="true"],
653
+ .app-root[data-nav-rail],
654
+ .app-root[data-nav-rail][data-collapsed="true"],
655
+ .app-root[data-nav-rail][data-topbar-span="full"] {
541
656
  grid-template-areas:
542
657
  "topbar"
543
658
  "main"
@@ -545,7 +660,8 @@
545
660
  grid-template-columns: minmax(0, 1fr);
546
661
  }
547
662
 
548
- .app-sidebar {
663
+ .app-sidebar,
664
+ .app-nav-rail {
549
665
  display: none;
550
666
  }
551
667
 
@@ -570,7 +686,7 @@
570
686
  }
571
687
 
572
688
  .app-root[data-responsive-navigation="docked"][data-collapsed="true"] {
573
- grid-template-columns: var(--app-shell-rail-width) minmax(0, 1fr);
689
+ grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
574
690
  }
575
691
 
576
692
  .app-root[data-responsive-navigation="docked"][data-topbar-span="full"] {
@@ -580,10 +696,44 @@
580
696
  "sidebar footer";
581
697
  }
582
698
 
583
- .app-root[data-responsive-navigation="docked"] > .app-sidebar {
699
+ .app-root[data-responsive-navigation="docked"][data-nav-rail] {
700
+ grid-template-areas:
701
+ "navrail sidebar topbar"
702
+ "navrail sidebar main"
703
+ "navrail sidebar footer";
704
+ grid-template-columns:
705
+ var(--app-shell-nav-rail-width)
706
+ var(--app-shell-sidebar-width)
707
+ minmax(0, 1fr);
708
+ }
709
+
710
+ .app-root[data-responsive-navigation="docked"][data-nav-rail][data-collapsed="true"] {
711
+ grid-template-columns:
712
+ var(--app-shell-nav-rail-width)
713
+ var(--app-shell-sidebar-collapsed-width)
714
+ minmax(0, 1fr);
715
+ }
716
+
717
+ .app-root[data-responsive-navigation="docked"][data-nav-rail][data-topbar-span="full"] {
718
+ grid-template-areas:
719
+ "topbar topbar topbar"
720
+ "navrail sidebar main"
721
+ "navrail sidebar footer";
722
+ }
723
+
724
+ .app-root[data-responsive-navigation="docked"] > .app-sidebar,
725
+ .app-root[data-responsive-navigation="docked"] > .app-nav-rail {
584
726
  display: flex;
585
727
  }
586
728
 
729
+ .app-root[data-sidebar="none"][data-nav-rail][data-responsive-navigation="docked"] {
730
+ grid-template-columns: var(--app-shell-nav-rail-width) minmax(0, 1fr);
731
+ grid-template-areas: "navrail topbar" "navrail main" "navrail footer";
732
+ }
733
+ .app-root[data-sidebar="none"][data-nav-rail][data-responsive-navigation="docked"][data-topbar-span="full"] {
734
+ grid-template-areas: "topbar topbar" "navrail main" "navrail footer";
735
+ }
736
+
587
737
  .app-root[data-responsive-navigation="docked"] .app-mobile-nav-trigger {
588
738
  display: none;
589
739
  }
@@ -652,7 +802,8 @@
652
802
  .ui-org-switcher-name,
653
803
  .ui-org-switcher-meta {
654
804
  overflow: hidden;
655
- line-height: 1.25;
805
+
806
+ line-height: var(--line-height-tight);
656
807
  text-overflow: ellipsis;
657
808
  white-space: nowrap;
658
809
  }
@@ -670,8 +821,8 @@
670
821
  .ui-org-switcher-chevron,
671
822
  .ui-org-switcher-check,
672
823
  .ui-org-switcher-spinner {
673
- width: 1rem;
674
- height: 1rem;
824
+ width: var(--icon-size-md);
825
+ height: var(--icon-size-md);
675
826
  flex: 0 0 auto;
676
827
  }
677
828
 
@@ -685,11 +836,24 @@
685
836
  }
686
837
 
687
838
  .ui-org-switcher-popover {
688
- width: min(var(--org-switcher-menu-width), calc(100vw - var(--space-4)));
689
- padding: 0;
839
+ --popover-surface-inline-size: min(
840
+ var(--org-switcher-menu-width),
841
+ calc(100vw - var(--space-4))
842
+ );
843
+ --popover-space-inset: 0;
690
844
  }
691
845
 
692
- .ui-org-switcher-sheet {
846
+ [data-slot="dialog-content"].ui-org-switcher-dialog {
847
+
848
+ --dialog-space-inset: var(--dialog-space-y) var(--org-switcher-sheet-inset);
849
+ --org-switcher-list-offset: var(--org-switcher-sheet-inset);
850
+ max-inline-size: var(--org-switcher-dialog-width);
851
+ }
852
+
853
+ [data-slot="sheet-content"].ui-org-switcher-sheet {
854
+ --sheet-pad-x: var(--org-switcher-sheet-inset);
855
+
856
+ --org-switcher-list-offset: var(--org-switcher-sheet-inset);
693
857
  max-height: var(--org-switcher-sheet-max-height);
694
858
  border-start-start-radius: var(--radius-lg);
695
859
  border-start-end-radius: var(--radius-lg);
@@ -697,6 +861,31 @@
697
861
 
698
862
  .ui-org-switcher-command {
699
863
  width: 100%;
864
+ padding-inline: calc(var(--org-switcher-list-inset) - var(--org-switcher-list-offset));
865
+ }
866
+
867
+ .ui-org-switcher-command .ui-command-group {
868
+ padding: 0;
869
+ }
870
+
871
+ .ui-org-switcher-command .ui-command-input-wrapper {
872
+
873
+ border: 1px solid hsl(var(--input));
874
+ border-radius: var(--control-radius);
875
+
876
+ margin-block: var(--org-switcher-search-space-block);
877
+ margin-inline: 0;
878
+ background: hsl(var(--background));
879
+ }
880
+
881
+ .ui-org-switcher-command .ui-command-item {
882
+ border-radius: 0;
883
+ margin-inline: 0;
884
+ padding-inline: var(--command-input-padding-x);
885
+ }
886
+
887
+ .ui-org-switcher-command .ui-command-item + .ui-command-item {
888
+ border-block-start: 1px solid hsl(var(--border));
700
889
  }
701
890
 
702
891
  .ui-org-switcher-state {
@@ -715,6 +904,130 @@
715
904
  animation: spin 1s linear infinite;
716
905
  }
717
906
 
907
+ .ui-app-launcher-popover {
908
+
909
+ --popover-surface-inline-size: min(
910
+ var(--app-launcher-panel-width),
911
+ calc(100vw - var(--space-4))
912
+ );
913
+ --popover-space-inset: var(--space-2);
914
+ }
915
+
916
+ .ui-app-launcher-sheet {
917
+ max-height: var(--app-launcher-sheet-max-height);
918
+ border-start-start-radius: var(--radius-lg);
919
+ border-start-end-radius: var(--radius-lg);
920
+ }
921
+
922
+ .ui-app-launcher-panel {
923
+
924
+ --app-launcher-columns: 3;
925
+
926
+ display: grid;
927
+ max-height: var(--app-launcher-panel-max-height);
928
+ gap: var(--app-launcher-panel-gap);
929
+ overflow-y: auto;
930
+ }
931
+
932
+ .ui-app-launcher-grid {
933
+ display: grid;
934
+
935
+ grid-template-columns: repeat(var(--app-launcher-columns), minmax(0, 1fr));
936
+ margin: 0;
937
+ padding: 0;
938
+ gap: var(--app-launcher-grid-gap);
939
+ list-style: none;
940
+ }
941
+
942
+ .ui-app-launcher-cell {
943
+ display: flex;
944
+ }
945
+
946
+ .ui-app-launcher-tile {
947
+ display: flex;
948
+ min-width: 0;
949
+ min-height: var(--app-launcher-tile-min-height);
950
+ flex: 1;
951
+ flex-direction: column;
952
+ align-items: center;
953
+ justify-content: center;
954
+ gap: var(--app-launcher-tile-gap);
955
+ padding: var(--app-launcher-tile-padding);
956
+ border-radius: var(--app-launcher-tile-radius);
957
+ color: hsl(var(--app-launcher-tile-color));
958
+ text-align: center;
959
+ text-decoration: none;
960
+ transition:
961
+ background-color var(--duration-fast),
962
+ color var(--duration-fast);
963
+ }
964
+
965
+ .ui-app-launcher-tile:hover {
966
+ background: hsl(var(--app-launcher-tile-hover-background));
967
+ color: hsl(var(--app-launcher-tile-hover-color));
968
+ }
969
+
970
+ .ui-app-launcher-tile[aria-current="page"] {
971
+ background: var(--app-launcher-tile-current-background, hsl(var(--secondary)));
972
+ }
973
+
974
+ .ui-app-launcher-mark {
975
+ display: grid;
976
+ width: var(--app-launcher-mark-size);
977
+ height: var(--app-launcher-mark-size);
978
+ flex: 0 0 auto;
979
+ place-items: center;
980
+ overflow: hidden;
981
+ border-radius: var(--app-launcher-mark-radius);
982
+ background: hsl(var(--app-launcher-mark-background));
983
+ color: hsl(var(--app-launcher-mark-foreground));
984
+ font-size: var(--app-launcher-mark-font-size);
985
+ font-weight: var(--font-weight-semibold);
986
+ }
987
+
988
+ .ui-app-launcher-mark > * {
989
+ width: 100%;
990
+ height: 100%;
991
+ }
992
+
993
+ .ui-app-launcher-name {
994
+ max-width: 100%;
995
+ font-size: var(--app-launcher-name-font-size);
996
+ line-height: var(--line-height-tight);
997
+ overflow-wrap: anywhere;
998
+ }
999
+
1000
+ .ui-app-launcher-group {
1001
+ display: grid;
1002
+ gap: var(--app-launcher-grid-gap);
1003
+ }
1004
+
1005
+ .ui-app-launcher-group-label {
1006
+ padding-inline: var(--app-launcher-tile-padding);
1007
+ color: hsl(var(--app-launcher-group-label-color));
1008
+ font-size: var(--app-launcher-group-label-font-size);
1009
+ font-weight: var(--font-weight-medium);
1010
+ }
1011
+
1012
+ .ui-app-launcher-state {
1013
+ display: flex;
1014
+ min-height: var(--app-launcher-state-min-height);
1015
+ flex-direction: column;
1016
+ align-items: center;
1017
+ justify-content: center;
1018
+ gap: var(--space-3);
1019
+ padding: var(--space-5);
1020
+ color: hsl(var(--muted-foreground));
1021
+ text-align: center;
1022
+ }
1023
+
1024
+ .ui-app-launcher-spinner {
1025
+ width: var(--icon-size-md);
1026
+ height: var(--icon-size-md);
1027
+ flex: 0 0 auto;
1028
+ animation: spin 1s linear infinite;
1029
+ }
1030
+
718
1031
  .sb-product,
719
1032
  .sb-brand {
720
1033
  display: flex;
@@ -1170,6 +1483,7 @@
1170
1483
 
1171
1484
  @supports not (overflow-clip-margin: 1px) {
1172
1485
  .app-sidebar,
1486
+ .app-nav-rail,
1173
1487
  .app-topbar,
1174
1488
  .ui-topbar,
1175
1489
  .ui-topbar-start,
@@ -1242,6 +1556,40 @@
1242
1556
  cursor: not-allowed;
1243
1557
  }
1244
1558
 
1559
+ .ui-topbar-item:has(> [data-slot="topbar-item-badge"]) {
1560
+ position: relative;
1561
+ }
1562
+
1563
+ .ui-topbar-item-badge {
1564
+ position: absolute;
1565
+
1566
+ inset-block-start: calc(
1567
+ 50% - var(--topbar-icon-size) / 2 - var(--topbar-item-badge-offset-block)
1568
+ );
1569
+ inset-inline-end: calc(
1570
+ 50% - var(--topbar-icon-size) / 2 - var(--topbar-item-badge-offset-inline)
1571
+ );
1572
+ display: inline-flex;
1573
+ min-inline-size: var(--topbar-item-badge-size);
1574
+ block-size: var(--topbar-item-badge-size);
1575
+ align-items: center;
1576
+ justify-content: center;
1577
+ padding-inline: var(--topbar-item-badge-padding-inline);
1578
+ border-radius: var(--radius-pill);
1579
+ background: var(--topbar-item-badge-background, hsl(var(--secondary)));
1580
+ color: var(--topbar-item-badge-foreground, hsl(var(--muted-foreground)));
1581
+ font-size: var(--topbar-item-badge-font-size);
1582
+ font-weight: var(--font-weight-medium);
1583
+ line-height: 1;
1584
+
1585
+ pointer-events: none;
1586
+ }
1587
+
1588
+ .ui-topbar-item-badge[data-tone="destructive"] {
1589
+ background: var(--topbar-item-badge-destructive-background, hsl(var(--destructive)));
1590
+ color: var(--topbar-item-badge-destructive-foreground, hsl(var(--destructive-foreground)));
1591
+ }
1592
+
1245
1593
  .ui-topbar-item > svg {
1246
1594
  width: var(--topbar-icon-size);
1247
1595
  height: var(--topbar-icon-size);
@@ -1661,3 +2009,11 @@
1661
2009
  }
1662
2010
  }
1663
2011
  }
2012
+
2013
+ @layer components {
2014
+
2015
+ .app-root[data-sidebar="none"]:not([data-nav-rail]) {
2016
+ grid-template-columns: minmax(0, 1fr);
2017
+ grid-template-areas: "topbar" "main" "footer";
2018
+ }
2019
+ }
@@ -22,7 +22,8 @@
22
22
  vertical-align: middle;
23
23
  background: var(--table-header-background, hsl(var(--muted)));
24
24
  font-size: var(--table-head-font-size);
25
- font-weight: var(--font-weight-medium);
25
+
26
+ font-weight: var(--table-head-font-weight);
26
27
  color: var(--table-header-foreground, hsl(var(--muted-foreground)));
27
28
  white-space: nowrap;
28
29
  }
@@ -46,6 +47,27 @@
46
47
  padding-inline-end: 0;
47
48
  }
48
49
 
50
+ :is([data-slot="table-head"], [data-slot="table-cell"])[data-numeric] {
51
+ font-variant-numeric: tabular-nums;
52
+ text-align: end;
53
+ }
54
+
55
+ :is([data-slot="table-head"], [data-slot="table-cell"])[data-align="start"] {
56
+ text-align: start;
57
+ }
58
+
59
+ :is([data-slot="table-head"], [data-slot="table-cell"])[data-align="center"] {
60
+ text-align: center;
61
+ }
62
+
63
+ :is([data-slot="table-head"], [data-slot="table-cell"])[data-align="end"] {
64
+ text-align: end;
65
+ }
66
+
67
+ :is([data-slot="table-head"], [data-slot="table-cell"])[data-wrap] {
68
+ white-space: normal;
69
+ }
70
+
49
71
  [data-slot="table-cell"][data-indent] {
50
72
  padding-inline-start: calc(
51
73
  var(--table-cell-space-x) + var(--table-cell-indent-level, 0) *
@@ -241,34 +263,100 @@
241
263
 
242
264
  .ui-data-table-pin-end {
243
265
  position: sticky;
244
- inset-inline-end: 0;
266
+
267
+ inset-inline-end: calc(var(--table-fixed-offset, 0) * 1px);
245
268
  z-index: 2;
246
269
  background-color: hsl(var(--background));
247
270
  box-shadow: var(--table-pin-shadow);
248
271
  }
249
272
 
250
- th.ui-data-table-pin-end {
273
+ .ui-data-table-pin-start {
274
+ position: sticky;
275
+ inset-inline-start: calc(var(--table-fixed-offset, 0) * 1px);
276
+ z-index: 2;
277
+ background-color: hsl(var(--background));
278
+ box-shadow: var(--table-fixed-shadow-start);
279
+ }
280
+
281
+ th.ui-data-table-pin-end,
282
+ th.ui-data-table-pin-start {
251
283
  background-color: hsl(var(--secondary));
252
284
  }
253
285
 
286
+ [dir="rtl"] .ui-data-table-pin-start {
287
+ box-shadow: var(--table-fixed-shadow-start-rtl);
288
+ }
289
+
254
290
  [dir="rtl"] .ui-data-table-pin-end {
255
291
  box-shadow: 6px 0 6px -5px hsl(var(--foreground) / 0.12);
256
292
  }
257
293
 
258
- .ui-data-table-surface tbody tr:hover > .ui-data-table-pin-end {
294
+ .ui-data-table-surface tbody tr:hover > .ui-data-table-pin-end,
295
+ .ui-data-table-surface tbody tr:hover > .ui-data-table-pin-start {
259
296
  background-image: linear-gradient(
260
297
  var(--table-row-hover-background, hsl(var(--muted) / 0.5)),
261
298
  var(--table-row-hover-background, hsl(var(--muted) / 0.5))
262
299
  );
263
300
  }
264
301
 
265
- .ui-data-table-surface tbody tr[data-state="selected"] > .ui-data-table-pin-end {
302
+ .ui-data-table-surface tbody tr[data-state="selected"] > .ui-data-table-pin-end,
303
+ .ui-data-table-surface tbody tr[data-state="selected"] > .ui-data-table-pin-start {
266
304
  background-image: linear-gradient(
267
305
  var(--table-row-selected-background, hsl(var(--muted) / 0.3)),
268
306
  var(--table-row-selected-background, hsl(var(--muted) / 0.3))
269
307
  );
270
308
  }
271
309
 
310
+ .ui-data-table-ellipsis {
311
+ overflow: hidden;
312
+ text-overflow: ellipsis;
313
+ white-space: nowrap;
314
+ }
315
+
316
+ .ui-data-table-surface[data-table-layout="fixed"] [data-slot="table"] {
317
+ table-layout: fixed;
318
+ }
319
+
320
+ .ui-data-table-scroll[data-scroll-y] {
321
+ overflow-y: auto;
322
+ max-block-size: var(--table-scroll-block-size, none);
323
+ }
324
+
325
+ .ui-data-table-scroll[data-scroll-x] :is(.ui-data-table-surface, [data-slot="table"]) {
326
+ min-inline-size: var(--table-scroll-inline-size, auto);
327
+ }
328
+
329
+ .ui-data-table-expand-column {
330
+ inline-size: var(--table-expand-column-width);
331
+ }
332
+
333
+ .ui-data-table-expanded-row > [data-slot="table-cell"] {
334
+ background-color: var(--table-row-expanded-background, hsl(var(--muted) / 0.3));
335
+ }
336
+
337
+ .ui-data-table-summary {
338
+ background-color: var(--table-summary-background, hsl(var(--muted)));
339
+ font-weight: var(--font-weight-medium);
340
+ }
341
+
342
+ .ui-data-table-summary > tr > [data-slot="table-cell"] {
343
+ border-block-start: var(--table-summary-border-width) solid hsl(var(--border));
344
+ }
345
+
346
+ .ui-data-table-filter-trigger[data-filtered] {
347
+ color: hsl(var(--primary));
348
+ }
349
+
350
+ .ui-data-table-selection-menu {
351
+ display: inline-flex;
352
+ align-items: center;
353
+ gap: var(--table-selection-menu-gap);
354
+ }
355
+
356
+ .ui-data-table-surface .ui-table-bordered {
357
+ border-width: 0;
358
+ }
359
+
272
360
  .ui-table-bordered {
273
361
  border: 1px solid var(--table-border-color, hsl(var(--border)));
274
362
  }
@@ -354,7 +442,8 @@
354
442
 
355
443
  .ui-data-table-sticky-header {
356
444
  position: sticky;
357
- inset-block-start: 0;
445
+
446
+ inset-block-start: var(--table-sticky-offset, 0);
358
447
  z-index: 10;
359
448
  }
360
449
 
@@ -62,21 +62,22 @@
62
62
  [data-slot="heading"][data-tone="primary"] {
63
63
  color: hsl(var(--primary));
64
64
  }
65
+
65
66
  [data-slot="text"][data-tone="success"],
66
67
  [data-slot="heading"][data-tone="success"] {
67
- color: hsl(var(--success));
68
+ color: hsl(var(--text-success));
68
69
  }
69
70
  [data-slot="text"][data-tone="warning"],
70
71
  [data-slot="heading"][data-tone="warning"] {
71
- color: hsl(var(--warning));
72
+ color: hsl(var(--text-warning));
72
73
  }
73
74
  [data-slot="text"][data-tone="destructive"],
74
75
  [data-slot="heading"][data-tone="destructive"] {
75
- color: hsl(var(--destructive));
76
+ color: hsl(var(--text-error));
76
77
  }
77
78
  [data-slot="text"][data-tone="info"],
78
79
  [data-slot="heading"][data-tone="info"] {
79
- color: hsl(var(--info));
80
+ color: hsl(var(--text-info));
80
81
  }
81
82
 
82
83
  [data-slot="text"][data-align="start"],
@@ -99,6 +100,11 @@
99
100
  min-width: 0;
100
101
  }
101
102
 
103
+ [data-slot="text"][data-whitespace="pre-wrap"] {
104
+ white-space: pre-wrap;
105
+ overflow-wrap: break-word;
106
+ }
107
+
102
108
  [data-slot="text"][data-clamp] {
103
109
  display: -webkit-box;
104
110
  -webkit-box-orient: vertical;