themelia-ui 3.0.0 → 3.2.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 (746) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +60 -33
  2. package/.agents/skills/themelia-ui/manifest.json +23 -0
  3. package/.agents/skills/themelia-ui/references/api-compatibility.md +5 -4
  4. package/.agents/skills/themelia-ui/references/blocks.md +123 -0
  5. package/.agents/skills/themelia-ui/references/composition-ladder.md +8 -8
  6. package/.agents/skills/themelia-ui/references/composition.md +100 -19
  7. package/.agents/skills/themelia-ui/references/forms.md +23 -3
  8. package/.agents/skills/themelia-ui/references/framework-wiring.md +41 -13
  9. package/.agents/skills/themelia-ui/references/i18n.md +4 -2
  10. package/.agents/skills/themelia-ui/references/imports.md +104 -104
  11. package/.agents/skills/themelia-ui/references/installation.md +60 -31
  12. package/.agents/skills/themelia-ui/references/migration.md +156 -5
  13. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +37 -25
  14. package/.agents/skills/themelia-ui/references/reference-workflows.md +43 -0
  15. package/.agents/skills/themelia-ui/references/structure-and-spacing.md +147 -0
  16. package/.agents/skills/themelia-ui/references/theming.md +174 -131
  17. package/.agents/skills/themelia-ui/references/troubleshooting.md +88 -30
  18. package/.agents/skills/themelia-ui/references/verification.md +60 -5
  19. package/CHANGELOG.md +212 -0
  20. package/README.md +48 -60
  21. package/dist/accordion-CHuzMmWL.js +143 -0
  22. package/dist/{action-menu-BNLURfMK.js → action-menu-BwiL_F6I.js} +35 -33
  23. package/dist/{alert-dialog-BMVo6Z-8.js → alert-dialog-Cg2HhuBe.js} +1 -1
  24. package/dist/avatar-Dc_BNYfB.js +93 -0
  25. package/dist/badge-VlJVZjdm.js +45 -0
  26. package/dist/base/accordion.js +1 -1
  27. package/dist/base/action-menu.js +1 -1
  28. package/dist/base/alert-dialog.js +1 -1
  29. package/dist/base/aspect-ratio.js +3 -1
  30. package/dist/base/avatar.js +1 -1
  31. package/dist/base/badge.js +2 -2
  32. package/dist/base/batch-action-bar.js +1 -1
  33. package/dist/base/buttons.js +1 -1
  34. package/dist/base/cards.js +1 -1
  35. package/dist/base/carousel.js +6 -4
  36. package/dist/base/chart.js +1 -1
  37. package/dist/base/choice-inputs.js +1 -1
  38. package/dist/base/combobox.js +1 -1
  39. package/dist/base/command.js +1 -1
  40. package/dist/base/context-menu.js +22 -21
  41. package/dist/base/copyable.js +1 -1
  42. package/dist/base/date-pickers.js +1 -1
  43. package/dist/base/dialog.js +1 -1
  44. package/dist/base/display.js +1 -1
  45. package/dist/base/dropdown-menu.js +1 -1
  46. package/dist/base/feedback.js +1 -1
  47. package/dist/base/forms-numeric.js +1 -1
  48. package/dist/base/forms.js +1 -1
  49. package/dist/base/hover-card.js +26 -23
  50. package/dist/base/input-group.js +1 -1
  51. package/dist/base/item.js +1 -1
  52. package/dist/base/label.js +1 -1
  53. package/dist/base/menubar.js +20 -14
  54. package/dist/base/navigation-menu.js +47 -38
  55. package/dist/base/navigation.js +1 -1
  56. package/dist/base/otp-input.js +36 -30
  57. package/dist/base/overlay.js +1 -1
  58. package/dist/base/popover-menu.js +1 -1
  59. package/dist/base/popover.js +1 -1
  60. package/dist/base/qr-code.js +51 -47
  61. package/dist/base/repeaters.js +1 -1
  62. package/dist/base/resizable.js +2 -0
  63. package/dist/base/sheet.js +1 -1
  64. package/dist/base/sidebar.js +1 -1
  65. package/dist/base/skeleton.js +1 -1
  66. package/dist/base/spinner.js +1 -1
  67. package/dist/base/structure.js +1 -1
  68. package/dist/base/table.js +1 -1
  69. package/dist/base/text-inputs.js +1 -1
  70. package/dist/base/timeline.js +1 -1
  71. package/dist/base/toaster.js +1 -1
  72. package/dist/base/toggle.js +21 -15
  73. package/dist/base/toolbar.js +1 -1
  74. package/dist/base/tooltip.js +1 -1
  75. package/dist/base/typography.js +2 -2
  76. package/dist/base/upload.js +1 -1
  77. package/dist/base/value-inputs.js +1 -1
  78. package/dist/{batch-action-bar-BZYNKXdV.js → batch-action-bar-DZVMVW83.js} +11 -8
  79. package/dist/{admin/patterns → blocks/admin}/access.js +79 -76
  80. package/dist/blocks/admin/commerce.js +2493 -0
  81. package/dist/{patterns → blocks}/analytics.js +312 -303
  82. package/dist/{patterns → blocks}/onboarding.js +27 -23
  83. package/dist/{patterns → blocks}/timelines.js +1 -1
  84. package/dist/buttons-BX2JfL5X.js +173 -0
  85. package/dist/cards-Ddhz43Bz.js +279 -0
  86. package/dist/chart-BkK3Xm10.js +201 -0
  87. package/dist/choice-inputs-NwRxvmZN.js +694 -0
  88. package/dist/combobox-519ubijc.js +292 -0
  89. package/dist/command-JjApYFds.js +156 -0
  90. package/dist/comments-CCQ2QRaU.js +1443 -0
  91. package/dist/components/base/action-menu/action-menu.d.ts +1 -1
  92. package/dist/components/base/action-menu/action-menu.types.d.ts +2 -2
  93. package/dist/components/base/avatar/avatar.d.ts +5 -2
  94. package/dist/components/base/badge/badge.d.ts +10 -10
  95. package/dist/components/base/badge/badge.variants.d.ts +1 -2
  96. package/dist/components/base/badge/index.d.ts +1 -2
  97. package/dist/components/base/buttons/button.d.ts +9 -8
  98. package/dist/components/base/buttons/button.types.d.ts +2 -2
  99. package/dist/components/base/buttons/index.d.ts +1 -1
  100. package/dist/components/base/buttons/text-button.d.ts +1 -1
  101. package/dist/components/base/cards/card-actions.d.ts +1 -1
  102. package/dist/components/base/cards/card.d.ts +3 -1
  103. package/dist/components/base/cards/partials/card-header.d.ts +2 -1
  104. package/dist/components/base/choice-inputs/choice.types.d.ts +2 -2
  105. package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +3 -3
  106. package/dist/components/base/command/command.d.ts +5 -2
  107. package/dist/components/base/display/icon-badge.d.ts +5 -3
  108. package/dist/components/base/display/index.d.ts +1 -1
  109. package/dist/components/base/display/metadata-list.d.ts +6 -6
  110. package/dist/components/base/display/metadata-value.d.ts +1 -1
  111. package/dist/components/base/display/separator.d.ts +2 -2
  112. package/dist/components/base/feedback/alert.d.ts +3 -2
  113. package/dist/components/base/feedback/empty.d.ts +5 -4
  114. package/dist/components/base/feedback/progress-circle.d.ts +2 -2
  115. package/dist/components/base/feedback/progress.d.ts +3 -1
  116. package/dist/components/base/forms/form-field.d.ts +2 -2
  117. package/dist/components/base/input-group/input-group.d.ts +8 -10
  118. package/dist/components/base/item/item.d.ts +2 -2
  119. package/dist/components/base/overlay/index.d.ts +1 -1
  120. package/dist/components/base/overlay/overlay.types.d.ts +7 -5
  121. package/dist/components/base/qr-code/qr-code.d.ts +4 -4
  122. package/dist/components/base/sheet/sheet.d.ts +1 -1
  123. package/dist/components/base/sidebar/sidebar.d.ts +9 -13
  124. package/dist/components/base/spinner/spinner.d.ts +2 -2
  125. package/dist/components/base/structure/adaptive-grid.d.ts +3 -3
  126. package/dist/components/base/structure/bleed.d.ts +4 -2
  127. package/dist/components/base/structure/grid.d.ts +10 -4
  128. package/dist/components/base/structure/index.d.ts +1 -1
  129. package/dist/components/base/structure/split.d.ts +4 -3
  130. package/dist/components/base/structure/stack.d.ts +5 -5
  131. package/dist/components/base/structure/structure.maps.d.ts +2 -1
  132. package/dist/components/base/structure/structure.types.d.ts +10 -4
  133. package/dist/components/base/toggle/toggle.d.ts +2 -2
  134. package/dist/components/base/toolbar/toolbar.d.ts +3 -3
  135. package/dist/components/base/typography/index.d.ts +2 -0
  136. package/dist/components/base/typography/rich-text/rich-text.variants.d.ts +9 -0
  137. package/dist/components/base/typography/text/index.d.ts +1 -0
  138. package/dist/components/base/typography/text/text.d.ts +15 -8
  139. package/dist/components/base/typography/text/text.variants.d.ts +41 -0
  140. package/dist/components/base/value-inputs/color-input.d.ts +1 -7
  141. package/dist/components/base/value-inputs/slider.d.ts +2 -7
  142. package/dist/components/{admin/patterns → blocks/admin}/commerce/vendor-profile.d.ts +2 -1
  143. package/dist/components/{patterns → blocks}/analytics/analytics.strings.d.ts +2 -5
  144. package/dist/components/features/actions/action-adapters.d.ts +3 -3
  145. package/dist/components/features/actions/actions.types.d.ts +3 -5
  146. package/dist/components/features/actions/index.d.ts +1 -1
  147. package/dist/components/features/activities/activities-feed.d.ts +1 -1
  148. package/dist/components/features/activities/activities.types.d.ts +4 -4
  149. package/dist/components/features/activities/activity-parts.d.ts +3 -3
  150. package/dist/components/features/activities/activity-row.d.ts +4 -4
  151. package/dist/components/features/activities/index.d.ts +1 -1
  152. package/dist/components/features/ai-chat/ai-chat.types.d.ts +10 -3
  153. package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +1 -1
  154. package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +1 -1
  155. package/dist/components/features/combobox/combobox.strings.d.ts +2 -2
  156. package/dist/components/features/combobox/fetching-combobox.d.ts +2 -1
  157. package/dist/components/features/combobox/resource-combobox.d.ts +3 -0
  158. package/dist/components/features/combobox/use-suggestions.d.ts +7 -0
  159. package/dist/components/features/event-calendar/event-calendar.types.d.ts +3 -0
  160. package/dist/components/features/media-library/index.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library-parts.d.ts +4 -3
  162. package/dist/components/features/media-library/media-library-views.d.ts +4 -3
  163. package/dist/components/features/media-library/media-library.d.ts +1 -1
  164. package/dist/components/features/media-library/media-library.strings.d.ts +12 -13
  165. package/dist/components/features/media-library/media-library.types.d.ts +11 -9
  166. package/dist/components/features/media-library/media-resource-gallery.d.ts +1 -1
  167. package/dist/components/features/media-library/use-media-library.d.ts +1 -4
  168. package/dist/components/features/overlays/action-overlay-frame.d.ts +1 -1
  169. package/dist/components/features/overlays/index.d.ts +1 -1
  170. package/dist/components/features/overlays/overlay-parts.d.ts +3 -3
  171. package/dist/components/features/overlays/overlays.types.d.ts +8 -7
  172. package/dist/components/features/rich-text-editor/index.d.ts +0 -1
  173. package/dist/components/features/table/data-table-body.d.ts +1 -1
  174. package/dist/components/features/table/data-table-expanded-row.d.ts +27 -0
  175. package/dist/components/features/table/data-table-header.d.ts +1 -1
  176. package/dist/components/features/table/data-table-size.d.ts +1 -1
  177. package/dist/components/features/table/data-table.d.ts +1 -1
  178. package/dist/components/features/table/index.d.ts +1 -1
  179. package/dist/components/features/table/table-helpers.d.ts +9 -3
  180. package/dist/components/features/table/table.strings.d.ts +11 -0
  181. package/dist/components/features/table/table.types.d.ts +60 -2
  182. package/dist/components/features/theme-tweaker/index.d.ts +1 -1
  183. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +1 -1
  184. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +6 -10
  185. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +22 -6
  186. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  187. package/dist/components/layout/auth/auth.d.ts +1 -1
  188. package/dist/components/layout/auth/auth.types.d.ts +1 -1
  189. package/dist/components/primitives/value.d.ts +3 -1
  190. package/dist/containers-B8d8U9GS.js +2 -0
  191. package/dist/{copyable-H1TUEY-H.js → copyable-D9Okb1w6.js} +12 -11
  192. package/dist/core.css +2 -2
  193. package/dist/css/access.css +2 -1
  194. package/dist/css/accordion.css +2 -1
  195. package/dist/css/action-menu.css +2 -1
  196. package/dist/css/activities.css +2 -1
  197. package/dist/css/ai-chat.css +2 -1
  198. package/dist/css/analytics.css +2 -1
  199. package/dist/css/app-shell.css +2 -1
  200. package/dist/css/aspect-ratio.css +2 -1
  201. package/dist/css/async-preview.css +2 -1
  202. package/dist/css/auth.css +2 -1
  203. package/dist/css/avatar.css +2 -1
  204. package/dist/css/badge.css +2 -1
  205. package/dist/css/batch-action-bar.css +2 -1
  206. package/dist/css/buttons.css +2 -1
  207. package/dist/css/cards.css +2 -1
  208. package/dist/css/carousel.css +2 -1
  209. package/dist/css/chart.css +2 -1
  210. package/dist/css/choice-inputs.css +2 -1
  211. package/dist/css/combobox.css +2 -1
  212. package/dist/css/combobox2.css +2 -1
  213. package/dist/css/command.css +2 -1
  214. package/dist/css/comments.css +2 -1
  215. package/dist/css/commerce.css +2 -1
  216. package/dist/css/containers.css +2 -1
  217. package/dist/css/copyable.css +2 -1
  218. package/dist/css/data-view.css +2 -1
  219. package/dist/css/date-pickers.css +2 -1
  220. package/dist/css/display.css +2 -1
  221. package/dist/css/dropdown-menu.css +2 -1
  222. package/dist/css/event-calendar.css +2 -1
  223. package/dist/css/feedback.css +2 -1
  224. package/dist/css/filters.css +2 -1
  225. package/dist/css/forms-numeric.css +2 -1
  226. package/dist/css/forms.css +2 -1
  227. package/dist/css/global-search.css +2 -1
  228. package/dist/css/header.css +2 -1
  229. package/dist/css/hover-card.css +2 -1
  230. package/dist/css/input-group.css +2 -1
  231. package/dist/css/item.css +2 -1
  232. package/dist/css/kanban.css +2 -1
  233. package/dist/css/label.css +2 -1
  234. package/dist/css/map.css +2 -1
  235. package/dist/css/media-library.css +2 -1
  236. package/dist/css/mentions.css +2 -1
  237. package/dist/css/menubar.css +2 -1
  238. package/dist/css/navigation-menu.css +2 -1
  239. package/dist/css/navigation.css +2 -1
  240. package/dist/css/navigation2.css +2 -1
  241. package/dist/css/onboarding.css +2 -1
  242. package/dist/css/otp-input.css +2 -1
  243. package/dist/css/overlay.css +2 -1
  244. package/dist/css/overlays.css +2 -1
  245. package/dist/css/page.css +2 -1
  246. package/dist/css/popover-menu.css +2 -1
  247. package/dist/css/popover.css +2 -1
  248. package/dist/css/primitives.css +2 -1
  249. package/dist/css/products.css +2 -1
  250. package/dist/css/qr-code.css +2 -1
  251. package/dist/css/repeaters.css +2 -1
  252. package/dist/css/resizable.css +2 -1
  253. package/dist/css/resource-assignment.css +2 -1
  254. package/dist/css/resource.css +2 -1
  255. package/dist/css/rich-text-editor.css +2 -1
  256. package/dist/css/schema-form.css +2 -1
  257. package/dist/css/sidebar.css +2 -1
  258. package/dist/css/sidebar2.css +2 -1
  259. package/dist/css/skeleton.css +2 -1
  260. package/dist/css/spinner.css +2 -1
  261. package/dist/css/structure.css +2 -1
  262. package/dist/css/sync.css +2 -1
  263. package/dist/css/table.css +2 -1
  264. package/dist/css/table2.css +2 -1
  265. package/dist/css/text-inputs.css +2 -1
  266. package/dist/css/theme-tweaker.css +2 -1
  267. package/dist/css/timeline.css +2 -1
  268. package/dist/css/timelines.css +2 -1
  269. package/dist/css/toaster.css +2 -1
  270. package/dist/css/toggle.css +2 -1
  271. package/dist/css/toolbar.css +2 -1
  272. package/dist/css/tooltip.css +2 -1
  273. package/dist/css/typography.css +2 -1
  274. package/dist/css/upload.css +2 -1
  275. package/dist/css/value-inputs.css +2 -1
  276. package/dist/css/workspace.css +2 -1
  277. package/dist/css-graph.json +1027 -0
  278. package/dist/date-pickers-BwCwKIVM.js +685 -0
  279. package/dist/{dialog-CtFCuTUF.js → dialog-CAnwRNrm.js} +1 -1
  280. package/dist/display-a7AoX_u7.js +664 -0
  281. package/dist/dropdown-menu-Br8kvjrF.js +235 -0
  282. package/dist/empty.js +0 -0
  283. package/dist/features/actions.js +6 -6
  284. package/dist/features/activities.js +219 -216
  285. package/dist/features/ai-chat.js +593 -565
  286. package/dist/features/async-preview.js +105 -286
  287. package/dist/features/combobox.js +328 -314
  288. package/dist/features/comments.js +1 -1
  289. package/dist/features/data-view.js +56 -55
  290. package/dist/features/event-calendar.js +189 -185
  291. package/dist/features/filters.js +1 -1
  292. package/dist/features/global-search.js +259 -260
  293. package/dist/features/kanban.js +39 -37
  294. package/dist/features/map.js +357 -354
  295. package/dist/features/media-library.js +931 -931
  296. package/dist/features/mentions.js +1 -1
  297. package/dist/features/overlays.js +1 -1
  298. package/dist/features/products.js +950 -942
  299. package/dist/features/resource-assignment.js +39 -37
  300. package/dist/features/resource.js +70 -71
  301. package/dist/features/rich-text-editor.js +2 -2
  302. package/dist/features/schema-form.js +342 -338
  303. package/dist/features/sync.js +14 -12
  304. package/dist/features/table.js +1 -1
  305. package/dist/features/theme-tweaker.js +1002 -962
  306. package/dist/feedback-D4qVsKlD.js +430 -0
  307. package/dist/{filters-DOLKRSmb.js → filters-BhsTkWpZ.js} +386 -383
  308. package/dist/forms-C0WeNPFF.js +250 -0
  309. package/dist/forms-numeric-IwQ1ltNf.js +582 -0
  310. package/dist/hooks/use-native-dialog.d.ts +1 -1
  311. package/dist/index.js +2 -2
  312. package/dist/input-group-HS_Z0Ei_.js +119 -0
  313. package/dist/item-M2pmpWXh.js +150 -0
  314. package/dist/{label-DumoMDm6.js → label-HOBXAscw.js} +7 -5
  315. package/dist/layout/app-shell.js +4 -2
  316. package/dist/layout/auth.js +102 -100
  317. package/dist/layout/header.js +190 -180
  318. package/dist/layout/navigation.js +1 -1
  319. package/dist/layout/page.js +18 -16
  320. package/dist/layout/settings.js +2 -2
  321. package/dist/layout/sidebar.js +50 -46
  322. package/dist/layout/workspace.js +71 -69
  323. package/dist/lib/action-presentation.d.ts +3 -3
  324. package/dist/lib/component-vocabulary.d.ts +2 -2
  325. package/dist/lib/css-length.d.ts +2 -0
  326. package/dist/lib/responsive.d.ts +1 -1
  327. package/dist/lib/theming/index.d.ts +1 -0
  328. package/dist/lib/theming/recipes.d.ts +2 -2
  329. package/dist/lib/theming/themes/dense.d.ts +3 -0
  330. package/dist/lib/theming/themes/editorial.d.ts +3 -0
  331. package/dist/lib/theming/themes/index.d.ts +8 -0
  332. package/dist/lib/theming/themes/pair.d.ts +7 -0
  333. package/dist/lib/theming/themes/sharp.d.ts +3 -0
  334. package/dist/lib/theming/themes/soft.d.ts +3 -0
  335. package/dist/lib/theming/themes/types.d.ts +12 -0
  336. package/dist/lib/ui-provider/index.d.ts +1 -1
  337. package/dist/lib/ui-provider/scope.d.ts +5 -8
  338. package/dist/lib/ui-provider/tokens.d.ts +11 -3
  339. package/dist/lib/ui-provider/tokens.generated.d.ts +6 -4
  340. package/dist/lib/ui-provider/types.d.ts +17 -19
  341. package/dist/lib/ui-provider/ui-scope.d.ts +1 -1
  342. package/dist/{mentions-BbsEHlcH.js → mentions-BOxbigwp.js} +113 -111
  343. package/dist/navigation-Bgu7Vc0M.js +622 -0
  344. package/dist/navigation-DiYACqpE.js +216 -0
  345. package/dist/overlay-BuQOl8aP.js +356 -0
  346. package/dist/{overlays-DvVoS3td.js → overlays-1sULyytH.js} +77 -75
  347. package/dist/popover-CA7SP_iz.js +127 -0
  348. package/dist/popover-menu-QXgQeWeG.js +192 -0
  349. package/dist/{primitives-D0bdDozz.js → primitives-BskKlf35.js} +181 -178
  350. package/dist/primitives.js +1 -1
  351. package/dist/profiles/admin.json +6 -36
  352. package/dist/profiles/general.json +6 -96
  353. package/dist/repeaters-CeH20dvr.js +445 -0
  354. package/dist/rich-text-editor-D_Ppm8yh.js +491 -0
  355. package/dist/{sheet-CKcmRbJ9.js → sheet-CJ1-OAla.js} +3 -3
  356. package/dist/sidebar-D8uGqxio.js +421 -0
  357. package/dist/skeleton-BTKNKTdj.js +173 -0
  358. package/dist/spinner-Tc1QCnxM.js +30 -0
  359. package/dist/{structure-D0WGQAP3.js → structure-CynEZ-OY.js} +15 -23
  360. package/dist/style.css +1 -1
  361. package/dist/styles/TOKENS.md +116 -275
  362. package/dist/styles/animation.css +114 -0
  363. package/dist/styles/base.css +7 -6
  364. package/dist/styles/fields.css +45 -63
  365. package/dist/styles/focus.css +12 -0
  366. package/dist/styles/forced-colors.css +11 -10
  367. package/dist/styles/index.css +23 -30
  368. package/dist/styles/map.css +45 -34
  369. package/dist/styles/mentions.css +14 -52
  370. package/dist/styles/overlays.css +7 -7
  371. package/dist/styles/tailwind.css +76 -127
  372. package/dist/styles/targets.css +3 -3
  373. package/dist/styles/theme/colour.css +86 -0
  374. package/dist/styles/theme/density.css +31 -0
  375. package/dist/styles/theme/elevation.css +9 -0
  376. package/dist/styles/theme/layout.css +18 -0
  377. package/dist/styles/theme/motion.css +18 -0
  378. package/dist/styles/theme/shape.css +12 -0
  379. package/dist/styles/theme/size.css +10 -0
  380. package/dist/styles/theme/spacing.css +11 -0
  381. package/dist/styles/theme/typography.css +20 -0
  382. package/dist/styles/tone.css +61 -0
  383. package/dist/table-B7dtIFUx.js +1262 -0
  384. package/dist/table-Ds_eO9av.js +191 -0
  385. package/dist/tailwind.css +76 -127
  386. package/dist/text-inputs-BboE77nZ.js +395 -0
  387. package/dist/theming-C5ygF5uf.js +292 -0
  388. package/dist/theming.js +2 -2
  389. package/dist/{timeline-BdaGRyj-.js → timeline-BR_jNgvz.js} +57 -49
  390. package/dist/{timelines-BB7550mz.js → timelines-DXG1BfIN.js} +69 -67
  391. package/dist/{toaster-bBMgXm8z.js → toaster-CXL8L7Mm.js} +106 -99
  392. package/dist/tokens.json +1027 -636
  393. package/dist/toolbar-DBK-c4yy.js +74 -0
  394. package/dist/tooltip-BPYP-jUm.js +76 -0
  395. package/dist/{typography-BkxEiwQ1.js → typography-DmeR05Er.js} +87 -53
  396. package/dist/{ui-provider-Cmoq6i_D.js → ui-provider-DpzLUD12.js} +117 -69
  397. package/dist/ui-provider.js +1 -1
  398. package/dist/upload-CYuoJykZ.js +968 -0
  399. package/dist/use-async-preview-BFwf9ElY.js +188 -0
  400. package/dist/value-inputs-ng8aVJJZ.js +728 -0
  401. package/docs/README.md +13 -3
  402. package/docs/build/browser-composition-fixture.ts +28 -0
  403. package/docs/build/recipes.md +11484 -10723
  404. package/docs/generated/component-index.json +9809 -9169
  405. package/docs/generated/components/INDEX.md +5 -5
  406. package/docs/generated/components/base--accordion.md +51 -2
  407. package/docs/generated/components/base--action-menu.md +14 -15
  408. package/docs/generated/components/base--alert-dialog.md +3 -4
  409. package/docs/generated/components/base--aspect-ratio.md +3 -4
  410. package/docs/generated/components/base--avatar.md +7 -7
  411. package/docs/generated/components/base--badge.md +159 -27
  412. package/docs/generated/components/base--batch-action-bar.md +6 -7
  413. package/docs/generated/components/base--buttons.md +151 -47
  414. package/docs/generated/components/base--cards.md +107 -14
  415. package/docs/generated/components/base--carousel.md +1 -2
  416. package/docs/generated/components/base--chart.md +44 -8
  417. package/docs/generated/components/base--choice-inputs.md +10 -11
  418. package/docs/generated/components/base--combobox.md +3 -4
  419. package/docs/generated/components/base--command.md +6 -6
  420. package/docs/generated/components/base--context-menu.md +1 -2
  421. package/docs/generated/components/base--copyable.md +6 -7
  422. package/docs/generated/components/base--date-pickers.md +6 -7
  423. package/docs/generated/components/base--dialog.md +6 -7
  424. package/docs/generated/components/base--direction.md +1 -1
  425. package/docs/generated/components/base--display.md +234 -54
  426. package/docs/generated/components/base--dropdown-menu.md +6 -7
  427. package/docs/generated/components/base--feedback.md +71 -18
  428. package/docs/generated/components/base--forms-numeric.md +6 -7
  429. package/docs/generated/components/base--forms.md +84 -14
  430. package/docs/generated/components/base--hover-card.md +3 -4
  431. package/docs/generated/components/base--input-group.md +27 -30
  432. package/docs/generated/components/base--item.md +8 -9
  433. package/docs/generated/components/base--label.md +2 -3
  434. package/docs/generated/components/base--menubar.md +2 -4
  435. package/docs/generated/components/base--navigation-menu.md +2 -3
  436. package/docs/generated/components/base--navigation.md +2 -3
  437. package/docs/generated/components/base--otp-input.md +3 -4
  438. package/docs/generated/components/base--overlay.md +56 -47
  439. package/docs/generated/components/base--popover-menu.md +7 -8
  440. package/docs/generated/components/base--popover.md +9 -10
  441. package/docs/generated/components/base--qr-code.md +7 -8
  442. package/docs/generated/components/base--repeaters.md +6 -7
  443. package/docs/generated/components/base--resizable.md +2 -3
  444. package/docs/generated/components/base--sheet.md +12 -13
  445. package/docs/generated/components/base--sidebar.md +9 -11
  446. package/docs/generated/components/base--skeleton.md +6 -7
  447. package/docs/generated/components/base--slot.md +1 -1
  448. package/docs/generated/components/base--spinner.md +5 -7
  449. package/docs/generated/components/base--structure.md +320 -70
  450. package/docs/generated/components/base--table.md +61 -3
  451. package/docs/generated/components/base--text-inputs.md +17 -18
  452. package/docs/generated/components/base--timeline.md +45 -4
  453. package/docs/generated/components/base--toaster.md +43 -12
  454. package/docs/generated/components/base--toggle.md +11 -12
  455. package/docs/generated/components/base--toolbar.md +7 -8
  456. package/docs/generated/components/base--tooltip.md +5 -6
  457. package/docs/generated/components/base--typography.md +317 -32
  458. package/docs/generated/components/base--upload.md +8 -9
  459. package/docs/generated/components/base--value-inputs.md +9 -38
  460. package/docs/generated/components/{admin--patterns--access.md → blocks--admin--access.md} +15 -6
  461. package/docs/generated/components/{admin--patterns--commerce.md → blocks--admin--commerce.md} +40 -41
  462. package/docs/generated/components/{patterns--analytics.md → blocks--analytics.md} +57 -14
  463. package/docs/generated/components/{patterns--onboarding.md → blocks--onboarding.md} +6 -7
  464. package/docs/generated/components/{patterns--timelines.md → blocks--timelines.md} +6 -7
  465. package/docs/generated/components/features--actions.md +8 -18
  466. package/docs/generated/components/features--activities.md +31 -32
  467. package/docs/generated/components/features--ai-chat.md +15 -15
  468. package/docs/generated/components/features--async-preview.md +5 -6
  469. package/docs/generated/components/features--combobox.md +71 -5
  470. package/docs/generated/components/features--comments.md +0 -1
  471. package/docs/generated/components/features--data-view.md +63 -8
  472. package/docs/generated/components/features--event-calendar.md +1 -2
  473. package/docs/generated/components/features--filters.md +11 -2
  474. package/docs/generated/components/features--global-search.md +1 -2
  475. package/docs/generated/components/features--kanban.md +1 -2
  476. package/docs/generated/components/features--map.md +1 -2
  477. package/docs/generated/components/features--media-library.md +105 -38
  478. package/docs/generated/components/features--mentions.md +7 -7
  479. package/docs/generated/components/features--overlays.md +75 -22
  480. package/docs/generated/components/features--products.md +10 -11
  481. package/docs/generated/components/features--resource-assignment.md +2 -3
  482. package/docs/generated/components/features--resource.md +3 -4
  483. package/docs/generated/components/features--rich-text-editor.md +42 -13
  484. package/docs/generated/components/features--schema-form.md +1 -2
  485. package/docs/generated/components/features--sync.md +2 -3
  486. package/docs/generated/components/features--table.md +162 -12
  487. package/docs/generated/components/features--theme-tweaker.md +30 -15
  488. package/docs/generated/components/forms.md +2 -2
  489. package/docs/generated/components/layout--app-shell.md +41 -11
  490. package/docs/generated/components/layout--auth.md +8 -9
  491. package/docs/generated/components/layout--containers.md +40 -1
  492. package/docs/generated/components/layout--header.md +2 -3
  493. package/docs/generated/components/layout--navigation.md +0 -1
  494. package/docs/generated/components/layout--page.md +33 -5
  495. package/docs/generated/components/layout--settings.md +0 -1
  496. package/docs/generated/components/layout--sidebar.md +47 -7
  497. package/docs/generated/components/layout--workspace.md +3 -4
  498. package/docs/generated/components/primitives.md +128 -17
  499. package/docs/generated/components/theming.md +147 -4
  500. package/docs/generated/components/ui-provider.md +96 -78
  501. package/docs/generated/composition-ladder.md +8 -8
  502. package/docs/generated/consumer-contract.json +5736 -0
  503. package/docs/generated/imports.md +104 -104
  504. package/docs/generated/migration-broad-imports.json +267 -90
  505. package/docs/generated/migration-broad-imports.md +266 -101
  506. package/docs/generated/migration-codemod.json +365 -70
  507. package/docs/generated/migration.md +665 -95
  508. package/docs/generated/profiles.md +27 -27
  509. package/docs/generated/public-api.md +104 -102
  510. package/docs/generated/recipes.json +755 -810
  511. package/docs/generated/workflows/communications-overview/analytics/communications-reference.tsx +19 -0
  512. package/docs/generated/workflows/index.json +691 -0
  513. package/docs/generated/workflows/media-picking/media-library/media-picking-reference.tsx +63 -0
  514. package/docs/generated/workflows/media-picking/media-library/reference-data.ts +3 -0
  515. package/docs/generated/workflows/multi-section-form/form-workflow/multi-section-reference.tsx +46 -0
  516. package/docs/generated/workflows/nested-action-flow/action-overlays/nested-action-reference.tsx +39 -0
  517. package/docs/generated/workflows/record-detail/page-layout/record-detail-reference.tsx +24 -0
  518. package/docs/generated/workflows/resource-index/data-view/resource-index-reference.tsx +51 -0
  519. package/docs/generated/workflows/scoped-resource-selection/combobox/scoped-resource-reference.tsx +50 -0
  520. package/docs/generated/workflows/website-content-editor/media-library/reference-data.ts +3 -0
  521. package/docs/generated/workflows/website-content-editor/rich-text-editor/website-content-reference.tsx +33 -0
  522. package/docs/generated/workflows/workspace-navigation/app-shell/workspace-navigation-reference.tsx +26 -0
  523. package/docs/learn/api-compatibility.md +5 -4
  524. package/docs/learn/blocks.md +123 -0
  525. package/docs/learn/composition.md +100 -19
  526. package/docs/learn/forms.md +23 -3
  527. package/docs/learn/framework-wiring.md +41 -13
  528. package/docs/learn/i18n.md +4 -2
  529. package/docs/learn/installation.md +60 -31
  530. package/docs/learn/migration.md +156 -5
  531. package/docs/learn/provider-and-scoping.md +37 -25
  532. package/docs/learn/reference-workflows.md +43 -0
  533. package/docs/learn/structure-and-spacing.md +147 -0
  534. package/docs/learn/theming.md +174 -131
  535. package/docs/learn/troubleshooting.md +88 -30
  536. package/docs/learn/verification.md +60 -5
  537. package/package.json +42 -473
  538. package/scripts/consumer/codemod.mjs +50 -32
  539. package/scripts/consumer/contract-reader.mjs +42 -0
  540. package/scripts/consumer/css-scan.mjs +51 -0
  541. package/scripts/consumer/diagnose.mjs +136 -0
  542. package/scripts/consumer/find-component.mjs +30 -17
  543. package/scripts/consumer/install-skill.mjs +93 -11
  544. package/src/styles/TOKENS.md +116 -275
  545. package/dist/accordion-6YPJ9XRO.js +0 -135
  546. package/dist/admin/patterns/access.css +0 -15
  547. package/dist/admin/patterns/commerce.css +0 -29
  548. package/dist/admin/patterns/commerce.js +0 -2493
  549. package/dist/avatar-CS7zow2q.js +0 -85
  550. package/dist/badge-CxOuTfVr.js +0 -63
  551. package/dist/base/accordion.css +0 -3
  552. package/dist/base/action-menu.css +0 -6
  553. package/dist/base/alert-dialog.css +0 -4
  554. package/dist/base/aspect-ratio.css +0 -2
  555. package/dist/base/avatar.css +0 -4
  556. package/dist/base/badge.css +0 -2
  557. package/dist/base/batch-action-bar.css +0 -5
  558. package/dist/base/buttons.css +0 -4
  559. package/dist/base/cards.css +0 -13
  560. package/dist/base/carousel.css +0 -5
  561. package/dist/base/chart.css +0 -2
  562. package/dist/base/choice-inputs.css +0 -10
  563. package/dist/base/combobox.css +0 -3
  564. package/dist/base/command.css +0 -9
  565. package/dist/base/context-menu.css +0 -2
  566. package/dist/base/copyable.css +0 -6
  567. package/dist/base/date-pickers.css +0 -11
  568. package/dist/base/dialog.css +0 -4
  569. package/dist/base/display.css +0 -8
  570. package/dist/base/dropdown-menu.css +0 -2
  571. package/dist/base/feedback.css +0 -5
  572. package/dist/base/forms-numeric.css +0 -12
  573. package/dist/base/forms.css +0 -14
  574. package/dist/base/hover-card.css +0 -2
  575. package/dist/base/input-group.css +0 -6
  576. package/dist/base/item.css +0 -9
  577. package/dist/base/label.css +0 -3
  578. package/dist/base/menubar.css +0 -2
  579. package/dist/base/navigation-menu.css +0 -2
  580. package/dist/base/navigation.css +0 -12
  581. package/dist/base/otp-input.css +0 -9
  582. package/dist/base/overlay.css +0 -4
  583. package/dist/base/popover-menu.css +0 -11
  584. package/dist/base/popover.css +0 -3
  585. package/dist/base/qr-code.css +0 -2
  586. package/dist/base/repeaters.css +0 -18
  587. package/dist/base/resizable.css +0 -2
  588. package/dist/base/sheet.css +0 -4
  589. package/dist/base/sidebar.css +0 -12
  590. package/dist/base/skeleton.css +0 -9
  591. package/dist/base/spinner.css +0 -2
  592. package/dist/base/structure.css +0 -2
  593. package/dist/base/table.css +0 -3
  594. package/dist/base/text-inputs.css +0 -2
  595. package/dist/base/timeline.css +0 -9
  596. package/dist/base/toaster.css +0 -2
  597. package/dist/base/toggle.css +0 -2
  598. package/dist/base/toolbar.css +0 -5
  599. package/dist/base/tooltip.css +0 -2
  600. package/dist/base/typography.css +0 -2
  601. package/dist/base/upload.css +0 -10
  602. package/dist/base/value-inputs.css +0 -14
  603. package/dist/buttons-CqXKWty3.js +0 -179
  604. package/dist/cards-C6Ulbkw7.js +0 -271
  605. package/dist/chart-nomhJ87z.js +0 -193
  606. package/dist/choice-inputs-OUDn0kQw.js +0 -680
  607. package/dist/combobox-C8oP92bT.js +0 -266
  608. package/dist/command-Bp3B6pUu.js +0 -143
  609. package/dist/comments-CAnDlyXO.js +0 -1438
  610. package/dist/components/admin/patterns/index.d.ts +0 -2
  611. package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +0 -2
  612. package/dist/components/patterns/index.d.ts +0 -3
  613. package/dist/css/styles.css +0 -1
  614. package/dist/date-pickers-DOwIT-Nk.js +0 -661
  615. package/dist/display-B3Q17h5z.js +0 -645
  616. package/dist/dropdown-menu-TyNLCLML.js +0 -223
  617. package/dist/features/actions.css +0 -11
  618. package/dist/features/activities.css +0 -25
  619. package/dist/features/ai-chat.css +0 -14
  620. package/dist/features/async-preview.css +0 -10
  621. package/dist/features/combobox.css +0 -12
  622. package/dist/features/comments.css +0 -24
  623. package/dist/features/data-view.css +0 -31
  624. package/dist/features/event-calendar.css +0 -17
  625. package/dist/features/filters.css +0 -24
  626. package/dist/features/global-search.css +0 -19
  627. package/dist/features/kanban.css +0 -7
  628. package/dist/features/map.css +0 -15
  629. package/dist/features/media-library.css +0 -27
  630. package/dist/features/mentions.css +0 -17
  631. package/dist/features/overlays.css +0 -11
  632. package/dist/features/products.css +0 -29
  633. package/dist/features/resource-assignment.css +0 -14
  634. package/dist/features/resource.css +0 -15
  635. package/dist/features/rich-text-editor.css +0 -8
  636. package/dist/features/schema-form.css +0 -22
  637. package/dist/features/sync.css +0 -11
  638. package/dist/features/table.css +0 -20
  639. package/dist/features/theme-tweaker.css +0 -27
  640. package/dist/feedback-DRerHGuV.js +0 -469
  641. package/dist/forms-CPrGGif_.js +0 -242
  642. package/dist/forms-numeric-CPVsL7Vf.js +0 -569
  643. package/dist/index.css +0 -3
  644. package/dist/input-group-BYe0rhoB.js +0 -126
  645. package/dist/item-B3yQ26as.js +0 -146
  646. package/dist/layout/app-shell.css +0 -13
  647. package/dist/layout/auth.css +0 -14
  648. package/dist/layout/containers.css +0 -2
  649. package/dist/layout/header.css +0 -20
  650. package/dist/layout/navigation.css +0 -11
  651. package/dist/layout/page.css +0 -15
  652. package/dist/layout/settings.css +0 -16
  653. package/dist/layout/sidebar.css +0 -16
  654. package/dist/layout/workspace.css +0 -15
  655. package/dist/navigation-CsqTA16F.js +0 -614
  656. package/dist/navigation-DzxzPuwg.js +0 -202
  657. package/dist/overlay-WQOsLd69.js +0 -345
  658. package/dist/patterns/analytics.css +0 -15
  659. package/dist/patterns/onboarding.css +0 -11
  660. package/dist/patterns/timelines.css +0 -11
  661. package/dist/popover-DriLnIFc.js +0 -123
  662. package/dist/popover-menu-C2UCMAe7.js +0 -189
  663. package/dist/primitives.css +0 -3
  664. package/dist/repeaters-DuP1N0nw.js +0 -438
  665. package/dist/rich-text-editor-BQXFe9oN.js +0 -595
  666. package/dist/sidebar-D0N6ckJL.js +0 -412
  667. package/dist/skeleton-DGR9df28.js +0 -172
  668. package/dist/spinner-CUAVFecI.js +0 -52
  669. package/dist/styles/FACTORS.md +0 -36
  670. package/dist/styles/SCOPES.md +0 -86
  671. package/dist/styles/themes/default.css +0 -164
  672. package/dist/styles/theming/animation.css +0 -143
  673. package/dist/styles/theming/colors.css +0 -97
  674. package/dist/styles/theming/feedback.css +0 -17
  675. package/dist/styles/theming/field.css +0 -21
  676. package/dist/styles/theming/focus.css +0 -88
  677. package/dist/styles/theming/layers.css +0 -13
  678. package/dist/styles/theming/layout.css +0 -21
  679. package/dist/styles/theming/motion.css +0 -42
  680. package/dist/styles/theming/overlay.css +0 -52
  681. package/dist/styles/theming/sizing.css +0 -118
  682. package/dist/styles/theming/text.css +0 -30
  683. package/dist/styles/theming/typography.css +0 -26
  684. package/dist/styles/tokens/components.css +0 -22
  685. package/dist/styles/tokens/foundation.css +0 -80
  686. package/dist/styles/tokens/layout.css +0 -19
  687. package/dist/styles/tokens/palette.css +0 -88
  688. package/dist/styles/tokens/primitives.css +0 -18
  689. package/dist/styles/tokens/states.css +0 -77
  690. package/dist/table-BC4qqsUb.js +0 -180
  691. package/dist/table-BHDpjajL.js +0 -982
  692. package/dist/text-inputs-DF_lD7pA.js +0 -385
  693. package/dist/theming-D6KRU7hO.js +0 -104
  694. package/dist/toolbar-DWRywF0R.js +0 -68
  695. package/dist/tooltip-t1VQQ2tZ.js +0 -73
  696. package/dist/upload-B38YZeFJ.js +0 -938
  697. package/dist/value-inputs-Q4ymjXlV.js +0 -716
  698. package/src/styles/FACTORS.md +0 -36
  699. package/src/styles/SCOPES.md +0 -86
  700. /package/dist/components/{admin/patterns → blocks/admin}/access/admin.strings.d.ts +0 -0
  701. /package/dist/components/{admin/patterns → blocks/admin}/access/credential-list.d.ts +0 -0
  702. /package/dist/components/{admin/patterns → blocks/admin}/access/index.d.ts +0 -0
  703. /package/dist/components/{admin/patterns → blocks/admin}/access/role-permissions.d.ts +0 -0
  704. /package/dist/components/{admin/patterns → blocks/admin}/access/sensitive-action.d.ts +0 -0
  705. /package/dist/components/{admin/patterns → blocks/admin}/commerce/account.d.ts +0 -0
  706. /package/dist/components/{admin/patterns → blocks/admin}/commerce/address-lines.d.ts +0 -0
  707. /package/dist/components/{admin/patterns → blocks/admin}/commerce/booking.d.ts +0 -0
  708. /package/dist/components/{admin/patterns → blocks/admin}/commerce/cart.d.ts +0 -0
  709. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.strings.d.ts +0 -0
  710. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.types.d.ts +0 -0
  711. /package/dist/components/{admin/patterns → blocks/admin}/commerce/format-amount.d.ts +0 -0
  712. /package/dist/components/{admin/patterns → blocks/admin}/commerce/index.d.ts +0 -0
  713. /package/dist/components/{admin/patterns → blocks/admin}/commerce/inventory-section.d.ts +0 -0
  714. /package/dist/components/{admin/patterns → blocks/admin}/commerce/invoice.d.ts +0 -0
  715. /package/dist/components/{admin/patterns → blocks/admin}/commerce/loyalty.d.ts +0 -0
  716. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-customer.d.ts +0 -0
  717. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-detail.d.ts +0 -0
  718. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-line-item.d.ts +0 -0
  719. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-transactions.d.ts +0 -0
  720. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order.d.ts +0 -0
  721. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-listing.d.ts +0 -0
  722. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-score.d.ts +0 -0
  723. /package/dist/components/{admin/patterns → blocks/admin}/commerce/summary-panel.d.ts +0 -0
  724. /package/dist/components/{patterns → blocks}/analytics/activity-heatmap.d.ts +0 -0
  725. /package/dist/components/{patterns → blocks}/analytics/analytics.types.d.ts +0 -0
  726. /package/dist/components/{patterns → blocks}/analytics/chart-card.d.ts +0 -0
  727. /package/dist/components/{patterns → blocks}/analytics/format-metric-value.d.ts +0 -0
  728. /package/dist/components/{patterns → blocks}/analytics/index.d.ts +0 -0
  729. /package/dist/components/{patterns → blocks}/analytics/metric-bar.d.ts +0 -0
  730. /package/dist/components/{patterns → blocks}/analytics/metric-comparison.d.ts +0 -0
  731. /package/dist/components/{patterns → blocks}/analytics/metric-gradient.d.ts +0 -0
  732. /package/dist/components/{patterns → blocks}/analytics/metric-grid.d.ts +0 -0
  733. /package/dist/components/{patterns → blocks}/analytics/metric-micro-grid.d.ts +0 -0
  734. /package/dist/components/{patterns → blocks}/analytics/metric-skeleton.d.ts +0 -0
  735. /package/dist/components/{patterns → blocks}/analytics/metric-trend-chip.d.ts +0 -0
  736. /package/dist/components/{patterns → blocks}/analytics/metric.d.ts +0 -0
  737. /package/dist/components/{patterns → blocks}/analytics/time-ruler.d.ts +0 -0
  738. /package/dist/components/{patterns → blocks}/onboarding/checklist.d.ts +0 -0
  739. /package/dist/components/{patterns → blocks}/onboarding/index.d.ts +0 -0
  740. /package/dist/components/{patterns → blocks}/onboarding/onboarding.strings.d.ts +0 -0
  741. /package/dist/components/{patterns → blocks}/timelines/changelog-timeline.d.ts +0 -0
  742. /package/dist/components/{patterns → blocks}/timelines/index.d.ts +0 -0
  743. /package/dist/components/{patterns → blocks}/timelines/milestones-timeline.d.ts +0 -0
  744. /package/dist/components/{patterns → blocks}/timelines/steps.d.ts +0 -0
  745. /package/dist/components/{patterns → blocks}/timelines/timelines.strings.d.ts +0 -0
  746. /package/dist/styles/{theming/breakpoints.css → breakpoints.css} +0 -0
@@ -1,86 +0,0 @@
1
- # Why derived tokens are not declared on `:root`
2
-
3
- A custom property's `var()` references are substituted **where the property is declared**.
4
- So a derived token declared once at `:root`:
5
-
6
- ```css
7
- :root {
8
- --control-h: calc(var(--height-control) * var(--density-scale));
9
- --button-default-bg: var(--primary);
10
- }
11
- ```
12
-
13
- …resolves `--density-scale` and `--primary` at `:root`, and the RESULT is what inherits.
14
- Setting `--density-scale: 0.875` or `--primary: red` on a nested element then changes
15
- nothing: `--control-h` is already `calc(2.125rem * 1)` and `--button-default-bg` is already
16
- the root colour.
17
-
18
- So derived tokens are declared at every **scope boundary**, and each boundary re-derives from
19
- its own inputs:
20
-
21
- ```css
22
- :root,
23
- [data-ui-scope],
24
- [data-density],
25
- [data-theme],
26
- .light,
27
- .dark {
28
- --control-h: calc(var(--height-control) * var(--density-scale));
29
- }
30
- ```
31
-
32
- `<UIProvider>`, `<UIScope>` and `<Scope>` render `[data-ui-scope]`, so any provider, nested
33
- or not, re-derives the system from whatever it overrides. `[data-density]` and `[data-theme]`
34
- do the same without a provider. Only these elements recompute, not every element.
35
-
36
- **Raw inputs are the opposite.** Literals a theme sets (the radii, border widths, font
37
- stacks, palette steps, the three factors `--scale`, `--density-scale` and `--text-scale`,
38
- `--height-control`, `--surface-x/y`, `--row-x/y`) are declared at `:root` only, so a value
39
- you set on `:root` inherits through every boundary. Semantic colours are derived: a value set
40
- on `:root` alone is re-declared at the first boundary. Set those through the provider or at
41
- the boundary list; see [Theming](../../docs/learn/theming.md#setting-a-theme).
42
-
43
- ## Theme mode at a bare boundary
44
-
45
- A bare boundary (`[data-ui-scope]` or `[data-density]` with no theme of its own) re-derives
46
- in the mode it inherits. The explicit dark block therefore also matches bare boundaries
47
- nested under a dark ancestor, or the light value would win one level down:
48
-
49
- ```css
50
- .dark,
51
- [data-theme="dark"],
52
- :is(.dark, [data-theme="dark"]) :is([data-ui-scope], [data-density]):not(.light, [data-theme="light"]) {
53
- --background: var(--neutral-900);
54
- }
55
- ```
56
-
57
- The `prefers-color-scheme: dark` block (`colorScheme: "system"`) does the same, and honours an
58
- explicit light choice however it is spelled: the `.light` class (next-themes' class strategy)
59
- or `data-theme="light"`, on the boundary itself or on any ancestor:
60
-
61
- ```css
62
- @media (prefers-color-scheme: dark) {
63
- :root:not(.light, [data-theme="light"]),
64
- [data-ui-scope]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *),
65
- [data-density]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *) {
66
- --background: var(--neutral-900);
67
- }
68
- }
69
- ```
70
-
71
- A dark override of your own needs both blocks, with exactly these selectors.
72
-
73
- **The one nesting a descendant selector cannot see.** An explicit light island inside a
74
- `.dark` tree keeps its own boundary light, but a bare boundary nested inside that island
75
- matches `.dark …` again and re-derives dark. CSS has no "nearest theme ancestor". Give each
76
- boundary inside the island its own `data-theme`, or use `UIScope`, which writes the resolved
77
- scheme on every boundary it renders. (Under the OS preference alone the island holds: the
78
- media block skips every descendant of a light scope.)
79
-
80
- **A surface's ground is reset at a colour island.** `--surface-ground` carries the colour a
81
- surface painted, resolved where that surface set it. A `[data-theme]`, `.light` or `.dark`
82
- element resets it to `initial`, so a reader inside the island falls back to its own
83
- `--background` instead of a ground from the other mode.
84
-
85
- **In a CSS Module the theme classes are hashed.** `.light` and `.dark` in a boundary list
86
- become local classes and match nothing. Write `:global(.light)` and `:global(.dark)`.
@@ -1,164 +0,0 @@
1
- /*
2
- * Theme — the swappable palette.
3
- *
4
- * GENERATED from scripts/theme-manifest.mjs by scripts/gen-theme.mjs.
5
- * Do not hand-edit; edit the manifest and re-run `npm run tokens:theme`.
6
- *
7
- * This file owns only the shadcn-compatible contract: palette, radius, shadows, sidebar
8
- * palette, and charts. Package state, layout, density, and component knobs live in
9
- * styles/tokens/* and styles/theming/*.
10
- *
11
- * Every colour resolves through a primitive in styles/tokens/palette.css — there are no
12
- * colour literals here — so a rebrand moves the ramp, not forty separate values.
13
- */
14
- /*
15
- * Raw inputs — `:root` ONLY, so a consumer's override inherits everywhere
16
- * instead of being restated (and overwritten) at each scope boundary.
17
- */
18
- :root {
19
- --radius: 1rem; /* The container radius — cards, dialogs, popovers, menus. */
20
- --radius-sm: 0.5rem; /* Everything inside a container or smaller than one — controls, rows, chips, badges, tooltips. */
21
- --border-width: 1px; /* Default hairline weight for dividers, outlines, and control borders. */
22
- --border-width-strong: 2px; /* Emphasized rail weight for quote bars and active navigation indicators. */
23
- --radius-pill: 999px; /* Fully rounded ends for pills, switches, tracks, and status dots. True circles (avatars, radios) use 50%. */
24
- }
25
-
26
- :root,
27
- [data-ui-scope],
28
- [data-density],
29
- [data-theme],
30
- .light,
31
- .dark {
32
- color-scheme: light;
33
- --background: var(--neutral-0); /* Application canvas and default page background. */
34
- --foreground: var(--neutral-800); /* Primary text and icon color on the application canvas. */
35
- --card: var(--neutral-0); /* Card and framed content-surface background. */
36
- --card-foreground: var(--neutral-800); /* Primary text and icons on card surfaces. */
37
- --popover: var(--background); /* Popover, menu, select, and transient-surface background. */
38
- --popover-foreground: var(--foreground); /* Primary text and icons on popover surfaces. */
39
- --primary: var(--brand-600); /* Brand and primary-action color. */
40
- --primary-foreground: var(--neutral-50); /* Text and icons on solid primary fills. */
41
- --secondary: var(--neutral-100); /* Neutral secondary-control and supporting-surface fill. */
42
- --secondary-foreground: var(--neutral-900); /* Text and icons on secondary fills. */
43
- --muted: var(--neutral-100); /* Subdued backgrounds for passive regions and skeletons. */
44
- --muted-foreground: var(--neutral-550); /* Secondary text, metadata, and passive icons. */
45
- --accent: var(--neutral-100); /* Hover, selected-row, and emphasized neutral fill. */
46
- --accent-foreground: var(--neutral-900); /* Text and icons on accent fills. */
47
- --destructive: var(--danger-600); /* Destructive action, error, and invalid-state color. */
48
- --destructive-foreground: var(--neutral-25); /* Text and icons on solid destructive fills. */
49
- --border: var(--neutral-200); /* Default divider, outline, and surface-border color. */
50
- --input: var(--neutral-200); /* Default form-control border color. */
51
- --ring: var(--neutral-400); /* Focus-visible ring and outline color. */
52
- --chart-1: var(--series-1); /* First categorical chart-series color; never a status color. */
53
- --chart-2: var(--series-2); /* Second categorical chart-series color; never a status color. */
54
- --chart-3: var(--series-3); /* Third categorical chart-series color; never a status color. */
55
- --chart-4: var(--series-4); /* Fourth categorical chart-series color; never a status color. */
56
- --chart-5: var(--series-5); /* Fifth categorical chart-series color; never a status color. */
57
- --sidebar: var(--neutral-150); /* Sidebar shell background. */
58
- --sidebar-foreground: var(--neutral-800); /* Primary sidebar text and icon color. */
59
- --sidebar-primary: var(--neutral-900); /* Strong sidebar selection or primary action fill. */
60
- --sidebar-primary-foreground: var(--neutral-50); /* Text and icons on sidebar primary fills. */
61
- --sidebar-accent: var(--neutral-75); /* Sidebar hover and selected-row neutral fill. */
62
- --sidebar-accent-foreground: var(--neutral-900); /* Text and icons on sidebar accent fills. */
63
- --sidebar-border: var(--neutral-200); /* Sidebar dividers and shell border. */
64
- --sidebar-ring: var(--neutral-400); /* The sidebar's focus-ring seed, as --ring is the page's: sidebar surfaces mix it 70/30 toward --sidebar-foreground in light, read it unmixed in dark, and compose --focus-ring, --focus-ring-inset and --field-focus-ring from it. */
65
- --shadow-ink: var(--pure-black); /* Ink every elevation tier tints with. */
66
- --shadow-2xs: 0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 4%, transparent); /* shadcn compatibility only; no kit surface reads it. Resting lift is --shadow-xs. */
67
- --shadow-xs: 0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 6%, transparent), 0 1px 1px -1px color-mix(in oklab, var(--shadow-ink) 6%, transparent); /* Resting lift: a framed card's bezel, a raised chip, a slider thumb, a floating sidebar. */
68
- --shadow-sm: 0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 6%, transparent), 0 2px 4px -2px color-mix(in oklab, var(--shadow-ink) 10%, transparent); /* Hover lift for every clickable card and tile, and controls over artwork. */
69
- --shadow: 0 1px 3px 0px color-mix(in oklab, var(--shadow-ink) 8%, transparent), 0 4px 8px -4px color-mix(in oklab, var(--shadow-ink) 12%, transparent); /* shadcn compatibility only; no kit surface reads it. Hover lift is --shadow-sm. */
70
- --shadow-md: 0 2px 4px -1px color-mix(in oklab, var(--shadow-ink) 8%, transparent), 0 8px 16px -8px color-mix(in oklab, var(--shadow-ink) 16%, transparent); /* The lift inside --popover-shadow; anchored popups read that, with its hairline ring. */
71
- --shadow-lg: 0 4px 8px -2px color-mix(in oklab, var(--shadow-ink) 10%, transparent), 0 12px 24px -12px color-mix(in oklab, var(--shadow-ink) 18%, transparent); /* Free-floating transient surfaces: toast, drag ghost, floating batch bar, submenu. */
72
- --shadow-xl: 0 8px 16px -4px color-mix(in oklab, var(--shadow-ink) 12%, transparent), 0 20px 40px -20px color-mix(in oklab, var(--shadow-ink) 22%, transparent); /* Modals and command palettes. */
73
- --shadow-2xl: 0 16px 32px -8px color-mix(in oklab, var(--shadow-ink) 18%, transparent), 0 32px 64px -28px color-mix(in oklab, var(--shadow-ink) 28%, transparent); /* shadcn compatibility only; no kit surface reads it. Modals and palettes use --shadow-xl. */
74
- }
75
-
76
- /*
77
- * Dark theme — overrides only.
78
- *
79
- * Every token not listed here inherits its light value through the cascade, which is
80
- * declared explicitly as `inherits: true` in scripts/theme-manifest.mjs rather than
81
- * left to chance. GENERATED: edit the manifest, then run `npm run tokens:theme`.
82
- */
83
- .dark,
84
- [data-theme="dark"],
85
- :is(.dark, [data-theme="dark"]) :is([data-ui-scope], [data-density]):not(.light, [data-theme="light"]) {
86
- color-scheme: dark;
87
- --background: var(--neutral-900);
88
- --foreground: var(--neutral-50);
89
- --card: var(--neutral-850);
90
- --card-foreground: var(--neutral-50);
91
- --popover: var(--neutral-800);
92
- --popover-foreground: var(--foreground);
93
- --primary: var(--brand-350);
94
- --primary-foreground: var(--brand-950);
95
- --secondary: var(--neutral-850);
96
- --secondary-foreground: var(--neutral-50);
97
- --muted: var(--neutral-875);
98
- --muted-foreground: var(--neutral-400);
99
- --accent: var(--neutral-750);
100
- --accent-foreground: var(--neutral-50);
101
- --destructive: var(--danger-400);
102
- --destructive-foreground: var(--danger-950);
103
- --border: var(--white-a10);
104
- --input: var(--white-a15);
105
- --ring: var(--neutral-500);
106
- --chart-1: var(--series-1-dark);
107
- --chart-2: var(--series-2-dark);
108
- --chart-3: var(--series-3-dark);
109
- --chart-4: var(--series-4-dark);
110
- --chart-5: var(--series-5-dark);
111
- --sidebar: var(--neutral-950);
112
- --sidebar-foreground: var(--neutral-50);
113
- --sidebar-primary: var(--neutral-50);
114
- --sidebar-primary-foreground: var(--neutral-900);
115
- --sidebar-accent: var(--neutral-800);
116
- --sidebar-accent-foreground: var(--neutral-50);
117
- --sidebar-border: var(--white-a10);
118
- --sidebar-ring: var(--neutral-500);
119
- }
120
-
121
- /*
122
- * The same values under the OS preference, for `colorScheme: "system"`.
123
- *
124
- * Emitted rather than hand-written so it cannot drift from the block above.
125
- */
126
- @media (prefers-color-scheme: dark) {
127
- :root:not(.light, [data-theme="light"]),
128
- [data-ui-scope]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *),
129
- [data-density]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *) {
130
- color-scheme: dark;
131
- --background: var(--neutral-900);
132
- --foreground: var(--neutral-50);
133
- --card: var(--neutral-850);
134
- --card-foreground: var(--neutral-50);
135
- --popover: var(--neutral-800);
136
- --popover-foreground: var(--foreground);
137
- --primary: var(--brand-350);
138
- --primary-foreground: var(--brand-950);
139
- --secondary: var(--neutral-850);
140
- --secondary-foreground: var(--neutral-50);
141
- --muted: var(--neutral-875);
142
- --muted-foreground: var(--neutral-400);
143
- --accent: var(--neutral-750);
144
- --accent-foreground: var(--neutral-50);
145
- --destructive: var(--danger-400);
146
- --destructive-foreground: var(--danger-950);
147
- --border: var(--white-a10);
148
- --input: var(--white-a15);
149
- --ring: var(--neutral-500);
150
- --chart-1: var(--series-1-dark);
151
- --chart-2: var(--series-2-dark);
152
- --chart-3: var(--series-3-dark);
153
- --chart-4: var(--series-4-dark);
154
- --chart-5: var(--series-5-dark);
155
- --sidebar: var(--neutral-950);
156
- --sidebar-foreground: var(--neutral-50);
157
- --sidebar-primary: var(--neutral-50);
158
- --sidebar-primary-foreground: var(--neutral-900);
159
- --sidebar-accent: var(--neutral-800);
160
- --sidebar-accent-foreground: var(--neutral-50);
161
- --sidebar-border: var(--white-a10);
162
- --sidebar-ring: var(--neutral-500);
163
- }
164
- }
@@ -1,143 +0,0 @@
1
- /* Raw inputs: declared once at :root (styles/SCOPES.md). */
2
- :root {
3
- /* Neutral defaults — a surface overrides only the axis it animates. */
4
- --enter-opacity: 1;
5
- --enter-scale: 1;
6
- --enter-translate-x: 0;
7
- --enter-translate-y: 0;
8
- --exit-opacity: 1;
9
- --exit-scale: 1;
10
- --exit-translate-x: 0;
11
- --exit-translate-y: 0;
12
-
13
- /* Looping animations. */
14
- --animate-spin: spin 1s linear infinite;
15
-
16
- /* The distance menus and popovers enter from. Sheets travel their full width instead. */
17
- --slide-nudge: 0.5rem;
18
- }
19
-
20
- /*
21
- * Animation — one parameterised enter/exit keyframe pair. A surface composes its entrance
22
- * by setting only the variables it needs; unset ones stay neutral:
23
- *
24
- * .content {
25
- * animation: var(--animate-exit);
26
- * --enter-opacity: 0;
27
- * --enter-scale: 0.95;
28
- * }
29
- * .content[data-open] { animation: var(--animate-enter); }
30
- *
31
- * Derived tokens: declared at every scope boundary (styles/SCOPES.md).
32
- */
33
- :root,
34
- [data-ui-scope],
35
- [data-density],
36
- [data-theme],
37
- .light,
38
- .dark {
39
- /*
40
- * Shorthands live in this global sheet because CSS Modules renames `@keyframes`
41
- * names: `animation: enter …` written in a module points at a scoped name that does
42
- * not exist. To change speed, set `animation-duration` after the shorthand; the
43
- * duration below is already resolved, so redefining --duration-fast does nothing.
44
- */
45
- --animate-enter: enter var(--duration-fast) var(--ease-out);
46
- /* Exits start moving immediately; ease-in reads as latency at this duration. */
47
- --animate-exit: exit var(--duration-fast) var(--ease-out);
48
- /* An expanding halo — a live location on a map, a recording indicator. */
49
- --animate-ping: ping 1s var(--ease-out) infinite;
50
- --animate-pulse: pulse 2s var(--ease-in-out) infinite;
51
- }
52
-
53
- @keyframes enter {
54
- from {
55
- opacity: var(--enter-opacity);
56
- transform: translate3d(var(--enter-translate-x), var(--enter-translate-y), 0)
57
- scale3d(var(--enter-scale), var(--enter-scale), var(--enter-scale));
58
- }
59
- }
60
-
61
- @keyframes exit {
62
- to {
63
- opacity: var(--exit-opacity);
64
- transform: translate3d(var(--exit-translate-x), var(--exit-translate-y), 0)
65
- scale3d(var(--exit-scale), var(--exit-scale), var(--exit-scale));
66
- }
67
- }
68
-
69
- /* Indeterminate progress — spinners and loader buttons. */
70
- @keyframes spin {
71
- to {
72
- transform: rotate(360deg);
73
- }
74
- }
75
-
76
- /* An expanding, fading halo. Paired with a solid dot that stays put. */
77
- @keyframes ping {
78
- 75%,
79
- 100% {
80
- transform: scale(2);
81
- opacity: 0;
82
- }
83
- }
84
-
85
- /* Skeleton placeholders. */
86
- @keyframes pulse {
87
- 50% {
88
- opacity: 0.5;
89
- }
90
- }
91
-
92
- /*
93
- * Native top-layer surfaces (dialog, alert dialog, sheet, drawer) use transitions plus
94
- * `@starting-style`, not the keyframes above: the element leaves the top layer the moment
95
- * `close()` runs, so only transitioning `overlay` and `display` (allow-discrete) keeps it
96
- * there to animate out. Unsupported browsers show and hide it instantly.
97
- */
98
-
99
- /*
100
- * The indeterminate bar's band. Translate percentages are of the band (40% of the track),
101
- * so 250% carries it fully off the far edge. Keep in step with the band width.
102
- */
103
- @keyframes progress-indeterminate {
104
- from {
105
- transform: translateX(-100%);
106
- }
107
- to {
108
- transform: translateX(250%);
109
- }
110
- }
111
-
112
- /* Motion here is decorative, so reduced motion removes it. */
113
- @media (prefers-reduced-motion: reduce) {
114
- :root {
115
- --animate-enter: none;
116
- --animate-exit: none;
117
- }
118
-
119
- /*
120
- * Catches motion not written against the duration tokens (spinners, skeletons, the
121
- * progress crawl, third-party CSS). `0s` animations still fire their end events; `0s`
122
- * transitions fire no `transitionend`, hence 0.01ms. A non-zero animation duration would
123
- * make Base UI see both and warn on every Collapsible and Accordion.
124
- */
125
- *,
126
- *::before,
127
- *::after {
128
- animation-duration: 0s !important;
129
- animation-iteration-count: 1 !important;
130
- transition-duration: 0.01ms !important;
131
- }
132
- }
133
-
134
- /* Right to left across a background twice the element's size: one pass per cycle. */
135
- @keyframes shimmer-sweep {
136
- from {
137
- background-position: 200% 0;
138
- }
139
-
140
- to {
141
- background-position: -200% 0;
142
- }
143
- }
@@ -1,97 +0,0 @@
1
- /*
2
- * Alpha ladder — the global colour wiring layer.
3
- *
4
- * Every colour/alpha pair the components actually use, declared once. Modules
5
- * reference `var(--border-60)` rather than repeating color-mix() inline, which
6
- * gives consumers a single override point per pair and keeps modules value-free.
7
- *
8
- * `color-mix(in oklab, …)` is exactly what Tailwind v4 emits for `/nn` opacity,
9
- * so each pair renders the colour the matching Tailwind utility would.
10
- *
11
- * 38 pairs across 13 colours.
12
- *
13
- * Declared at every scope boundary rather than `:root`, so a scope that rethemes a colour
14
- * re-derives its whole ladder. See styles/SCOPES.md.
15
- */
16
- :root,
17
- [data-ui-scope],
18
- [data-density],
19
- [data-theme],
20
- .light,
21
- .dark {
22
-
23
- /* border — 1 step */
24
- --border-60: color-mix(in oklab, var(--border) 60%, transparent);
25
-
26
- /* muted — 5 steps */
27
- --muted-20: color-mix(in oklab, var(--muted) 20%, transparent);
28
- --muted-40: color-mix(in oklab, var(--muted) 40%, transparent);
29
- --muted-50: color-mix(in oklab, var(--muted) 50%, transparent);
30
- --muted-60: color-mix(in oklab, var(--muted) 60%, transparent);
31
- --muted-80: color-mix(in oklab, var(--muted) 80%, transparent);
32
-
33
- /* destructive — 5 steps */
34
- --destructive-5: color-mix(in oklab, var(--destructive) 5%, transparent);
35
- --destructive-10: color-mix(in oklab, var(--destructive) 10%, transparent);
36
- --destructive-20: color-mix(in oklab, var(--destructive) 20%, transparent);
37
- --destructive-30: color-mix(in oklab, var(--destructive) 30%, transparent);
38
- --destructive-40: color-mix(in oklab, var(--destructive) 40%, transparent);
39
-
40
- /* primary — 7 steps */
41
- --primary-5: color-mix(in oklab, var(--primary) 5%, transparent);
42
- --primary-10: color-mix(in oklab, var(--primary) 10%, transparent);
43
- --primary-15: color-mix(in oklab, var(--primary) 15%, transparent);
44
- --primary-20: color-mix(in oklab, var(--primary) 20%, transparent);
45
- --primary-25: color-mix(in oklab, var(--primary) 25%, transparent);
46
- --primary-30: color-mix(in oklab, var(--primary) 30%, transparent);
47
- --primary-40: color-mix(in oklab, var(--primary) 40%, transparent);
48
-
49
- /* foreground — 3 steps */
50
- --foreground-8: color-mix(in oklab, var(--foreground) 8%, transparent);
51
- --foreground-10: color-mix(in oklab, var(--foreground) 10%, transparent);
52
- --foreground-20: color-mix(in oklab, var(--foreground) 20%, transparent);
53
-
54
- /* warning — 4 steps */
55
- --warning-10: color-mix(in oklab, var(--warning) 10%, transparent);
56
- --warning-20: color-mix(in oklab, var(--warning) 20%, transparent);
57
- --warning-30: color-mix(in oklab, var(--warning) 30%, transparent);
58
- --warning-40: color-mix(in oklab, var(--warning) 40%, transparent);
59
-
60
- /* success — 3 steps */
61
- --success-5: color-mix(in oklab, var(--success) 5%, transparent);
62
- --success-10: color-mix(in oklab, var(--success) 10%, transparent);
63
- --success-30: color-mix(in oklab, var(--success) 30%, transparent);
64
-
65
- /* info — 3 steps */
66
- --info-5: color-mix(in oklab, var(--info) 5%, transparent);
67
- --info-10: color-mix(in oklab, var(--info) 10%, transparent);
68
- --info-30: color-mix(in oklab, var(--info) 30%, transparent);
69
-
70
- /* muted-foreground — 2 steps */
71
- --muted-foreground-40: color-mix(in oklab, var(--muted-foreground) 40%, transparent);
72
- --muted-foreground-70: color-mix(in oklab, var(--muted-foreground) 70%, transparent);
73
-
74
- /* background — 2 steps */
75
- --background-70: color-mix(in oklab, var(--background) 70%, transparent);
76
- --background-80: color-mix(in oklab, var(--background) 80%, transparent);
77
-
78
- /* input — 1 step */
79
- --input-30: color-mix(in oklab, var(--input) 30%, transparent);
80
-
81
- /* accent — 1 step */
82
- --accent-50: color-mix(in oklab, var(--accent) 50%, transparent);
83
-
84
- /* sidebar-accent — the --accent-50 row hover on the sidebar palette */
85
- --sidebar-accent-50: color-mix(in oklab, var(--sidebar-accent) 50%, transparent);
86
- }
87
-
88
- /*
89
- * --surface-ground: "the surface I sit on", for sticky cells, cut-out rings, opaque halos
90
- * and fades. A surface that paints a ground (Card, popups, the sidebar, table and data-view
91
- * frames) sets it; readers write var(--surface-ground, var(--background)). A colour island
92
- * resets it so the fallback re-derives in the island's mode instead of inheriting a ground
93
- * resolved outside it. Zero specificity, so any surface inside the island still wins.
94
- */
95
- :where([data-theme], .light, .dark) {
96
- --surface-ground: initial;
97
- }
@@ -1,17 +0,0 @@
1
- /*
2
- * Feedback — Empty, Alert and Progress tokens.
3
- */
4
- :root,
5
- [data-ui-scope],
6
- [data-density],
7
- [data-theme],
8
- .light,
9
- .dark {
10
-
11
- /* Empty state illustration height. */
12
- --empty-art-h: round(calc(6rem * var(--density-scale, var(--scale))), 1px);
13
-
14
- /* Progress bar fill; the .tone* classes re-point it. */
15
- --progress-fill: var(--primary);
16
-
17
- }
@@ -1,21 +0,0 @@
1
- /* Raw inputs: declared once at :root (styles/SCOPES.md). */
2
- :root {
3
- --field-bg: transparent;
4
-
5
- /* Label column for horizontal fields, so a settings page aligns down its controls. */
6
- --field-label-width: 12rem;
7
- }
8
-
9
- /*
10
- * Field — tokens shared by every form control (the surface itself is styles/fields.css).
11
- * Height and inline inset are --control-h and --control-px-sm, read directly.
12
- */
13
- :root,
14
- [data-ui-scope],
15
- [data-density],
16
- [data-theme],
17
- .light,
18
- .dark {
19
- --field-icon-lane: calc(var(--size-icon) + var(--space-md) * 2);
20
- --field-addon-lane: round(calc(2.5rem * var(--density-scale, var(--scale))), 1px);
21
- }
@@ -1,88 +0,0 @@
1
- /* Raw inputs: declared once at :root (styles/SCOPES.md). */
2
- :root {
3
- --focus-ring-width: 2px;
4
- --focus-ring-offset: 0px;
5
-
6
- --disabled-opacity: 0.5;
7
- }
8
-
9
- /*
10
- * Focus — rings composed once, so a module writes `box-shadow: var(--focus-ring)` and a
11
- * consumer retunes every focus state from one place. The invalid ring is the same shape
12
- * over --destructive.
13
- *
14
- * Derived tokens: declared at every scope boundary (styles/SCOPES.md).
15
- */
16
- :root,
17
- [data-ui-scope],
18
- [data-density],
19
- [data-theme],
20
- .light,
21
- .dark {
22
- /*
23
- * One edge for every control that sits in a row with others (fields, selects, pickers,
24
- * triggers, filter pills, outline buttons). Derived so scoped --input/--foreground
25
- * overrides recompute it. The idle edge (30% foreground here, re-mixed for dark below) sits
26
- * deliberately below WCAG 1.4.11's 3:1; the hover edge, focus ring and invalid border clear
27
- * it. tests/tokens.spec.ts holds its floor.
28
- */
29
- --control-border: color-mix(in oklab, var(--input) 70%, var(--foreground) 30%);
30
- --control-border-hover: color-mix(in oklab, var(--input) 45%, var(--foreground) 55%);
31
-
32
- /* Ring-dominant, with foreground mixed in for separation from the canvas. */
33
- --focus-ring-color: color-mix(in oklab, var(--ring) 70%, var(--foreground) 30%);
34
-
35
- /* Composite ring. Offset renders as a same-coloured-as-surface inner spread. */
36
- --focus-ring:
37
- 0 0 0 var(--focus-ring-offset) var(--background),
38
- 0 0 0 calc(var(--focus-ring-width) + var(--focus-ring-offset)) var(--focus-ring-color);
39
-
40
- /*
41
- * The same ring drawn inside the box, for a control under an `overflow: hidden`
42
- * ancestor. `inset var(--focus-ring)` would inset only the first layer, so both layers
43
- * are restated.
44
- */
45
- --focus-ring-inset:
46
- inset 0 0 0 var(--focus-ring-offset) var(--background),
47
- inset 0 0 0 calc(var(--focus-ring-width) + var(--focus-ring-offset)) var(--focus-ring-color);
48
-
49
- /*
50
- * A field's focus: the edge firms to the ring colour and a soft halo surrounds it,
51
- * matching the invalid state's shape rather than the solid control ring.
52
- */
53
- --field-focus-ring: 0 0 0 var(--focus-ring-width) color-mix(in oklab, var(--focus-ring-color) 22%, transparent);
54
-
55
- /* Invalid state (aria-invalid). */
56
- --invalid-ring-color: var(--destructive-20);
57
- --invalid-ring-border: var(--destructive);
58
- --invalid-ring: 0 0 0 var(--focus-ring-width) var(--invalid-ring-color);
59
- }
60
-
61
- /*
62
- * Dark: the unmixed ring seed, which clears 3:1 against the canvas. The invalid border is
63
- * the destructive ink, lifted toward the foreground so it stays stronger than the idle border.
64
- * Dark --input is translucent white, so the light mixes would land the control edges at
65
- * about 3.8:1; these hold the same 2.4:1 idle and 4.3:1 hover as light.
66
- */
67
- .dark,
68
- [data-theme="dark"],
69
- :is(.dark, [data-theme="dark"]) :is([data-ui-scope], [data-density]):not(.light, [data-theme="light"]) {
70
- --control-border: color-mix(in oklab, var(--input) 85%, var(--foreground) 15%);
71
- --control-border-hover: color-mix(in oklab, var(--input) 65%, var(--foreground) 35%);
72
- --focus-ring-color: var(--ring);
73
- --invalid-ring-color: var(--destructive-40);
74
- --invalid-ring-border: var(--destructive-accent);
75
- }
76
-
77
- /* The same values under the OS preference (`colorScheme: "system"`); verify dark-overrides keeps both in step. */
78
- @media (prefers-color-scheme: dark) {
79
- :root:not(.light, [data-theme="light"]),
80
- [data-ui-scope]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *),
81
- [data-density]:not(.light, [data-theme="light"], :where(.light, [data-theme="light"]) *) {
82
- --control-border: color-mix(in oklab, var(--input) 85%, var(--foreground) 15%);
83
- --control-border-hover: color-mix(in oklab, var(--input) 65%, var(--foreground) 35%);
84
- --focus-ring-color: var(--ring);
85
- --invalid-ring-color: var(--destructive-40);
86
- --invalid-ring-border: var(--destructive-accent);
87
- }
88
- }
@@ -1,13 +0,0 @@
1
- /*
2
- * Stacking order — named tiers, with gaps so an app can insert its own layer between them.
3
- * Raw inputs: declared once at :root (styles/SCOPES.md).
4
- */
5
- :root {
6
- --z-raised: 1; /* Lifted within its own stacking context — a selected row, a chip. */
7
- --z-sticky: 10; /* Sticky table headers and toolbars. */
8
- --z-docked: 20; /* A floating batch bar: above a sticky header, below any menu it opens. */
9
- --z-popover: 50; /* Menus, selects, popovers. */
10
- /* Toasts, above any menu still open when one arrives. */
11
- --z-toast: 100;
12
- --z-tooltip: 1000; /* Always last: a tooltip may describe anything, including a toast. */
13
- }
@@ -1,21 +0,0 @@
1
- /*
2
- * Layout — page-container tokens. Page-level measurements scale off the global factors,
3
- * not a component family's. Derived tokens: declared at every scope boundary (styles/SCOPES.md).
4
- */
5
- :root,
6
- [data-ui-scope],
7
- [data-density],
8
- [data-theme],
9
- .light,
10
- .dark {
11
-
12
- /* The gap between main and aside, and the aside's floor before the columns stack. */
13
- --layout-column-gap: round(calc(2rem * var(--density-scale, var(--scale))), 1px);
14
- --layout-aside-min: calc(18rem * var(--scale));
15
-
16
- /* The shell's top bar — header, toolbar and stacked header are one height. */
17
- --shell-header-h: round(calc(var(--shell-header-height) * var(--density-scale, var(--scale))), 1px);
18
-
19
- /* ── Resource shells ──────────────────────────────────────────────────────── */
20
- --resource-media: round(calc(var(--avatar) * 1.5 * var(--density-scale, var(--scale))), 1px);
21
- }