@godxjp/ui 28.8.0 → 28.10.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 (271) hide show
  1. package/agent/START-HERE.md +193 -0
  2. package/agent/anti-ai-tells.json +158 -0
  3. package/agent/components/Accordion.json +60 -0
  4. package/agent/components/AccountChip.json +59 -0
  5. package/agent/components/Actions.json +78 -0
  6. package/agent/components/Activity.json +80 -0
  7. package/agent/components/Affix.json +78 -0
  8. package/agent/components/Alert.json +65 -0
  9. package/agent/components/AlertDialog.json +109 -0
  10. package/agent/components/AlertDialogRoot.json +52 -0
  11. package/agent/components/Anchor.json +119 -0
  12. package/agent/components/AppLauncher.json +95 -0
  13. package/agent/components/AppProvider.json +105 -0
  14. package/agent/components/AppSettingPicker.json +88 -0
  15. package/agent/components/AppSettingToggle.json +70 -0
  16. package/agent/components/AppShell.json +159 -0
  17. package/agent/components/AreaChart.json +105 -0
  18. package/agent/components/AspectRatio.json +38 -0
  19. package/agent/components/Attachments.json +76 -0
  20. package/agent/components/AuthAccountSummary.json +64 -0
  21. package/agent/components/AuthDivider.json +35 -0
  22. package/agent/components/AuthFooter.json +48 -0
  23. package/agent/components/AuthIdentity.json +42 -0
  24. package/agent/components/AuthShell.json +108 -0
  25. package/agent/components/AuthStack.json +21 -0
  26. package/agent/components/Avatar.json +89 -0
  27. package/agent/components/Badge.json +96 -0
  28. package/agent/components/Banner.json +48 -0
  29. package/agent/components/BarChart.json +108 -0
  30. package/agent/components/BranchScopePicker.json +89 -0
  31. package/agent/components/Breadcrumb.json +54 -0
  32. package/agent/components/Button.json +133 -0
  33. package/agent/components/Calendar.json +259 -0
  34. package/agent/components/Callout.json +46 -0
  35. package/agent/components/Card.json +112 -0
  36. package/agent/components/CardBar.json +49 -0
  37. package/agent/components/CardContent.json +51 -0
  38. package/agent/components/Carousel.json +50 -0
  39. package/agent/components/Cascader.json +209 -0
  40. package/agent/components/CenteredShell.json +66 -0
  41. package/agent/components/ChatBubble.json +100 -0
  42. package/agent/components/ChatBubbleList.json +64 -0
  43. package/agent/components/ChatComposer.json +160 -0
  44. package/agent/components/ChatSuggestion.json +86 -0
  45. package/agent/components/Checkbox.json +68 -0
  46. package/agent/components/CheckboxGroup.json +96 -0
  47. package/agent/components/CodeBlock.json +64 -0
  48. package/agent/components/Collapsible.json +74 -0
  49. package/agent/components/ColorPicker.json +87 -0
  50. package/agent/components/Command.json +168 -0
  51. package/agent/components/CommandPalette.json +84 -0
  52. package/agent/components/CompactBarTrend.json +101 -0
  53. package/agent/components/Conversations.json +82 -0
  54. package/agent/components/CredentialReveal.json +93 -0
  55. package/agent/components/DataState.json +79 -0
  56. package/agent/components/DataTable.json +268 -0
  57. package/agent/components/DatePicker.json +275 -0
  58. package/agent/components/Descriptions.json +67 -0
  59. package/agent/components/Dialog.json +78 -0
  60. package/agent/components/DraggablePanel.json +106 -0
  61. package/agent/components/DropdownMenu.json +102 -0
  62. package/agent/components/EmptyState.json +83 -0
  63. package/agent/components/ErrorSurface.json +128 -0
  64. package/agent/components/FeatureList.json +43 -0
  65. package/agent/components/Field.json +64 -0
  66. package/agent/components/FilterBar.json +99 -0
  67. package/agent/components/Flex.json +153 -0
  68. package/agent/components/FloatButton.json +91 -0
  69. package/agent/components/Form.json +87 -0
  70. package/agent/components/FormErrors.json +51 -0
  71. package/agent/components/FormField.json +137 -0
  72. package/agent/components/FormFieldArray.json +39 -0
  73. package/agent/components/FormFieldControl.json +129 -0
  74. package/agent/components/FormRoot.json +122 -0
  75. package/agent/components/Heading.json +61 -0
  76. package/agent/components/HoverCard.json +55 -0
  77. package/agent/components/Icon.json +60 -0
  78. package/agent/components/InfiniteQueryState.json +58 -0
  79. package/agent/components/Input.json +122 -0
  80. package/agent/components/InputOTP.json +106 -0
  81. package/agent/components/Label.json +43 -0
  82. package/agent/components/LegalDocumentShell.json +102 -0
  83. package/agent/components/Legend.json +42 -0
  84. package/agent/components/LineChart.json +103 -0
  85. package/agent/components/Link.json +41 -0
  86. package/agent/components/ListRow.json +92 -0
  87. package/agent/components/Logo.json +85 -0
  88. package/agent/components/Marquee.json +91 -0
  89. package/agent/components/Masonry.json +82 -0
  90. package/agent/components/MasterDetail.json +95 -0
  91. package/agent/components/MegaMenu.json +120 -0
  92. package/agent/components/MobileShell.json +73 -0
  93. package/agent/components/NavList.json +63 -0
  94. package/agent/components/NumberInput.json +158 -0
  95. package/agent/components/OrgSwitcher.json +89 -0
  96. package/agent/components/OverlayPortalProvider.json +42 -0
  97. package/agent/components/PageContainer.json +181 -0
  98. package/agent/components/Pagination.json +132 -0
  99. package/agent/components/Paragraph.json +40 -0
  100. package/agent/components/PasswordInput.json +79 -0
  101. package/agent/components/PasswordStrength.json +51 -0
  102. package/agent/components/PermissionMatrix.json +81 -0
  103. package/agent/components/PieChart.json +99 -0
  104. package/agent/components/Popover.json +110 -0
  105. package/agent/components/PrefetchLink.json +65 -0
  106. package/agent/components/Progress.json +79 -0
  107. package/agent/components/Prose.json +57 -0
  108. package/agent/components/QrCode.json +62 -0
  109. package/agent/components/Radio.json +98 -0
  110. package/agent/components/RadioGroup.json +91 -0
  111. package/agent/components/RangeTimeline.json +80 -0
  112. package/agent/components/Rating.json +92 -0
  113. package/agent/components/ResizablePanel.json +69 -0
  114. package/agent/components/ResponsiveGrid.json +77 -0
  115. package/agent/components/Reveal.json +70 -0
  116. package/agent/components/ScrollArea.json +104 -0
  117. package/agent/components/SearchInput.json +98 -0
  118. package/agent/components/Segmented.json +96 -0
  119. package/agent/components/Select.json +397 -0
  120. package/agent/components/Separator.json +86 -0
  121. package/agent/components/ServiceCatalogCta.json +46 -0
  122. package/agent/components/ServiceLauncherCard.json +86 -0
  123. package/agent/components/ServiceRolePanel.json +83 -0
  124. package/agent/components/Sheet.json +85 -0
  125. package/agent/components/Sidebar.json +118 -0
  126. package/agent/components/Skeleton.json +57 -0
  127. package/agent/components/SkeletonArticle.json +71 -0
  128. package/agent/components/SkeletonAvatar.json +50 -0
  129. package/agent/components/SkeletonButton.json +57 -0
  130. package/agent/components/SkeletonForm.json +52 -0
  131. package/agent/components/SkeletonImage.json +37 -0
  132. package/agent/components/SkeletonInput.json +51 -0
  133. package/agent/components/SkeletonNode.json +42 -0
  134. package/agent/components/SkeletonRows.json +49 -0
  135. package/agent/components/SkeletonTable.json +45 -0
  136. package/agent/components/Slider.json +160 -0
  137. package/agent/components/SplitPane.json +66 -0
  138. package/agent/components/StatCard.json +83 -0
  139. package/agent/components/Steps.json +95 -0
  140. package/agent/components/Swatch.json +41 -0
  141. package/agent/components/Switch.json +81 -0
  142. package/agent/components/Table.json +112 -0
  143. package/agent/components/Tabs.json +158 -0
  144. package/agent/components/TagInput.json +105 -0
  145. package/agent/components/Text.json +201 -0
  146. package/agent/components/Textarea.json +126 -0
  147. package/agent/components/ThoughtChain.json +76 -0
  148. package/agent/components/Thumbnail.json +70 -0
  149. package/agent/components/TimePicker.json +200 -0
  150. package/agent/components/TimeRangePicker.json +90 -0
  151. package/agent/components/Timeline.json +47 -0
  152. package/agent/components/TimelineGrid.json +92 -0
  153. package/agent/components/Title.json +67 -0
  154. package/agent/components/Toaster.json +42 -0
  155. package/agent/components/Toggle.json +90 -0
  156. package/agent/components/ToggleGroup.json +102 -0
  157. package/agent/components/Toolbar.json +120 -0
  158. package/agent/components/Tooltip.json +110 -0
  159. package/agent/components/Topbar.json +83 -0
  160. package/agent/components/TopbarItem.json +79 -0
  161. package/agent/components/Transfer.json +141 -0
  162. package/agent/components/Tree.json +185 -0
  163. package/agent/components/TreeSelect.json +232 -0
  164. package/agent/components/TwoFactorSetup.json +79 -0
  165. package/agent/components/Typography.json +42 -0
  166. package/agent/components/Upload.json +221 -0
  167. package/agent/components/UploadCropDialog.json +60 -0
  168. package/agent/components/VisuallyHidden.json +20 -0
  169. package/agent/components/Welcome.json +65 -0
  170. package/agent/components/formatDate.json +46 -0
  171. package/agent/components/inertiaUpload.json +32 -0
  172. package/agent/components/useZodForm.json +39 -0
  173. package/agent/components-index.json +884 -0
  174. package/agent/components.json +15507 -0
  175. package/agent/index.json +56 -0
  176. package/agent/llms.txt +32 -0
  177. package/agent/patterns/account-recovery-settings.json +19 -0
  178. package/agent/patterns/async-data-state.json +20 -0
  179. package/agent/patterns/auth-recovery-panels.json +29 -0
  180. package/agent/patterns/badge-coloring.json +14 -0
  181. package/agent/patterns/common-fixes.json +16 -0
  182. package/agent/patterns/confirm-destructive.json +11 -0
  183. package/agent/patterns/data-table-page.json +18 -0
  184. package/agent/patterns/deferred-loading.json +12 -0
  185. package/agent/patterns/error-pages.json +28 -0
  186. package/agent/patterns/inertia-detail-page.json +13 -0
  187. package/agent/patterns/inertia-list-page.json +15 -0
  188. package/agent/patterns/inertia-persistent-layout.json +14 -0
  189. package/agent/patterns/organization-memberships.json +19 -0
  190. package/agent/patterns/page-sections.json +18 -0
  191. package/agent/patterns/settings-page-responsive.json +18 -0
  192. package/agent/patterns/settings-section-rows.json +23 -0
  193. package/agent/patterns/signup-form.json +13 -0
  194. package/agent/patterns/topbar-account-chip.json +18 -0
  195. package/agent/patterns/transactional-email.json +22 -0
  196. package/agent/patterns-index.json +323 -0
  197. package/agent/patterns.json +342 -0
  198. package/agent/rules.json +237 -0
  199. package/agent/tokens.json +8422 -0
  200. package/agent/vocabulary.json +198 -0
  201. package/dist/components/data-entry/input.js +8 -1
  202. package/dist/components/layout/flex.d.ts +2 -2
  203. package/dist/components/layout/flex.js +2 -0
  204. package/dist/components/ui/tag-input.d.ts +10 -0
  205. package/dist/components/ui/tag-input.js +35 -2
  206. package/dist/contracts/measurement.json +1 -1
  207. package/dist/i18n/messages/en.json +23 -1
  208. package/dist/i18n/messages/ja.json +21 -1
  209. package/dist/i18n/messages/vi.json +21 -1
  210. package/dist/lib/variants.js +4 -1
  211. package/dist/props/components/data-entry.prop.d.ts +21 -2
  212. package/dist/props/components/layout.prop.d.ts +42 -0
  213. package/dist/props/registry.d.ts +9 -0
  214. package/dist/props/registry.js +6 -0
  215. package/dist/props/vocabulary/layout.prop.d.ts +1 -1
  216. package/dist/styles/base.css +47 -14
  217. package/dist/styles/card-layout.css +6 -6
  218. package/dist/styles/chart-layout.css +6 -6
  219. package/dist/styles/control.css +41 -6
  220. package/dist/styles/data-display-layout.css +21 -6
  221. package/dist/styles/density.css +2 -0
  222. package/dist/styles/dialog-layout.css +4 -1
  223. package/dist/styles/focus-ring.css +4 -1
  224. package/dist/styles/layout.css +30 -3
  225. package/dist/styles/navigation-layout.css +3 -1
  226. package/dist/styles/shell-layout.css +27 -21
  227. package/dist/styles/table-layout.css +50 -9
  228. package/dist/styles/text-layout.css +94 -23
  229. package/dist/tokens/components/activity.css +13 -4
  230. package/dist/tokens/components/attachments.css +1 -1
  231. package/dist/tokens/components/badge.css +1 -1
  232. package/dist/tokens/components/card.css +28 -7
  233. package/dist/tokens/components/chart.css +4 -1
  234. package/dist/tokens/components/chat-composer.css +4 -1
  235. package/dist/tokens/components/control.css +69 -30
  236. package/dist/tokens/components/conversations.css +4 -1
  237. package/dist/tokens/components/data-display.css +42 -15
  238. package/dist/tokens/components/data-entry.css +8 -2
  239. package/dist/tokens/components/descriptions.css +1 -1
  240. package/dist/tokens/components/feedback.css +8 -5
  241. package/dist/tokens/components/float-button.css +8 -2
  242. package/dist/tokens/components/legal-document.css +12 -3
  243. package/dist/tokens/components/logo.css +15 -6
  244. package/dist/tokens/components/mega-menu.css +14 -5
  245. package/dist/tokens/components/navigation.css +37 -13
  246. package/dist/tokens/components/segmented.css +9 -2
  247. package/dist/tokens/components/separator.css +4 -1
  248. package/dist/tokens/components/shell.css +96 -31
  249. package/dist/tokens/components/table.css +13 -6
  250. package/dist/tokens/components/thought-chain.css +4 -1
  251. package/dist/tokens/components/toggle.css +4 -1
  252. package/dist/tokens/components/tree.css +1 -1
  253. package/dist/tokens/components/upload.css +21 -9
  254. package/dist/tokens/foundation.css +24 -30
  255. package/dist/tokens/semantic/layout.css +19 -5
  256. package/docs/COMPOSITION-VS-COMPONENT.md +41 -0
  257. package/docs/DESIGN-AUTHORITY.md +14 -0
  258. package/docs/DEVELOPMENT.md +81 -6
  259. package/docs/TOKENS.md +16 -1
  260. package/docs/data-entry/tag-input.tsx +37 -0
  261. package/docs/layout/flex.tsx +40 -0
  262. package/docs/roadmap/website-components.md +34 -0
  263. package/docs/showcase/case4-login.tsx +10 -2
  264. package/docs/showcase/case5-shift-calendar.tsx +1 -1
  265. package/docs/showcase/case6-agency-handy.tsx +6 -6
  266. package/docs/showcase/futurelastic-web.tsx +7 -9
  267. package/docs/showcase/marketing-page.tsx +61 -52
  268. package/docs/showcase/table-expandable-rows.tsx +4 -1
  269. package/docs/showcase/table-pagination.tsx +88 -18
  270. package/docs/showcase/theme-customization.tsx +25 -2
  271. package/package.json +8 -5
@@ -88,12 +88,14 @@
88
88
 
89
89
  .ui-table-row[data-tone] > [data-slot="table-cell"]:first-child {
90
90
  border-inline-start: var(--table-row-tone-rail-width) solid hsl(var(--table-row-tone-color));
91
- padding-inline-start: calc(var(--table-cell-space-x) - var(--table-row-tone-rail-width));
91
+ padding-inline-start: calc(
92
+ var(--table-cell-space-x, var(--space-section-active)) - var(--table-row-tone-rail-width)
93
+ );
92
94
  }
93
95
 
94
96
  [data-slot="table-head"] {
95
97
  height: var(--table-row-height);
96
- padding: var(--table-cell-padding-y) var(--table-cell-space-x);
98
+ padding: var(--table-cell-padding-y) var(--table-cell-space-x, var(--space-section-active));
97
99
  text-align: start;
98
100
  vertical-align: middle;
99
101
  background: var(--table-header-background, hsl(var(--muted)));
@@ -113,7 +115,7 @@
113
115
  }
114
116
 
115
117
  [data-slot="table-cell"] {
116
- padding: var(--table-cell-padding-y) var(--table-cell-space-x);
118
+ padding: var(--table-cell-padding-y) var(--table-cell-space-x, var(--space-section-active));
117
119
  vertical-align: middle;
118
120
 
119
121
  white-space: nowrap;
@@ -146,7 +148,7 @@
146
148
 
147
149
  [data-slot="table-cell"][data-indent] {
148
150
  padding-inline-start: calc(
149
- var(--table-cell-space-x) + var(--table-cell-indent-level, 0) *
151
+ var(--table-cell-space-x, var(--space-section-active)) + var(--table-cell-indent-level, 0) *
150
152
  var(--table-cell-indent-space-step)
151
153
  );
152
154
  }
@@ -207,7 +209,10 @@
207
209
  justify-content: flex-end;
208
210
  gap: var(--space-inline-sm);
209
211
  padding-block: var(--table-pagination-padding-y, var(--space-stack-sm));
210
- padding-inline: var(--table-pagination-padding-x, var(--table-cell-space-x));
212
+ padding-inline: var(
213
+ --table-pagination-padding-x,
214
+ var(--table-cell-space-x, var(--space-section-active))
215
+ );
211
216
  }
212
217
 
213
218
  .ui-data-table-pagination--numbered {
@@ -634,7 +639,16 @@
634
639
  white-space: normal;
635
640
  }
636
641
 
637
- [data-collapse-below="sm"] [data-slot="table"]:has([data-slot="table-head"]:nth-child(7)) {
642
+ [data-collapse-below="sm"]
643
+ [data-slot="table"]:has(
644
+ [data-slot="table-head"]:nth-child(7),
645
+ [data-slot="table-head"][data-priority="primary"]
646
+ ~ [data-slot="table-head"][data-priority="primary"],
647
+ [data-slot="table-head"][data-priority="secondary"]
648
+ ~ [data-slot="table-head"][data-priority="secondary"],
649
+ [data-slot="table-head"][data-priority="meta"]
650
+ ~ [data-slot="table-head"][data-priority="meta"]
651
+ ) {
638
652
  --table-action-collection-primary-width: var(--table-action-collection-primary-width-floor);
639
653
  --table-action-collection-secondary-width: var(
640
654
  --table-action-collection-secondary-width-floor
@@ -664,7 +678,16 @@
664
678
  white-space: normal;
665
679
  }
666
680
 
667
- [data-collapse-below="md"] [data-slot="table"]:has([data-slot="table-head"]:nth-child(7)) {
681
+ [data-collapse-below="md"]
682
+ [data-slot="table"]:has(
683
+ [data-slot="table-head"]:nth-child(7),
684
+ [data-slot="table-head"][data-priority="primary"]
685
+ ~ [data-slot="table-head"][data-priority="primary"],
686
+ [data-slot="table-head"][data-priority="secondary"]
687
+ ~ [data-slot="table-head"][data-priority="secondary"],
688
+ [data-slot="table-head"][data-priority="meta"]
689
+ ~ [data-slot="table-head"][data-priority="meta"]
690
+ ) {
668
691
  --table-action-collection-primary-width: var(--table-action-collection-primary-width-floor);
669
692
  --table-action-collection-secondary-width: var(
670
693
  --table-action-collection-secondary-width-floor
@@ -694,7 +717,16 @@
694
717
  white-space: normal;
695
718
  }
696
719
 
697
- [data-collapse-below="lg"] [data-slot="table"]:has([data-slot="table-head"]:nth-child(7)) {
720
+ [data-collapse-below="lg"]
721
+ [data-slot="table"]:has(
722
+ [data-slot="table-head"]:nth-child(7),
723
+ [data-slot="table-head"][data-priority="primary"]
724
+ ~ [data-slot="table-head"][data-priority="primary"],
725
+ [data-slot="table-head"][data-priority="secondary"]
726
+ ~ [data-slot="table-head"][data-priority="secondary"],
727
+ [data-slot="table-head"][data-priority="meta"]
728
+ ~ [data-slot="table-head"][data-priority="meta"]
729
+ ) {
698
730
  --table-action-collection-primary-width: var(--table-action-collection-primary-width-floor);
699
731
  --table-action-collection-secondary-width: var(
700
732
  --table-action-collection-secondary-width-floor
@@ -724,7 +756,16 @@
724
756
  white-space: normal;
725
757
  }
726
758
 
727
- [data-collapse-below="xl"] [data-slot="table"]:has([data-slot="table-head"]:nth-child(7)) {
759
+ [data-collapse-below="xl"]
760
+ [data-slot="table"]:has(
761
+ [data-slot="table-head"]:nth-child(7),
762
+ [data-slot="table-head"][data-priority="primary"]
763
+ ~ [data-slot="table-head"][data-priority="primary"],
764
+ [data-slot="table-head"][data-priority="secondary"]
765
+ ~ [data-slot="table-head"][data-priority="secondary"],
766
+ [data-slot="table-head"][data-priority="meta"]
767
+ ~ [data-slot="table-head"][data-priority="meta"]
768
+ ) {
728
769
  --table-action-collection-primary-width: var(--table-action-collection-primary-width-floor);
729
770
  --table-action-collection-secondary-width: var(
730
771
  --table-action-collection-secondary-width-floor
@@ -6,25 +6,43 @@
6
6
  }
7
7
 
8
8
  [data-slot="text"][data-size="2xs"] {
9
- font-size: var(--font-size-2xs);
9
+ font-size: var(
10
+ --font-size-2xs,
11
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
12
+ );
10
13
  }
11
14
  [data-slot="text"][data-size="xs"] {
12
- font-size: var(--font-size-xs);
15
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
13
16
  }
14
17
  [data-slot="text"][data-size="sm"] {
15
- font-size: var(--font-size-sm);
18
+ font-size: var(--font-size-sm, var(--font-size-base));
16
19
  }
17
20
  [data-slot="text"][data-size="md"] {
18
21
  font-size: var(--font-size-base);
19
22
  }
20
23
  [data-slot="text"][data-size="lg"] {
21
- font-size: var(--font-size-lg);
24
+ font-size: var(
25
+ --font-size-lg,
26
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
27
+ );
22
28
  }
23
29
  [data-slot="text"][data-size="xl"] {
24
- font-size: var(--font-size-xl);
30
+ font-size: var(
31
+ --font-size-xl,
32
+ calc(
33
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
34
+ var(--font-size-ratio)
35
+ )
36
+ );
25
37
  }
26
38
  [data-slot="text"][data-size="2xl"] {
27
- font-size: var(--font-size-2xl);
39
+ font-size: var(
40
+ --font-size-2xl,
41
+ calc(
42
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
43
+ var(--font-size-ratio) * var(--font-size-ratio)
44
+ )
45
+ );
28
46
  }
29
47
 
30
48
  [data-slot="text"][data-size="3xl"],
@@ -34,13 +52,21 @@
34
52
  letter-spacing: var(--letter-spacing-tight);
35
53
  }
36
54
  [data-slot="text"][data-size="3xl"] {
37
- font-size: var(--font-size-3xl);
55
+ font-size: var(
56
+ --font-size-3xl,
57
+ calc(
58
+ var(--font-size-display) / var(--font-size-display-ratio) / var(--font-size-display-ratio)
59
+ )
60
+ );
38
61
  }
39
62
  [data-slot="text"][data-size="4xl"] {
40
- font-size: var(--font-size-4xl);
63
+ font-size: var(
64
+ --font-size-4xl,
65
+ calc(var(--font-size-display) / var(--font-size-display-ratio))
66
+ );
41
67
  }
42
68
  [data-slot="text"][data-size="5xl"] {
43
- font-size: var(--font-size-5xl);
69
+ font-size: var(--font-size-5xl, var(--font-size-display));
44
70
  }
45
71
 
46
72
  [data-slot="text"][data-weight="regular"],
@@ -132,6 +158,7 @@
132
158
  [data-slot="text"][data-whitespace="pre-wrap"] {
133
159
  white-space: pre-wrap;
134
160
  overflow-wrap: break-word;
161
+ min-inline-size: 0;
135
162
  }
136
163
 
137
164
  [data-slot="text"][data-clamp] {
@@ -172,54 +199,98 @@
172
199
  }
173
200
 
174
201
  [data-slot="heading"][data-level="1"]:not([data-size]) {
175
- font-size: var(--heading-h1);
202
+ font-size: var(
203
+ --heading-h1,
204
+ calc(
205
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
206
+ var(--font-size-ratio)
207
+ )
208
+ );
176
209
  }
177
210
  [data-slot="heading"][data-level="2"]:not([data-size]) {
178
- font-size: var(--heading-h2);
211
+ font-size: var(
212
+ --heading-h2,
213
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
214
+ );
179
215
  }
180
216
  [data-slot="heading"][data-level="3"]:not([data-size]) {
181
- font-size: var(--heading-h3);
217
+ font-size: var(--heading-h3, var(--font-size-base));
182
218
  }
183
219
  [data-slot="heading"][data-level="4"]:not([data-size]) {
184
- font-size: var(--heading-h4);
220
+ font-size: var(
221
+ --heading-h4,
222
+ var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)))
223
+ );
185
224
  }
186
225
 
187
226
  [data-slot="heading"][data-size="2xs"] {
188
- font-size: var(--font-size-2xs);
227
+ font-size: var(
228
+ --font-size-2xs,
229
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
230
+ );
189
231
  }
190
232
  [data-slot="heading"][data-size="xs"] {
191
- font-size: var(--font-size-xs);
233
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
192
234
  }
193
235
  [data-slot="heading"][data-size="sm"] {
194
- font-size: var(--font-size-sm);
236
+ font-size: var(--font-size-sm, var(--font-size-base));
195
237
  }
196
238
  [data-slot="heading"][data-size="md"] {
197
239
  font-size: var(--font-size-base);
198
240
  }
199
241
  [data-slot="heading"][data-size="lg"] {
200
- font-size: var(--font-size-lg);
242
+ font-size: var(
243
+ --font-size-lg,
244
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
245
+ );
201
246
  }
202
247
  [data-slot="heading"][data-size="xl"] {
203
- font-size: var(--font-size-xl);
248
+ font-size: var(
249
+ --font-size-xl,
250
+ calc(
251
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
252
+ var(--font-size-ratio)
253
+ )
254
+ );
204
255
  }
205
256
  [data-slot="heading"][data-size="2xl"] {
206
- font-size: var(--font-size-2xl);
257
+ font-size: var(
258
+ --font-size-2xl,
259
+ calc(
260
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
261
+ var(--font-size-ratio) * var(--font-size-ratio)
262
+ )
263
+ );
207
264
  }
208
265
  [data-slot="heading"][data-size="3xl"] {
209
- font-size: var(--font-size-3xl);
266
+ font-size: var(
267
+ --font-size-3xl,
268
+ calc(
269
+ var(--font-size-display) / var(--font-size-display-ratio) / var(--font-size-display-ratio)
270
+ )
271
+ );
210
272
  }
211
273
  [data-slot="heading"][data-size="4xl"] {
212
- font-size: var(--font-size-4xl);
274
+ font-size: var(
275
+ --font-size-4xl,
276
+ calc(var(--font-size-display) / var(--font-size-display-ratio))
277
+ );
213
278
  }
214
279
  [data-slot="heading"][data-size="5xl"] {
215
- font-size: var(--font-size-5xl);
280
+ font-size: var(--font-size-5xl, var(--font-size-display));
216
281
  }
217
282
  }
218
283
 
219
284
  @layer components {
220
285
 
221
286
  [data-slot="heading"][data-level="5"] {
222
- font-size: var(--heading-h5);
287
+ font-size: var(
288
+ --heading-h5,
289
+ var(
290
+ --font-size-2xs,
291
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
292
+ )
293
+ );
223
294
  }
224
295
 
225
296
  [data-slot="text"][data-disabled],
@@ -12,10 +12,19 @@
12
12
 
13
13
  --activity-gap: var(--space-1);
14
14
 
15
- --activity-font-size-xs: var(--font-size-2xs);
16
- --activity-font-size-sm: var(--font-size-xs);
17
- --activity-font-size-md: var(--font-size-sm);
18
- --activity-font-size-lg: var(--font-size-lg);
15
+ --activity-font-size-xs: var(
16
+ --font-size-2xs,
17
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
18
+ );
19
+ --activity-font-size-sm: var(
20
+ --font-size-xs,
21
+ calc(var(--font-size-base) / var(--font-size-ratio))
22
+ );
23
+ --activity-font-size-md: var(--font-size-sm, var(--font-size-base));
24
+ --activity-font-size-lg: var(
25
+ --font-size-lg,
26
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
27
+ );
19
28
 
20
29
  --activity-bar-width: 4rem;
21
30
  --activity-bar-radius: var(--radius-pill);
@@ -7,7 +7,7 @@
7
7
  --attachments-placeholder-space-inset: var(--upload-dropzone-space-inset);
8
8
  --attachments-placeholder-radius: var(--upload-dropzone-radius);
9
9
  --attachments-placeholder-icon-size: var(--upload-dropzone-icon-size);
10
- --attachments-placeholder-title-font-size: var(--font-size-sm);
10
+ --attachments-placeholder-title-font-size: var(--font-size-sm, var(--font-size-base));
11
11
  --attachments-placeholder-description-font-size: var(--upload-dropzone-meta-font-size);
12
12
  --attachments-placeholder-gap: var(--space-2);
13
13
  --attachments-drop-overlay-background: initial;
@@ -6,7 +6,7 @@
6
6
  --badge-space-y: var(--space-1);
7
7
 
8
8
  --badge-radius: var(--radius-md);
9
- --badge-font-size: var(--font-size-xs);
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);
12
12
 
@@ -20,7 +20,7 @@
20
20
  --card-title-font-size: var(--font-size-base);
21
21
  --card-title-line-height: var(--line-height-tight);
22
22
  --card-title-font-weight: var(--font-weight-semibold);
23
- --card-description-font-size: var(--font-size-sm);
23
+ --card-description-font-size: var(--font-size-sm, var(--font-size-base));
24
24
  --card-description-line-height: var(--line-height-normal);
25
25
 
26
26
  --card-background: initial;
@@ -47,13 +47,25 @@
47
47
 
48
48
  --card-featured-border-color: initial;
49
49
  --card-featured-ring-width: var(--stroke-hairline);
50
- --stat-card-label-font-size: var(--font-size-xs);
50
+ --stat-card-label-font-size: var(
51
+ --font-size-xs,
52
+ calc(var(--font-size-base) / var(--font-size-ratio))
53
+ );
51
54
  --stat-card-label-font-weight: var(--font-weight-medium);
52
55
  --stat-card-label-letter-spacing: 0.04em;
53
- --stat-card-value-font-size: var(--font-size-2xl);
56
+ --stat-card-value-font-size: var(
57
+ --font-size-2xl,
58
+ calc(
59
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
60
+ var(--font-size-ratio) * var(--font-size-ratio)
61
+ )
62
+ );
54
63
  --stat-card-value-line-height: 1.1;
55
64
  --stat-card-value-font-weight: var(--font-weight-semibold);
56
- --stat-card-hint-font-size: var(--font-size-xs);
65
+ --stat-card-hint-font-size: var(
66
+ --font-size-xs,
67
+ calc(var(--font-size-base) / var(--font-size-ratio))
68
+ );
57
69
  --stat-card-gap: var(--space-stack-xs);
58
70
  --stat-card-icon-size: var(--icon-size-2xl);
59
71
  --stat-card-icon-glyph-size: var(--icon-size-lg);
@@ -61,7 +73,10 @@
61
73
 
62
74
  --stat-card-icon-background: initial;
63
75
  --stat-card-icon-foreground: initial;
64
- --stat-card-delta-font-size: var(--font-size-xs);
76
+ --stat-card-delta-font-size: var(
77
+ --font-size-xs,
78
+ calc(var(--font-size-base) / var(--font-size-ratio))
79
+ );
65
80
 
66
81
  --card-service-launcher-space-gap: var(--space-stack-sm);
67
82
 
@@ -75,10 +90,16 @@
75
90
  --card-service-launcher-unavailable-icon-background: initial;
76
91
  --card-service-launcher-unavailable-icon-foreground: initial;
77
92
 
78
- --card-service-launcher-description-font-size: var(--font-size-xs);
93
+ --card-service-launcher-description-font-size: var(
94
+ --font-size-xs,
95
+ calc(var(--font-size-base) / var(--font-size-ratio))
96
+ );
79
97
  --card-service-launcher-description-line-height: var(--line-height-body);
80
98
 
81
- --card-service-launcher-metadata-font-size: var(--font-size-xs);
99
+ --card-service-launcher-metadata-font-size: var(
100
+ --font-size-xs,
101
+ calc(var(--font-size-base) / var(--font-size-ratio))
102
+ );
82
103
  --card-service-launcher-metadata-line-height: var(--line-height-normal);
83
104
 
84
105
  --card-service-launcher-cta-min-height: calc(var(--control-height-lg) * 4);
@@ -24,7 +24,10 @@
24
24
 
25
25
  --chart-trend-baseline-border: initial;
26
26
  --chart-trend-tick-gap: var(--space-1);
27
- --chart-trend-tick-font-size: var(--font-size-xs);
27
+ --chart-trend-tick-font-size: var(
28
+ --font-size-xs,
29
+ calc(var(--font-size-base) / var(--font-size-ratio))
30
+ );
28
31
 
29
32
  --chart-trend-footer-gap: var(--space-2);
30
33
  }
@@ -15,5 +15,8 @@
15
15
 
16
16
  --chat-composer-header-border: initial;
17
17
 
18
- --chat-composer-footer-font-size: var(--font-size-xs);
18
+ --chat-composer-footer-font-size: var(
19
+ --font-size-xs,
20
+ calc(var(--font-size-base) / var(--font-size-ratio))
21
+ );
19
22
  }
@@ -37,7 +37,7 @@
37
37
  --control-variant-filled-background: var(--muted);
38
38
  --control-variant-filled-hover-background: initial;
39
39
 
40
- --control-count-font-size: var(--font-size-sm);
40
+ --control-count-font-size: var(--font-size-sm, var(--font-size-base));
41
41
  --control-count-color: var(--muted-foreground);
42
42
 
43
43
  --control-count-exceeded-color: initial;
@@ -49,11 +49,17 @@
49
49
  --input-addon-color: var(--muted-foreground);
50
50
  --input-addon-padding-inline: var(--control-padding-x);
51
51
 
52
- --switch-content-font-size: var(--font-size-xs);
52
+ --switch-content-font-size: var(
53
+ --font-size-xs,
54
+ calc(var(--font-size-base) / var(--font-size-ratio))
55
+ );
53
56
  --switch-content-space-inline: var(--space-1);
54
57
  --switch-spinner-size: calc(var(--switch-thumb-size) - var(--space-1));
55
58
 
56
- --slider-mark-font-size: var(--font-size-xs);
59
+ --slider-mark-font-size: var(
60
+ --font-size-xs,
61
+ calc(var(--font-size-base) / var(--font-size-ratio))
62
+ );
57
63
  --slider-mark-color: var(--muted-foreground);
58
64
  --slider-mark-space-block-start: var(--space-2);
59
65
  --slider-dot-size: var(--slider-track-height);
@@ -62,7 +68,10 @@
62
68
  --slider-dot-active-border-color: initial;
63
69
  --slider-tooltip-background: var(--popover);
64
70
  --slider-tooltip-color: var(--popover-foreground);
65
- --slider-tooltip-font-size: var(--font-size-xs);
71
+ --slider-tooltip-font-size: var(
72
+ --font-size-xs,
73
+ calc(var(--font-size-base) / var(--font-size-ratio))
74
+ );
66
75
  --slider-tooltip-radius: var(--radius-sm);
67
76
  --slider-tooltip-padding-inline: var(--space-2);
68
77
  --slider-tooltip-offset-block: var(--space-2);
@@ -161,14 +170,29 @@
161
170
  var(--search-input-edge-inset) + var(--control-icon-size) + var(--control-gap)
162
171
  );
163
172
 
164
- --choice-description-font-size: var(--font-size-xs);
165
- --color-picker-hex-font-size: var(--font-size-xs);
166
- --command-group-heading-font-size: var(--font-size-xs);
167
- --search-input-label-font-size: var(--font-size-xs);
168
- --tag-input-chip-font-size: var(--font-size-xs);
169
- --toggle-sm-font-size: var(--font-size-xs);
170
- --toggle-xs-font-size: var(--font-size-xs);
171
- --button-sm-font-size: var(--font-size-xs);
173
+ --choice-description-font-size: var(
174
+ --font-size-xs,
175
+ calc(var(--font-size-base) / var(--font-size-ratio))
176
+ );
177
+ --color-picker-hex-font-size: var(
178
+ --font-size-xs,
179
+ calc(var(--font-size-base) / var(--font-size-ratio))
180
+ );
181
+ --command-group-heading-font-size: var(
182
+ --font-size-xs,
183
+ calc(var(--font-size-base) / var(--font-size-ratio))
184
+ );
185
+ --search-input-label-font-size: var(
186
+ --font-size-xs,
187
+ calc(var(--font-size-base) / var(--font-size-ratio))
188
+ );
189
+ --tag-input-chip-font-size: var(
190
+ --font-size-xs,
191
+ calc(var(--font-size-base) / var(--font-size-ratio))
192
+ );
193
+ --toggle-sm-font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
194
+ --toggle-xs-font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
195
+ --button-sm-font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
172
196
  }
173
197
 
174
198
  :root {
@@ -207,7 +231,7 @@
207
231
  --control-composite-field-space-gap: var(--space-2);
208
232
 
209
233
  --input-file-button-height: var(--band-height-sm);
210
- --input-file-button-font-size: var(--font-size-sm);
234
+ --input-file-button-font-size: var(--font-size-sm, var(--font-size-base));
211
235
 
212
236
  --search-select-panel-max-width: 32rem;
213
237
 
@@ -218,13 +242,16 @@
218
242
  --search-select-list-max-height: none;
219
243
  --search-select-footer-space-inset: var(--space-1);
220
244
  --search-select-option-space-gap: var(--space-2);
221
- --search-select-option-font-size: var(--font-size-sm);
222
- --search-select-option-sublabel-font-size: var(--font-size-xs);
245
+ --search-select-option-font-size: var(--font-size-sm, var(--font-size-base));
246
+ --search-select-option-sublabel-font-size: var(
247
+ --font-size-xs,
248
+ calc(var(--font-size-base) / var(--font-size-ratio))
249
+ );
223
250
  --search-select-status-space-inline: var(--space-2);
224
251
  --search-select-status-space-block: var(--space-3);
225
252
 
226
253
  --search-select-placeholder-space-block: var(--space-6);
227
- --search-select-status-font-size: var(--font-size-sm);
254
+ --search-select-status-font-size: var(--font-size-sm, var(--font-size-base));
228
255
  --search-select-spinner-size: 1rem;
229
256
 
230
257
  --cascader-column-min-width: 9rem;
@@ -234,7 +261,7 @@
234
261
  --cascader-option-space-inline: var(--space-3);
235
262
  --cascader-option-space-block: var(--space-2);
236
263
  --cascader-option-space-gap: var(--space-1);
237
- --cascader-option-font-size: var(--font-size-sm);
264
+ --cascader-option-font-size: var(--font-size-sm, var(--font-size-base));
238
265
  --cascader-option-icon-size: var(--icon-size-md);
239
266
 
240
267
  --cascader-result-space-inline: var(--space-2);
@@ -258,11 +285,14 @@
258
285
  --time-picker-panel-width-12h: 13rem;
259
286
  --time-picker-heading-space-inline: var(--space-1);
260
287
  --time-picker-heading-space-block: 0.375rem;
261
- --time-picker-heading-font-size: var(--font-size-xs);
288
+ --time-picker-heading-font-size: var(
289
+ --font-size-xs,
290
+ calc(var(--font-size-base) / var(--font-size-ratio))
291
+ );
262
292
  --time-picker-column-space-inset: var(--space-1);
263
293
  --time-picker-option-space-block: 0.375rem;
264
294
  --time-picker-option-radius: var(--radius-md);
265
- --time-picker-option-font-size: var(--font-size-sm);
295
+ --time-picker-option-font-size: var(--font-size-sm, var(--font-size-base));
266
296
  --time-picker-footer-space-inset: var(--space-2);
267
297
  --time-picker-footer-space-gap: var(--space-2);
268
298
 
@@ -272,7 +302,7 @@
272
302
  --tree-select-row-space-block: 0.375rem;
273
303
  --tree-select-row-space-inline-end: var(--space-2);
274
304
  --tree-select-row-radius: var(--radius-sm);
275
- --tree-select-row-font-size: var(--font-size-sm);
305
+ --tree-select-row-font-size: var(--font-size-sm, var(--font-size-base));
276
306
 
277
307
  --tree-select-depth-space-base: var(--space-2);
278
308
  --tree-select-depth-space-step: 1.25rem;
@@ -285,7 +315,7 @@
285
315
 
286
316
  --calendar-month-space-gap: var(--space-4);
287
317
  --calendar-caption-space-inline: var(--space-8);
288
- --calendar-caption-font-size: var(--font-size-sm);
318
+ --calendar-caption-font-size: var(--font-size-sm, var(--font-size-base));
289
319
  --calendar-nav-space-block-start: var(--space-3);
290
320
 
291
321
  --calendar-nav-space-inline: var(--calendar-space-inset);
@@ -294,9 +324,12 @@
294
324
 
295
325
  --calendar-grid-space-block-start: var(--space-3);
296
326
  --calendar-week-space-block-start: var(--space-2);
297
- --calendar-weekday-font-size: var(--font-size-xs);
327
+ --calendar-weekday-font-size: var(
328
+ --font-size-xs,
329
+ calc(var(--font-size-base) / var(--font-size-ratio))
330
+ );
298
331
  --calendar-weekday-radius: var(--radius-md);
299
- --calendar-day-font-size: var(--font-size-sm);
332
+ --calendar-day-font-size: var(--font-size-sm, var(--font-size-base));
300
333
  --calendar-day-radius: var(--radius-md);
301
334
  --calendar-chevron-size: var(--icon-size-md);
302
335
  --calendar-footer-space-gap: var(--space-2);
@@ -312,7 +345,7 @@
312
345
  --transfer-panes-space-gap: var(--space-3);
313
346
  --transfer-header-space-inline: var(--space-3);
314
347
  --transfer-header-space-block: var(--space-2);
315
- --transfer-header-font-size: var(--font-size-sm);
348
+ --transfer-header-font-size: var(--font-size-sm, var(--font-size-base));
316
349
  --transfer-header-space-gap: var(--space-2);
317
350
  --transfer-search-space-inset: var(--space-2);
318
351
  --transfer-list-space-inset: var(--space-1);
@@ -320,10 +353,13 @@
320
353
  --transfer-row-space-block: var(--space-2);
321
354
  --transfer-row-space-gap: var(--space-2);
322
355
  --transfer-row-radius: var(--radius-sm);
323
- --transfer-row-font-size: var(--font-size-sm);
356
+ --transfer-row-font-size: var(--font-size-sm, var(--font-size-base));
324
357
 
325
358
  --transfer-row-check-space-block-start: 0.125rem;
326
- --transfer-row-description-font-size: var(--font-size-xs);
359
+ --transfer-row-description-font-size: var(
360
+ --font-size-xs,
361
+ calc(var(--font-size-base) / var(--font-size-ratio))
362
+ );
327
363
  --transfer-empty-space-block: var(--space-8);
328
364
  --transfer-actions-space-gap: var(--space-2);
329
365
  --transfer-action-icon-size: var(--icon-size-md);
@@ -332,7 +368,7 @@
332
368
  --month-picker-grid-space-block-start: var(--space-3);
333
369
  --month-picker-grid-space-gap: var(--space-1);
334
370
  --month-picker-cell-space-inline: var(--space-4);
335
- --month-picker-nav-font-size: var(--font-size-sm);
371
+ --month-picker-nav-font-size: var(--font-size-sm, var(--font-size-base));
336
372
 
337
373
  --month-picker-nav-rest-alpha: var(--calendar-nav-rest-alpha);
338
374
  --month-picker-icon-size: var(--icon-size-md);
@@ -343,7 +379,7 @@
343
379
  --button-bare-target-size: initial;
344
380
  --button-xs-space-inline: var(--space-2);
345
381
  --button-xs-space-gap: var(--space-1);
346
- --button-xs-font-size: var(--font-size-xs);
382
+ --button-xs-font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
347
383
  --button-xs-icon-size: var(--icon-size-xs);
348
384
 
349
385
  --button-icon-space-inline-md: var(--space-3);
@@ -358,7 +394,10 @@
358
394
 
359
395
  --button-count-min-width: var(--space-4);
360
396
  --button-count-space-inline: var(--space-1);
361
- --button-count-font-size: var(--font-size-xs);
397
+ --button-count-font-size: var(
398
+ --font-size-xs,
399
+ calc(var(--font-size-base) / var(--font-size-ratio))
400
+ );
362
401
 
363
402
  --button-count-background: initial;
364
403
  --button-count-color: initial;
@@ -369,7 +408,7 @@
369
408
  --button-count-secondary-background: initial;
370
409
  --button-count-secondary-color: initial;
371
410
 
372
- --control-label-font-size: var(--font-size-sm);
411
+ --control-label-font-size: var(--font-size-sm, var(--font-size-base));
373
412
 
374
413
  --control-label-line-height: var(--line-height-normal);
375
414