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
@@ -43,7 +43,7 @@ Per-component prop defaults. Empty here; each family augments it from its own di
43
43
  ```ts fragment — declaration JSDoc excerpt
44
44
  declare module "@/lib/ui-provider" {
45
45
  interface ComponentDefaults {
46
- button: { tone: ButtonTone; buttonStyle: ButtonStyle }
46
+ button: { tone: ButtonTone; appearance: ButtonAppearance }
47
47
  }
48
48
  }
49
49
  ```
@@ -63,7 +63,9 @@ Kind: type.
63
63
  Kind: callable.
64
64
 
65
65
  Attributes the stylesheet keys off. Density is an attribute, not a variable, so the
66
- preset values stay in styles/tokens/foundation.css and a bare `data-density` works too.
66
+ preset values stay in styles/theme/density.css and a bare `data-density` works too.
67
+ `default` writes nothing, so the theme's own lengths, a consumer's `:root` overrides
68
+ included, apply; a scope resetting a denser region writes it itself (UIScope).
67
69
 
68
70
  ```text
69
71
  (config: UIConfig) => Record<string, string | undefined>
@@ -79,8 +81,14 @@ style object for the scope's own element so nesting merges through the cascade.
79
81
  The rule: a value that can be a token is CSS; a decision a component makes in JavaScript
80
82
  stays in context. Nothing appears in both.
81
83
 
84
+ `scale` is computed here rather than in CSS: it writes the spacing, control and icon
85
+ lengths themselves, from the density in effect (`resolved`, when a scope inherits one), and
86
+ the type factor. CSS never multiplies a factor except Text's own `--text-scale`. A scope
87
+ that changes density under a scaled ancestor writes its lengths at the inherited scale,
88
+ since the ancestor's lengths reach it inline and would outrank the preset.
89
+
82
90
  ```text
83
- (config: UIConfig) => Record<string, string>
91
+ (config: UIConfig, resolved?: ResolvedUIConfig) => Record<string, string>
84
92
  ```
85
93
 
86
94
  ### `CSPProvider`
@@ -135,7 +143,7 @@ ResolvedUIConfig
135
143
 
136
144
  Kind: type.
137
145
 
138
- Spacing and control-geometry preset. Sets `--density-scale` through `data-density`.
146
+ Spacing and control-height preset, set through `data-density` (styles/theme/density.css).
139
147
 
140
148
  ```text
141
149
  "compact" | "default" | "comfortable"
@@ -232,7 +240,7 @@ Kind: interface.
232
240
 
233
241
  | member | required | type | description / documented default |
234
242
  | --- | :-: | --- | --- |
235
- | `durations` | no | `Partial<Record<"instant" \| "fast" \| "normal", string>>` | Duration overrides, keyed without the `--duration-` prefix. |
243
+ | `durations` | no | `Partial<Record<"fast" \| "normal", string>>` | The two durations: `fast` writes `--duration-fast`, `normal` writes `--duration`. |
236
244
  | `reduced` | no | `boolean` | `true` forces motion off; unset respects `prefers-reduced-motion`. |
237
245
 
238
246
  ### `OverlayConfig`
@@ -244,16 +252,6 @@ Kind: interface.
244
252
  | `backdropBlur` | no | `number \| string` | Blur behind a modal's scrim, in px (a number) or any CSS length. Off by default: a<br>backdrop filter repaints everything behind the surface each frame. |
245
253
  | `darkMenus` | no | `boolean` | Dropdown and context menus render in the dark scheme whatever the page is. Default<br>`true`; `false` lets them follow the scheme they are portalled into, like other popups.<br>A config value, not a CSS switch: Firefox lacks CSS `if()`. @default true |
246
254
 
247
- ### `PaletteToken`
248
-
249
- Kind: type.
250
-
251
- Primitive ramp steps. Overriding one moves every semantic that resolves through it.
252
-
253
- ```text
254
- "brand-300" | "brand-350" | "brand-600" | "brand-950" | "danger-400" | "danger-600" | "danger-950" | "info-400" | "info-600" | "info-950" | "link-400" | "link-600" | "neutral-0" | "neutral-100" | "neutral-150" | "neutral-200" | "neutral-25" | "neutral-400" | "neutral-50" | "neutral-500" | "neutral-550" | "neutral-700" | "neutral-75" | "neutral-750" | "neutral-800" | "neutral-850" | "neutral-875" | "neutral-900" | "neutral-950" | "pure-black" | "series-1" | "series-1-dark" | "series-2" | "series-2-dark" | "series-3" | "series-3-dark" | "series-4" | "series-4-dark" | "series-5" | "series-5-dark" | "success-400" | "success-600" | "success-950" | "violet-500" | "warning-300" | "warning-500" | "warning-700" | "warning-900" | "warning-950" | "white-a10" | "white-a15"
255
- ```
256
-
257
255
  ### `ResolvedUIConfig`
258
256
 
259
257
  Kind: interface.
@@ -277,15 +275,12 @@ Extends: `UIConfig`.
277
275
 
278
276
  Kind: callable.
279
277
 
280
- `<Scope>` — a token boundary without the config machinery. Overriding a factor needs a
281
- scope boundary, not just any element: derived tokens are declared at `:root`,
282
- `[data-ui-scope]`, `[data-density]`, `[data-theme]`, `.light` and `.dark`, so a plain
283
- `div` that sets `--density-scale` sets a variable nothing reads. Scope renders
284
- `data-ui-scope`, which puts the element on that list. Use it when the change is purely
285
- tokens, and `<UIProvider>` when JavaScript config changes too. `render` picks the element,
286
- e.g. `render={<section />}`.
278
+ `<Scope>` — a region with its own theme variables, without the config machinery. Every
279
+ component inside reads the variables it sets, and the element leaves layout alone. Use it
280
+ when the change is purely variables, and `<UIProvider>` when JavaScript config changes
281
+ too. `render` picks the element, e.g. `render={<section />}`.
287
282
 
288
- <Scope vars={{ "--density-scale": 0.8 }}>
283
+ <Scope vars={{ "--control-height": "2.5rem" }}>
289
284
  <Toolbar />
290
285
  </Scope>
291
286
 
@@ -308,10 +303,10 @@ Extends: `useRender.ComponentProps<"div">`.
308
303
 
309
304
  Kind: type.
310
305
 
311
- Semantic tokens a consumer may retheme. Values carry meaning, not raw colour.
306
+ Colour variables a consumer may retheme, named without the leading `--`.
312
307
 
313
308
  ```text
314
- "accent" | "accent-foreground" | "background" | "border" | "card" | "card-foreground" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "destructive" | "destructive-accent" | "destructive-foreground" | "foreground" | "info" | "info-foreground" | "input" | "inverse-background" | "inverse-border" | "inverse-decoration" | "inverse-disabled" | "inverse-foreground" | "inverse-muted" | "inverse-subtle" | "inverse-surface" | "inverse-surface-strong" | "link-color" | "muted" | "muted-foreground" | "popover" | "popover-foreground" | "primary" | "primary-accent" | "primary-foreground" | "ring" | "secondary" | "secondary-foreground" | "sidebar" | "sidebar-accent" | "sidebar-accent-foreground" | "sidebar-border" | "sidebar-foreground" | "sidebar-primary" | "sidebar-primary-foreground" | "sidebar-ring" | "success" | "success-foreground" | "warning" | "warning-accent" | "warning-foreground"
309
+ "accent" | "accent-foreground" | "background" | "border" | "card" | "card-foreground" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "destructive" | "destructive-foreground" | "foreground" | "info" | "info-foreground" | "input" | "link" | "muted" | "muted-foreground" | "overlay-backdrop" | "popover" | "popover-foreground" | "primary" | "primary-foreground" | "ring" | "secondary" | "secondary-foreground" | "sidebar" | "sidebar-accent" | "sidebar-accent-foreground" | "sidebar-border" | "sidebar-foreground" | "sidebar-ring" | "success" | "success-foreground" | "warning" | "warning-foreground"
315
310
  ```
316
311
 
317
312
  ### `TextSize`
@@ -319,10 +314,9 @@ Semantic tokens a consumer may retheme. Values carry meaning, not raw colour.
319
314
  Kind: type.
320
315
 
321
316
  Step on the type scale. `inherit` lets the surrounding size flow through.
322
- `xxs` is deprecated: it renders as `xs`, so write `xs`.
323
317
 
324
318
  ```text
325
- "inherit" | "xxs" | "xs" | "pxs" | "sm" | "base" | "lg" | "xl"
319
+ "inherit" | "xs" | "pxs" | "sm" | "base" | "lg" | "xl"
326
320
  ```
327
321
 
328
322
  ### `ThemeConfig`
@@ -335,8 +329,7 @@ Theme overrides. Token names are generated from the stylesheet, so a typo is a t
335
329
  | --- | :-: | --- | --- |
336
330
  | `radius` | no | `string` | The container radius — cards, dialogs, popovers, menus. Writes `--radius`. |
337
331
  | `radiusSm` | no | `string` | The inner radius — controls, rows, chips, badges, tooltips. Writes `--radius-sm`.<br>Not derived from `radius`: set both. |
338
- | `colors` | no | `Partial<Record<SemanticToken, string>>` | Semantic colour overrides. Prefer these to `palette`. |
339
- | `palette` | no | `Partial<Record<PaletteToken, string>>` | Primitive ramp overrides: moves every semantic resolving through the step. |
332
+ | `colors` | no | `Partial<Record<SemanticToken, string>>` | Colour overrides, one value for both modes or a `light-dark(light, dark)` pair. Keys<br>omit `--`. |
340
333
  | `vars` | no | `Record<string, string>` | Escape hatch for custom properties the kit does not define. Keys omit `--`. |
341
334
 
342
335
  ### `TypographyConfig`
@@ -362,9 +355,9 @@ changes; everything else inherits from the scope around it.
362
355
  | member | required | type | description / documented default |
363
356
  | --- | :-: | --- | --- |
364
357
  | `colorScheme` | no | `ColorScheme` | Colour scheme. `system` follows `prefers-color-scheme`. @default "system" |
365
- | `theme` | no | `ThemeConfig` | Radius, colour, palette and custom-property overrides. |
366
- | `density` | no | `Density` | Named spacing and control-geometry preset: `compact`, `default` and `comfortable` scale<br>by 0.941176 (32px actions), 1 and 1.075. Readable typography is unchanged. @default "default" |
367
- | `scale` | no | `number` | Master factor (`--scale`). Geometry, spacing, icons and the type ramp follow it by<br>default; use `density` or `typography.scale` to move only one of them. @default 1 |
358
+ | `theme` | no | `ThemeConfig` | Radius, colour and custom-property overrides. |
359
+ | `density` | no | `Density` | Named spacing and control-height preset. `compact` sets 12px insets and gaps and 32px<br>controls, `default` 16px and 34px, `comfortable` 20px and 36px. Type keeps its size. @default "default" |
360
+ | `scale` | no | `number` | Master factor. The provider writes the spacing, control and icon lengths at this scale,<br>rounded to whole pixels, and type follows it unless `typography.scale` is set. @default 1 |
368
361
  | `typography` | no | `TypographyConfig` | The type factor, the default text size, font stacks and per-step sizes. |
369
362
  | `motion` | no | `MotionConfig` | Duration overrides, and motion forced off. |
370
363
  | `overlay` | no | `OverlayConfig` | The modal scrim's blur, and whether menus render dark. |
@@ -508,7 +501,7 @@ Kind: callable.
508
501
  `<UIScope>` — a region with its own tokens. Nests freely; writes the custom properties
509
502
  its merged config names and never touches the document: a region governs its subtree,
510
503
  and reaching past it is the root's job, and only when asked. `render` picks the element
511
- — Base UI's contract, the same one Item and Stack use — e.g. `<UIScope render={<aside />}>`,
504
+ through Base UI's element-substitution contract, e.g. `<UIScope render={<aside />}>`,
512
505
  for places a `div` is invalid.
513
506
 
514
507
  ```text
@@ -648,29 +641,29 @@ Preview route: Form field — `/form-field`
648
641
  import { Stack } from "themelia-ui/base/structure"
649
642
  import { Input, NativeSelect } from "themelia-ui/base/text-inputs"
650
643
  import { MonoValue } from "themelia-ui/primitives"
651
- import { Scope } from "themelia-ui/ui-provider"
644
+ import { UIScope } from "themelia-ui/ui-provider"
652
645
 
653
646
  export default function FormsScale() {
654
647
  return (
655
- <Stack gap="lg" style={{ width: "100%" }}>
656
- {[1, 0.875, 1.125].map((scale) => (
657
- <Scope key={scale} vars={{ "--density-scale": scale }}>
658
- <Stack direction="horizontal" gap="md" align="center" justify="start">
648
+ <Stack style={{ width: "100%" }}>
649
+ {(["compact", "default", "comfortable"] as const).map((density) => (
650
+ <UIScope key={density} config={{ density }}>
651
+ <Stack direction="horizontal" gap="sm" align="center" justify="start">
659
652
  {/* Widths on the wrappers: Input's style lands on the inner control, not its frame. */}
660
- <MonoValue size="xs" style={{ width: "3.5rem", flexShrink: 0, fontSize: "0.75rem" }}>
661
- {scale}
653
+ <MonoValue size="xs" style={{ width: "6rem", flexShrink: 0 }}>
654
+ {density}
662
655
  </MonoValue>
663
656
  {/* Named even in a geometry demo: a placeholder is not a label. */}
664
657
  <div style={{ width: "12rem", flexShrink: 0 }}>
665
- <Input placeholder="Field" aria-label={`Example field at density ${scale}`} />
658
+ <Input placeholder="Field" aria-label={`Example field at ${density} density`} />
666
659
  </div>
667
660
  <div style={{ width: "9rem", flexShrink: 0 }}>
668
- <NativeSelect defaultValue="a" aria-label={`Example select at density ${scale}`}>
661
+ <NativeSelect defaultValue="a" aria-label={`Example select at ${density} density`}>
669
662
  <option value="a">Option</option>
670
663
  </NativeSelect>
671
664
  </div>
672
665
  </Stack>
673
- </Scope>
666
+ </UIScope>
674
667
  ))}
675
668
  </Stack>
676
669
  )
@@ -681,6 +674,7 @@ export default function FormsScale() {
681
674
 
682
675
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
683
676
  import { Stack } from "themelia-ui/base/structure"
677
+ import { Text } from "themelia-ui/base/typography"
684
678
  import { UIProvider } from "themelia-ui/ui-provider"
685
679
 
686
680
  import { ControlRow } from "./_shared"
@@ -692,8 +686,8 @@ export default function TheFactor() {
692
686
  <>
693
687
  {FACTORS.map((scale) => (
694
688
  <UIProvider key={scale} config={{ scale }}>
695
- <Stack direction="horizontal" gap="lg" align="center">
696
- <code style={{ width: "4rem", fontSize: "var(--text-xs)" }}>{scale}</code>
689
+ <Stack direction="horizontal" align="center">
690
+ <Text tag="span" size="xs" mono style={{ width: "4rem", flex: "none" }}>{scale}</Text>
697
691
  <ControlRow />
698
692
  </Stack>
699
693
  </UIProvider>
@@ -703,7 +697,7 @@ export default function TheFactor() {
703
697
  }
704
698
  ```
705
699
 
706
- ### Type can override the master factor
700
+ ### Type has its own factor
707
701
 
708
702
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
709
703
  import { Button } from "themelia-ui/base/buttons"
@@ -714,11 +708,11 @@ import { UIProvider } from "themelia-ui/ui-provider"
714
708
 
715
709
  export default function TypeFactor() {
716
710
  return (
717
- <Stack gap="lg">
711
+ <Stack>
718
712
  <Stack gap="sm">
719
713
  <Text type="secondary" size="xs">typography.scale 0.875 — type shrinks, control geometry holds</Text>
720
714
  <UIProvider config={{ typography: { scale: 0.875 } }}>
721
- <Stack direction="horizontal" gap="md" align="center" wrap>
715
+ <Stack direction="horizontal" gap="sm" align="center" wrap>
722
716
  <Text>Body copy at this factor.</Text>
723
717
  <Button>Save</Button>
724
718
  <Checkbox label="Check" defaultChecked />
@@ -728,7 +722,7 @@ export default function TypeFactor() {
728
722
  <Stack gap="sm">
729
723
  <Text type="secondary" size="xs">scale 0.875 + typography.scale 1 — geometry shrinks, type holds</Text>
730
724
  <UIProvider config={{ scale: 0.875, typography: { scale: 1 } }}>
731
- <Stack direction="horizontal" gap="md" align="center" wrap>
725
+ <Stack direction="horizontal" gap="sm" align="center" wrap>
732
726
  <Text>Body copy at this factor.</Text>
733
727
  <Button>Save</Button>
734
728
  <Checkbox label="Check" defaultChecked />
@@ -740,37 +734,37 @@ export default function TypeFactor() {
740
734
  }
741
735
  ```
742
736
 
743
- ### Two levels of control
737
+ ### A factor, or one variable
744
738
 
745
739
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
746
740
  import { Stack } from "themelia-ui/base/structure"
747
741
  import { Text } from "themelia-ui/base/typography"
748
- import { Scope } from "themelia-ui/ui-provider"
742
+ import { Scope, UIProvider } from "themelia-ui/ui-provider"
749
743
 
750
744
  import { ControlRow } from "./_shared"
751
745
 
752
746
  export default function FactorChain() {
753
747
  return (
754
- <Stack gap="lg">
748
+ <Stack>
755
749
  <Stack gap="sm">
756
750
  <Text type="secondary" size="xs">default</Text>
757
751
  <ControlRow />
758
752
  </Stack>
759
753
  <Stack gap="sm">
760
- <Text type="secondary" size="xs">--density-scale: 0.8 — heights and rows tighten, gaps hold</Text>
761
- <Scope vars={{ "--density-scale": 0.8 }}>
754
+ <Text type="secondary" size="xs">scale: 0.875 — every length and type step</Text>
755
+ <UIProvider config={{ scale: 0.875 }}>
762
756
  <ControlRow />
763
- </Scope>
757
+ </UIProvider>
764
758
  </Stack>
765
759
  <Stack gap="sm">
766
- <Text type="secondary" size="xs">--density-scale: 1.4 — gaps open, control heights hold</Text>
767
- <Scope vars={{ "--density-scale": 1.4 }}>
760
+ <Text type="secondary" size="xs">--control-height: 2.5rem — every control, nothing else</Text>
761
+ <Scope vars={{ "--control-height": "2.5rem" }}>
768
762
  <ControlRow />
769
763
  </Scope>
770
764
  </Stack>
771
765
  <Stack gap="sm">
772
- <Text type="secondary" size="xs">--button-h: 2.75rem — one measurement</Text>
773
- <Scope vars={{ "--button-h": "2.75rem" }}>
766
+ <Text type="secondary" size="xs">--radius-sm: 0 — every item corner</Text>
767
+ <Scope vars={{ "--radius-sm": "0" }}>
774
768
  <ControlRow />
775
769
  </Scope>
776
770
  </Stack>
@@ -791,13 +785,13 @@ import { ControlRow } from "./_shared"
791
785
  export default function Nesting() {
792
786
  return (
793
787
  <UIProvider config={{ scale: 1.125 }}>
794
- <Stack gap="lg">
788
+ <Stack>
795
789
  <Text type="secondary" size="sm">
796
790
  Outer scope — 1.125
797
791
  </Text>
798
792
  <ControlRow />
799
793
  <UIProvider config={{ scale: 0.8 }}>
800
- <Stack gap="md">
794
+ <Stack gap="sm">
801
795
  <Text type="secondary" size="sm">
802
796
  Nested scope — 0.8
803
797
  </Text>
@@ -814,6 +808,7 @@ export default function Nesting() {
814
808
 
815
809
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
816
810
  import { Stack } from "themelia-ui/base/structure"
811
+ import { Text } from "themelia-ui/base/typography"
817
812
  import { UIProvider } from "themelia-ui/ui-provider"
818
813
 
819
814
  import { ControlRow } from "./_shared"
@@ -823,8 +818,8 @@ export default function Density() {
823
818
  <>
824
819
  {(["compact", "default", "comfortable"] as const).map((density) => (
825
820
  <UIProvider key={density} config={{ density }}>
826
- <Stack direction="horizontal" gap="lg" align="center">
827
- <code style={{ width: "7rem", fontSize: "var(--text-xs)" }}>{density}</code>
821
+ <Stack direction="horizontal" align="center">
822
+ <Text tag="span" size="xs" mono style={{ width: "7rem", flex: "none" }}>{density}</Text>
828
823
  <ControlRow />
829
824
  </Stack>
830
825
  </UIProvider>
@@ -839,7 +834,7 @@ export default function Density() {
839
834
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
840
835
  import { Stack } from "themelia-ui/base/structure"
841
836
  import { Text } from "themelia-ui/base/typography"
842
- import { Scope } from "themelia-ui/ui-provider"
837
+ import { UIScope } from "themelia-ui/ui-provider"
843
838
 
844
839
  import { InvoiceTable } from "./_shared"
845
840
 
@@ -849,22 +844,45 @@ export default function TableScale() {
849
844
  * Both, captioned. On its own the scoped table just looked like a table —
850
845
  * the section asserted a difference the page gave the reader no way to see.
851
846
  */
852
- <Stack gap="lg" style={{ width: "100%" }}>
853
- <Stack gap="xs" style={{ width: "100%" }}>
854
- <Text size="xs" type="secondary">--density-scale: 1</Text>
847
+ <Stack style={{ width: "100%" }}>
848
+ <Stack gap="sm" style={{ width: "100%" }}>
849
+ <Text size="xs" type="secondary">density: default</Text>
855
850
  <InvoiceTable />
856
851
  </Stack>
857
- <Stack gap="xs" style={{ width: "100%" }}>
858
- <Text size="xs" type="secondary">--density-scale: 0.85</Text>
859
- <Scope vars={{ "--density-scale": 0.85 }} style={{ width: "100%" }}>
852
+ <Stack gap="sm" style={{ width: "100%" }}>
853
+ <Text size="xs" type="secondary">density: compact</Text>
854
+ <UIScope config={{ density: "compact" }} style={{ width: "100%" }}>
860
855
  <InvoiceTable />
861
- </Scope>
856
+ </UIScope>
862
857
  </Stack>
863
858
  </Stack>
864
859
  )
865
860
  }
866
861
  ```
867
862
 
863
+ ### Colour islands
864
+
865
+ ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
866
+ import { Button } from "themelia-ui/base/buttons"
867
+ import { Card } from "themelia-ui/base/cards"
868
+ import { Grid } from "themelia-ui/base/structure"
869
+ import { UIProvider } from "themelia-ui/ui-provider"
870
+
871
+ export default function ColourIsland() {
872
+ return (
873
+ <Grid columns={{ base: 1, sm: 2 }}>
874
+ {(["light", "dark"] as const).map((colorScheme) => (
875
+ <UIProvider key={colorScheme} config={{ colorScheme }}>
876
+ <Card title={`A ${colorScheme} region`} description="Every colour inside resolves to this half.">
877
+ <Button>Continue</Button>
878
+ </Card>
879
+ </UIProvider>
880
+ ))}
881
+ </Grid>
882
+ )
883
+ }
884
+ ```
885
+
868
886
  ### Scoped theming
869
887
 
870
888
  ```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
@@ -902,7 +920,7 @@ import { Sample } from "./_shared"
902
920
 
903
921
  export default function UiScopeDensity() {
904
922
  return (
905
- <Grid columns={3} gap="lg">
923
+ <Grid columns={3}>
906
924
  {(["compact", "default", "comfortable"] as const).map((density) => (
907
925
  <GridCell key={density}>
908
926
  <UIScope config={{ density }}>
@@ -926,8 +944,8 @@ import { Sample } from "./_shared"
926
944
 
927
945
  export default function UiScopeNesting() {
928
946
  return (
929
- <UIScope config={{ colorScheme: "dark" }} transparent={false} style={{ padding: "var(--space-xl)", borderRadius: "var(--radius)", background: "var(--background)" }}>
930
- <Stack gap="lg">
947
+ <UIScope config={{ colorScheme: "dark" }} transparent={false} style={{ padding: "var(--padding)", borderRadius: "var(--radius)", background: "var(--background)" }}>
948
+ <Stack>
931
949
  <Text size="xs" type="secondary">
932
950
  outer: colorScheme=&quot;dark&quot;
933
951
  </Text>
@@ -952,7 +970,7 @@ export default function UiScopeRender() {
952
970
  render={<aside />}
953
971
  transparent={false}
954
972
  config={{ density: "compact" }}
955
- style={{ padding: "var(--space-lg)", border: "var(--border-width) solid var(--border)", borderRadius: "var(--radius)" }}
973
+ style={{ padding: "var(--padding)", border: "var(--border-width) solid var(--border)", borderRadius: "var(--radius)" }}
956
974
  >
957
975
  <Text size="xs" type="secondary">
958
976
  This scope is a real &lt;aside&gt;, at compact density.
@@ -977,7 +995,7 @@ import { UIPortalHost, UIScope } from "themelia-ui/ui-provider"
977
995
  function ActionsMenu() {
978
996
  return (
979
997
  <DropdownMenu>
980
- <DropdownMenuTrigger render={<Button buttonStyle="outline">Actions</Button>} />
998
+ <DropdownMenuTrigger render={<Button appearance="outline">Actions</Button>} />
981
999
  <DropdownMenuContent>
982
1000
  <DropdownMenuItem>Duplicate</DropdownMenuItem>
983
1001
  <DropdownMenuItem>Move to…</DropdownMenuItem>
@@ -989,8 +1007,8 @@ function ActionsMenu() {
989
1007
 
990
1008
  export default function UiPortalHostExample() {
991
1009
  return (
992
- <Stack direction="horizontal">
993
- <Grid columns={2} gap="lg">
1010
+ <Stack gap="sm" direction="horizontal">
1011
+ <Grid columns={2}>
994
1012
  <GridCell>
995
1013
  <Stack gap="sm">
996
1014
  <Text size="xs" type="secondary">
@@ -10,9 +10,9 @@ The rungs are ordinary props; controlled state and callbacks when state exists;
10
10
  named slots; render props; exported parts; headless hooks; and complete recipes. Passive
11
11
  modules may stop at the first rung. Interaction features normally expose several.
12
12
 
13
- This table is derived from what each module declares, so it cannot describe a seam that
14
- was removed or miss one that was added. The table focuses on feature modules, where the
15
- higher rungs are meaningful; the columns start at accessors.
13
+ This table summarizes detected declarations and recipes. It is a discovery aid, not a
14
+ prop contract: open the selected module API for exact signatures and supported seams.
15
+ It focuses on feature modules; the columns start at accessors.
16
16
 
17
17
  | module | accessors | slots | render props | headless hook | partials | recipe |
18
18
  | --- | :-: | :-: | :-: | :-: | :-: | :-: |
@@ -41,7 +41,7 @@ higher rungs are meaningful; the columns start at accessors.
41
41
  | `features/table` | ● | ● | · | ● | ● | ● |
42
42
  | `features/theme-tweaker` | · | ● | · | ● | ● | ● |
43
43
 
44
- ## The four the plan names
44
+ ## Four feature examples
45
45
 
46
46
  Global Search, Filters, Comments and Data View are the demonstration cases, because a
47
47
  ladder that only works on a Badge proves nothing. Each is usable at three heights:
@@ -50,7 +50,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
50
50
 
51
51
  **Ready-made** — `GlobalSearch`, dropped in with props and callbacks.
52
52
 
53
- **Region-customized** — 8 exported parts, so a region can be replaced without copying the whole: `GlobalSearchDialog`, `GlobalSearchEmptyState`, `GlobalSearchFooter`, `GlobalSearchIdleState`, `GlobalSearchInput`, and 2 more.
53
+ **Region-customized** — 7 other public exports to inspect for region customization: `GlobalSearchDialog`, `GlobalSearchEmptyState`, `GlobalSearchFooter`, `GlobalSearchIdleState`, `GlobalSearchInput`, and 2 more.
54
54
 
55
55
  **Headless** — `useGlobalSearch`, for presentation the parts cannot express.
56
56
 
@@ -58,7 +58,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
58
58
 
59
59
  **Ready-made** — `FilterLayout`, dropped in with props and callbacks.
60
60
 
61
- **Region-customized** — 18 exported parts, so a region can be replaced without copying the whole: `AsyncFilterEditor`, `DateFilterEditor`, `FilterEditor`, `FilterErrorBoundary`, `FilterOperator`, and 12 more.
61
+ **Region-customized** — 17 other public exports to inspect for region customization: `AsyncFilterEditor`, `DateFilterEditor`, `FilterEditor`, `FilterErrorBoundary`, `FilterOperator`, and 12 more.
62
62
 
63
63
  **Headless** — `useAsyncOptions`, `useFilterCache`, `useFilterGroups`, `useFilters`, for presentation the parts cannot express.
64
64
 
@@ -66,7 +66,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
66
66
 
67
67
  **Ready-made** — `Comments`, dropped in with props and callbacks.
68
68
 
69
- **Region-customized** — 6 exported parts, so a region can be replaced without copying the whole: `CommentAttachmentChip`, `CommentComposer`, `CommentContent`, `CommentItem`, `CommentTimeline`.
69
+ **Region-customized** — 5 other public exports to inspect for region customization: `CommentAttachmentChip`, `CommentComposer`, `CommentContent`, `CommentItem`, `CommentTimeline`.
70
70
 
71
71
  **Headless** — `useAttachmentUpload`, `useComments`, for presentation the parts cannot express.
72
72
 
@@ -74,6 +74,6 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
74
74
 
75
75
  **Ready-made** — `DataView`, dropped in with props and callbacks.
76
76
 
77
- **Region-customized** — 6 exported parts, so a region can be replaced without copying the whole: `DataViewPagination`, `DataViewShell`, `DataViewTableFrame`, `DataViewToolbar`, `SavedViewTabs`.
77
+ **Region-customized** — 5 other public exports to inspect for region customization: `DataViewPagination`, `DataViewShell`, `DataViewTableFrame`, `DataViewToolbar`, `SavedViewTabs`.
78
78
 
79
79
  **Headless** — `useDataView`, for presentation the parts cannot express.