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
@@ -15,7 +15,6 @@ Naming a form control so the label and control are associated.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { Label } from "themelia-ui/base/label"
18
- import "themelia-ui/base/label.css"
19
18
  ```
20
19
 
21
20
  ## Composition
@@ -53,8 +52,8 @@ import { Input } from "themelia-ui/base/text-inputs"
53
52
 
54
53
  export default function LabelExample() {
55
54
  return (
56
- <Stack gap="lg" style={{ maxWidth: "26rem", width: "100%" }}>
57
- <Stack gap="xs">
55
+ <Stack style={{ maxWidth: "26rem", width: "100%" }}>
56
+ <Stack gap="sm">
58
57
  <Label htmlFor="demo-email">Email</Label>
59
58
  <Input id="demo-email" placeholder="name@example.com" />
60
59
  </Stack>
@@ -15,16 +15,14 @@ An application-style menu bar sits persistently across the top of a workspace.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { Menubar } from "themelia-ui/base/menubar"
18
- import "themelia-ui/base/menubar.css"
19
18
  import { DropdownMenu } from "themelia-ui/base/dropdown-menu"
20
- import "themelia-ui/base/dropdown-menu.css"
21
19
  ```
22
20
 
23
21
  ## Composition
24
22
 
25
- This module depends on no other module.
23
+ This module composes `base/typography`.
26
24
 
27
- It is used together with `base/dropdown-menu`: import that module and its stylesheet too.
25
+ It is used together with `base/dropdown-menu`: import that module too.
28
26
 
29
27
  Application policy—routing, fetching, persistence, permissions, and translation—stays
30
28
  outside the package and arrives through the public props, callbacks, slots, or accessors below.
@@ -15,12 +15,11 @@ Site navigation needs grouped panels of links under top-level triggers.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { NavigationMenu } from "themelia-ui/base/navigation-menu"
18
- import "themelia-ui/base/navigation-menu.css"
19
18
  ```
20
19
 
21
20
  ## Composition
22
21
 
23
- This module depends on no other module.
22
+ This module composes `base/typography`.
24
23
 
25
24
  Application policy—routing, fetching, persistence, permissions, and translation—stays
26
25
  outside the package and arrives through the public props, callbacks, slots, or accessors below.
@@ -141,7 +140,7 @@ import { Stack } from "themelia-ui/base/structure"
141
140
 
142
141
  export default function NavigationMenuExample() {
143
142
  return (
144
- <Stack direction="horizontal">
143
+ <Stack gap="sm" direction="horizontal">
145
144
  <NavigationMenu aria-label="Documentation">
146
145
  <NavigationMenuList>
147
146
  <NavigationMenuItem>
@@ -15,7 +15,6 @@ Moving between sibling views or pages — tabs, breadcrumbs, pagination, page he
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { Breadcrumbs } from "themelia-ui/base/navigation"
18
- import "themelia-ui/base/navigation.css"
19
18
  ```
20
19
 
21
20
  ## Composition
@@ -521,7 +520,7 @@ export default function PageHeadingExample() {
521
520
  description="Everything issued in this workspace, newest first."
522
521
  actions={
523
522
  <>
524
- <Button tone="neutral" buttonStyle="outline">Export</Button>
523
+ <Button tone="neutral" appearance="outline">Export</Button>
525
524
  <Button>New invoice</Button>
526
525
  </>
527
526
  }
@@ -733,7 +732,7 @@ export default function TabsScroll() {
733
732
  return (
734
733
  <>
735
734
  <Switch checked={edgeFade} onChange={event => setEdgeFade(event.target.checked)} label="Fade overflowing edges" />
736
- <Stack maxWidth="22rem">
735
+ <Stack gap="sm" maxWidth="22rem">
737
736
  <Tabs defaultValue="overview">
738
737
  <TabList label="Scrollable sections" variant="enclosed" edgeFade={edgeFade}>
739
738
  {["Overview", "Activity", "Settings", "Billing", "Members", "Integrations", "Audit log"].map(label => <Tab key={label} value={label.toLowerCase()}>{label}</Tab>)}
@@ -15,12 +15,11 @@ A one-time code is entered as separate character cells.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { OtpInput } from "themelia-ui/base/otp-input"
18
- import "themelia-ui/base/otp-input.css"
19
18
  ```
20
19
 
21
20
  ## Composition
22
21
 
23
- This module composes `base/display`.
22
+ This module composes `base/display`, `base/typography`.
24
23
 
25
24
  Application policy—routing, fetching, persistence, permissions, and translation—stays
26
25
  outside the package and arrives through the public props, callbacks, slots, or accessors below.
@@ -85,9 +84,9 @@ export default function OtpInputExample() {
85
84
  const [code, setCode] = useState("")
86
85
 
87
86
  return (
88
- <Stack gap="lg" align="start">
87
+ <Stack align="start">
89
88
  <OtpInput length={6} value={code} onValueChange={setCode} />
90
- <Stack gap="xs" align="start">
89
+ <Stack gap="sm" align="start">
91
90
  <Text size="xs" type="secondary">groupSize={"{3}"} — written as "123 456"</Text>
92
91
  <OtpInput length={6} groupSize={3} />
93
92
  </Stack>
@@ -15,7 +15,6 @@ Building a new modal surface inside the kit that must share the dialog/sheet ana
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { Overlay } from "themelia-ui/base/overlay"
18
- import "themelia-ui/base/overlay.css"
19
18
  ```
20
19
 
21
20
  ## Composition
@@ -27,6 +26,16 @@ outside the package and arrives through the public props, callbacks, slots, or a
27
26
 
28
27
  ## Public declarations
29
28
 
29
+ ### `CssLength`
30
+
31
+ Kind: type.
32
+
33
+ A CSS length: a number with a unit or a percentage, or a math or `var()` expression.
34
+
35
+ ```text
36
+ `${number}${"px" | "rem" | "em" | "ch" | "%" | "vw" | "vh" | "dvw" | "dvh" | "svw" | "svh" | "lvw" | "lvh"}` | `${"calc" | "min" | "max" | "clamp" | "var"}(${string})`
37
+ ```
38
+
30
39
  ### `defaultOverlayStrings`
31
40
 
32
41
  Kind: const.
@@ -94,7 +103,7 @@ Kind: interface.
94
103
  | member | required | type | description / documented default |
95
104
  | --- | :-: | --- | --- |
96
105
  | `placement` | no | `OverlayPlacement` | Where the surface sits. Centre reads as a dialog, an edge as a sheet. DialogContent and<br>AlertDialogContent fix it to centre; SheetContent exposes it as `side`. |
97
- | `size` | no | `OverlaySize` | Cross-axis extent for an edge placement — the width of a side panel; a top or bottom<br>one sizes to its content and takes this as the ceiling. Named steps resolve to tokens;<br>any other CSS length is used as given. Ignored when centred. @default "md" |
106
+ | `size` | no | `OverlaySize` | Cross-axis extent for an edge placement — the width of a side panel; a top or bottom<br>one sizes to its content and takes this as the ceiling. Named steps resolve to tokens;<br>any other CSS length is used as given. Ignored when centred. @default "default" |
98
107
  | `length` | no | `OverlayLength` | Along-axis extent, for an edge placement. Less than full detaches the panel and centres<br>it on that axis. It is measured against the space the inset leaves rather than the<br>viewport: 70% of an inset panel is 70% of what is between the offsets, and the rest is<br>split between the two ends. Full needs no inset to look right, which is why a<br>corner-anchored sheet sets only `inset`. @default "full" |
99
108
  | `inset` | no | `OverlayInset` | The gap to the viewport edges. `false` is flush — a sheet welded to the side; `true`<br>uses the kit's gap; any CSS length sets your own. One offset, spent on every side the<br>panel does not run to, so an inset side panel sits the same distance from the top, the<br>side and the bottom. Any gap detaches it, rounds all four corners and gives it a full<br>border. @default false |
100
109
  | `modality` | no | `OverlayModality` | How much of the page the surface takes hostage: scrim, inert background and scroll<br>lock (`modal`), focus alone (`trap-focus`), or neither (`non-modal`). @default "modal" |
@@ -162,7 +171,7 @@ The gap to the viewport edges: `false` is flush, `true` the kit's gap, or any CS
162
171
  An inset panel rounds all four corners.
163
172
 
164
173
  ```text
165
- boolean | (string & {})
174
+ boolean | CssLength
166
175
  ```
167
176
 
168
177
  ### `OverlayLength`
@@ -172,7 +181,7 @@ Kind: type.
172
181
  Along-axis extent (a side panel's height). `full` welds it to both ends; less centres it.
173
182
 
174
183
  ```text
175
- "full" | (string & {})
184
+ "full" | CssLength
176
185
  ```
177
186
 
178
187
  ### `OverlayModality`
@@ -215,7 +224,7 @@ Kind: type.
215
224
  Cross-axis extent of an edge-placed surface (a side panel's width): a step or any CSS length.
216
225
 
217
226
  ```text
218
- "sm" | "md" | "lg" | "full" | (string & {})
227
+ "default" | "sm" | "full" | CssLength
219
228
  ```
220
229
 
221
230
  ### `OverlayStrings`
@@ -277,8 +286,8 @@ export default function Modality() {
277
286
  const [nonModal, setNonModal] = useState(false)
278
287
 
279
288
  return (
280
- <Stack direction="horizontal" gap="lg" wrap align="center">
281
- <Button tone="neutral" buttonStyle="outline" onClick={() => setNonModal(true)}>
289
+ <Stack direction="horizontal" wrap align="center">
290
+ <Button tone="neutral" appearance="outline" onClick={() => setNonModal(true)}>
282
291
  Open non-modal
283
292
  </Button>
284
293
  <Text type="secondary" size="sm">
@@ -294,7 +303,7 @@ export default function Modality() {
294
303
  <Text type="secondary">Scroll the page behind; this stays where it is.</Text>
295
304
  </OverlayBody>
296
305
  <OverlayFooter>
297
- <OverlayClose render={<Button tone="neutral" buttonStyle="outline" />}>
306
+ <OverlayClose render={<Button tone="neutral" appearance="outline" />}>
298
307
  Close
299
308
  </OverlayClose>
300
309
  </OverlayFooter>
@@ -322,8 +331,8 @@ export default function OverlayControlled() {
322
331
  const [open, setOpen] = useState(false)
323
332
 
324
333
  return (
325
- <Stack direction="horizontal" gap="md" align="center">
326
- <Button tone="neutral" buttonStyle="outline" onClick={() => setOpen(true)}>
334
+ <Stack direction="horizontal" gap="sm" align="center">
335
+ <Button tone="neutral" appearance="outline" onClick={() => setOpen(true)}>
327
336
  Open from outside
328
337
  </Button>
329
338
  <Text size="xs" type="secondary">
@@ -336,7 +345,7 @@ export default function OverlayControlled() {
336
345
  <OverlayDescription>The caller owns the open state.</OverlayDescription>
337
346
  </OverlayHeader>
338
347
  <OverlayFooter>
339
- <OverlayClose render={<Button tone="neutral" buttonStyle="outline" />}>
348
+ <OverlayClose render={<Button tone="neutral" appearance="outline" />}>
340
349
  Close
341
350
  </OverlayClose>
342
351
  </OverlayFooter>
@@ -360,9 +369,9 @@ import { Text } from "themelia-ui/base/typography"
360
369
 
361
370
  export default function OverlayStructure() {
362
371
  return (
363
- <Stack direction="horizontal">
372
+ <Stack gap="sm" direction="horizontal">
364
373
  <Overlay>
365
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
374
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
366
375
  Open a long surface
367
376
  </OverlayTrigger>
368
377
  <OverlayContent>
@@ -377,7 +386,7 @@ export default function OverlayStructure() {
377
386
  </OverlayBody>
378
387
  <OverlayFooter>
379
388
  <OverlayDismissArea>
380
- <Button tone="neutral" buttonStyle="outline">Cancel</Button>
389
+ <Button tone="neutral" appearance="outline">Cancel</Button>
381
390
  <Button>Save</Button>
382
391
  </OverlayDismissArea>
383
392
  </OverlayFooter>
@@ -400,9 +409,9 @@ import { Stack } from "themelia-ui/base/structure"
400
409
 
401
410
  export default function DialogSurface() {
402
411
  return (
403
- <Stack direction="horizontal">
412
+ <Stack gap="sm" direction="horizontal">
404
413
  <Overlay>
405
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
414
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
406
415
  Confirm
407
416
  </OverlayTrigger>
408
417
  <OverlayContent surface="bare" showCloseButton={false}>
@@ -412,7 +421,7 @@ export default function DialogSurface() {
412
421
  </OverlayHeader>
413
422
  <OverlayFooter>
414
423
  <OverlayDismissArea>
415
- <Button tone="neutral" buttonStyle="outline">Cancel</Button>
424
+ <Button tone="neutral" appearance="outline">Cancel</Button>
416
425
  <Button>Publish</Button>
417
426
  </OverlayDismissArea>
418
427
  </OverlayFooter>
@@ -441,9 +450,9 @@ export default function DialogFocus() {
441
450
  const nameRef = useRef<HTMLInputElement>(null)
442
451
 
443
452
  return (
444
- <Stack direction="horizontal">
453
+ <Stack gap="sm" direction="horizontal">
445
454
  <Overlay>
446
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
455
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
447
456
  New workspace
448
457
  </OverlayTrigger>
449
458
  <OverlayContent initialFocusRef={nameRef}>
@@ -451,7 +460,7 @@ export default function DialogFocus() {
451
460
  <OverlayTitle>New workspace</OverlayTitle>
452
461
  </OverlayHeader>
453
462
  <OverlayBody>
454
- <Stack gap="md">
463
+ <Stack gap="sm">
455
464
  <FormField label="Name">
456
465
  <Input ref={nameRef} placeholder="Acme design" />
457
466
  </FormField>
@@ -462,7 +471,7 @@ export default function DialogFocus() {
462
471
  </OverlayBody>
463
472
  <OverlayFooter>
464
473
  <OverlayDismissArea>
465
- <Button tone="neutral" buttonStyle="outline">Cancel</Button>
474
+ <Button tone="neutral" appearance="outline">Cancel</Button>
466
475
  <Button>Create</Button>
467
476
  </OverlayDismissArea>
468
477
  </OverlayFooter>
@@ -502,9 +511,9 @@ const INVITE_ACTIONS: ActionDefinition[] = [
502
511
 
503
512
  export default function DialogPopups() {
504
513
  return (
505
- <Stack direction="horizontal">
514
+ <Stack gap="sm" direction="horizontal">
506
515
  <Overlay>
507
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
516
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
508
517
  Invite member
509
518
  </OverlayTrigger>
510
519
  <OverlayContent>
@@ -513,7 +522,7 @@ export default function DialogPopups() {
513
522
  <OverlayDescription>They receive an email with a link to join.</OverlayDescription>
514
523
  </OverlayHeader>
515
524
  <OverlayBody>
516
- <Stack gap="md">
525
+ <Stack gap="sm">
517
526
  <FormField label="Email">
518
527
  <Input placeholder="name@example.com" />
519
528
  </FormField>
@@ -523,13 +532,13 @@ export default function DialogPopups() {
523
532
  </Stack>
524
533
  </OverlayBody>
525
534
  <OverlayFooter>
526
- <Stack direction="horizontal" gap="md" align="center" wrap>
535
+ <Stack direction="horizontal" gap="sm" align="center" wrap>
527
536
  <ActionMenu actions={INVITE_ACTIONS} label="More" />
528
- <TooltipButton tooltip="Copy an invite link instead" tone="neutral" buttonStyle="ghost">
537
+ <TooltipButton tooltip="Copy an invite link instead" tone="neutral" appearance="ghost">
529
538
  Copy link
530
539
  </TooltipButton>
531
540
  <OverlayDismissArea>
532
- <Button tone="neutral" buttonStyle="outline">Cancel</Button>
541
+ <Button tone="neutral" appearance="outline">Cancel</Button>
533
542
  <Button>Send invite</Button>
534
543
  </OverlayDismissArea>
535
544
  </Stack>
@@ -556,9 +565,9 @@ import { Input } from "themelia-ui/base/text-inputs"
556
565
 
557
566
  export default function Dialog() {
558
567
  return (
559
- <Stack direction="horizontal">
568
+ <Stack gap="sm" direction="horizontal">
560
569
  <Overlay>
561
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
570
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
562
571
  Open dialog
563
572
  </OverlayTrigger>
564
573
  <DialogContent>
@@ -572,7 +581,7 @@ export default function Dialog() {
572
581
  </FormField>
573
582
  </OverlayBody>
574
583
  <OverlayFooter>
575
- <OverlayClose render={<Button tone="neutral" buttonStyle="outline" />}>
584
+ <OverlayClose render={<Button tone="neutral" appearance="outline" />}>
576
585
  Cancel
577
586
  </OverlayClose>
578
587
  <OverlayClose render={<Button />}>
@@ -602,9 +611,9 @@ import { Text } from "themelia-ui/base/typography"
602
611
 
603
612
  export default function AlertDialog() {
604
613
  return (
605
- <Stack direction="horizontal">
614
+ <Stack gap="sm" direction="horizontal">
606
615
  <Overlay>
607
- <OverlayTrigger render={<Button tone="destructive" buttonStyle="outline" />}>
616
+ <OverlayTrigger render={<Button tone="destructive" appearance="outline" />}>
608
617
  Delete account
609
618
  </OverlayTrigger>
610
619
  <AlertDialogContent>
@@ -616,7 +625,7 @@ export default function AlertDialog() {
616
625
  <Text type="secondary">Every project and invoice is removed permanently.</Text>
617
626
  </OverlayBody>
618
627
  <OverlayFooter>
619
- <AlertDialogCancel render={<Button tone="neutral" buttonStyle="outline" />}>
628
+ <AlertDialogCancel render={<Button tone="neutral" appearance="outline" />}>
620
629
  Cancel
621
630
  </AlertDialogCancel>
622
631
  {/* The answer is an Action, not a second Cancel: they read the same only until a caller hooks the one that commits. */}
@@ -646,9 +655,9 @@ import { Input } from "themelia-ui/base/text-inputs"
646
655
 
647
656
  export default function Sheet() {
648
657
  return (
649
- <Stack direction="horizontal">
658
+ <Stack gap="sm" direction="horizontal">
650
659
  <Overlay>
651
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
660
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
652
661
  Open sheet
653
662
  </OverlayTrigger>
654
663
  <SheetContent side="inline-end">
@@ -657,7 +666,7 @@ export default function Sheet() {
657
666
  <OverlayDescription>Native top layer — the list behind stays in view and cannot clip it.</OverlayDescription>
658
667
  </OverlayHeader>
659
668
  <OverlayBody>
660
- <Stack gap="md">
669
+ <Stack gap="sm">
661
670
  <FormField label="Venue">
662
671
  <Input defaultValue="Marlow Hall" />
663
672
  </FormField>
@@ -667,7 +676,7 @@ export default function Sheet() {
667
676
  </Stack>
668
677
  </OverlayBody>
669
678
  <OverlayFooter>
670
- <OverlayClose render={<Button tone="neutral" buttonStyle="outline" />}>
679
+ <OverlayClose render={<Button tone="neutral" appearance="outline" />}>
671
680
  Cancel
672
681
  </OverlayClose>
673
682
  <OverlayClose render={<Button />}>
@@ -694,9 +703,9 @@ import { Text } from "themelia-ui/base/typography"
694
703
 
695
704
  export default function SheetShape() {
696
705
  return (
697
- <Stack direction="horizontal" gap="lg" wrap align="center">
706
+ <Stack direction="horizontal" wrap align="center">
698
707
  <Overlay>
699
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
708
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
700
709
  Flush, size=&quot;sm&quot;
701
710
  </OverlayTrigger>
702
711
  <SheetContent side="inline-end" size="sm">
@@ -711,7 +720,7 @@ export default function SheetShape() {
711
720
  </Overlay>
712
721
 
713
722
  <Overlay>
714
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
723
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
715
724
  Inset
716
725
  </OverlayTrigger>
717
726
  <SheetContent side="inline-end" size="28rem" inset>
@@ -730,7 +739,7 @@ export default function SheetShape() {
730
739
  </Overlay>
731
740
 
732
741
  <Overlay>
733
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
742
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
734
743
  Inset from block-end
735
744
  </OverlayTrigger>
736
745
  <SheetContent side="block-end" size="60%" length="70%" inset="1.5rem">
@@ -768,9 +777,9 @@ import { UIProvider } from "themelia-ui/ui-provider"
768
777
 
769
778
  export default function SheetProvider() {
770
779
  return (
771
- <Stack direction="horizontal" gap="lg" wrap align="center">
780
+ <Stack direction="horizontal" wrap align="center">
772
781
  <Overlay>
773
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
782
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
774
783
  Kit default
775
784
  </OverlayTrigger>
776
785
  <SheetContent>
@@ -786,7 +795,7 @@ export default function SheetProvider() {
786
795
 
787
796
  <UIProvider config={{ defaults: { sheet: { size: "26rem", inset: true } } }}>
788
797
  <Overlay>
789
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
798
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
790
799
  Under a provider
791
800
  </OverlayTrigger>
792
801
  <SheetContent>
@@ -818,9 +827,9 @@ import { UIProvider } from "themelia-ui/ui-provider"
818
827
 
819
828
  export default function OverlayBackdrop() {
820
829
  return (
821
- <Stack direction="horizontal" gap="lg" wrap align="center">
830
+ <Stack direction="horizontal" wrap align="center">
822
831
  <Overlay>
823
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
832
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
824
833
  Default scrim
825
834
  </OverlayTrigger>
826
835
  <DialogContent>
@@ -833,7 +842,7 @@ export default function OverlayBackdrop() {
833
842
 
834
843
  <UIProvider config={{ overlay: { backdropBlur: 4 } }}>
835
844
  <Overlay>
836
- <OverlayTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
845
+ <OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
837
846
  Blurred scrim
838
847
  </OverlayTrigger>
839
848
  <DialogContent>
@@ -15,7 +15,6 @@ A popover's content is a simple list of actions and does not need the full menu
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { PopoverMenu } from "themelia-ui/base/popover-menu"
18
- import "themelia-ui/base/popover-menu.css"
19
18
  ```
20
19
 
21
20
  ## Composition
@@ -174,10 +173,10 @@ export default function PopoverMenuExample() {
174
173
  const [owner, setOwner] = useState("jane")
175
174
 
176
175
  return (
177
- <Stack direction="horizontal" gap="xl" align="center">
176
+ <Stack direction="horizontal" align="center">
178
177
  <PopoverMenu
179
178
  trigger={
180
- <Button buttonStyle="outline" tone="neutral">
179
+ <Button appearance="outline" tone="neutral">
181
180
  Owner
182
181
  <ChevronDownIcon />
183
182
  </Button>
@@ -192,7 +191,7 @@ export default function PopoverMenuExample() {
192
191
  />
193
192
  <PopoverMenu
194
193
  trigger={
195
- <Button buttonStyle="outline" tone="neutral">
194
+ <Button appearance="outline" tone="neutral">
196
195
  No search
197
196
  <ChevronDownIcon />
198
197
  </Button>
@@ -203,7 +202,7 @@ export default function PopoverMenuExample() {
203
202
  />
204
203
  <PopoverMenu
205
204
  trigger={
206
- <Button buttonStyle="outline" tone="neutral">
205
+ <Button appearance="outline" tone="neutral">
207
206
  Loading
208
207
  <ChevronDownIcon />
209
208
  </Button>
@@ -233,10 +232,10 @@ export default function PopoverMenuStates() {
233
232
  const [failed, setFailed] = useState(true)
234
233
 
235
234
  return (
236
- <Stack direction="horizontal" gap="xl" align="center">
235
+ <Stack direction="horizontal" align="center">
237
236
  <PopoverMenu
238
237
  trigger={
239
- <Button buttonStyle="outline" tone="neutral">
238
+ <Button appearance="outline" tone="neutral">
240
239
  Failed load
241
240
  <ChevronDownIcon />
242
241
  </Button>
@@ -248,7 +247,7 @@ export default function PopoverMenuStates() {
248
247
  />
249
248
  <PopoverMenu
250
249
  trigger={
251
- <Button buttonStyle="outline" tone="neutral">
250
+ <Button appearance="outline" tone="neutral">
252
251
  Two characters
253
252
  <ChevronDownIcon />
254
253
  </Button>
@@ -15,7 +15,6 @@ A non-modal panel is anchored to a trigger and may hold interactive content.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { Popover } from "themelia-ui/base/popover"
18
- import "themelia-ui/base/popover.css"
19
18
  ```
20
19
 
21
20
  ## Composition
@@ -145,9 +144,9 @@ import { Text } from "themelia-ui/base/typography"
145
144
 
146
145
  export default function PopoverExample() {
147
146
  return (
148
- <Stack direction="horizontal" gap="lg" wrap>
147
+ <Stack direction="horizontal" wrap>
149
148
  <Popover>
150
- <PopoverTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
149
+ <PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
151
150
  <SlidersHorizontalIcon aria-hidden="true" />
152
151
  Filters
153
152
  </PopoverTrigger>
@@ -162,7 +161,7 @@ export default function PopoverExample() {
162
161
  <Checkbox label="On hold" />
163
162
  </Stack>
164
163
  <PopoverFooter>
165
- <Button tone="neutral" buttonStyle="ghost">
164
+ <Button tone="neutral" appearance="ghost">
166
165
  Reset
167
166
  </Button>
168
167
  <Button>Apply</Button>
@@ -171,7 +170,7 @@ export default function PopoverExample() {
171
170
  </Popover>
172
171
 
173
172
  <Popover>
174
- <PopoverTrigger render={<Button tone="neutral" buttonStyle="ghost" iconOnly aria-label="About this figure" />}>
173
+ <PopoverTrigger render={<Button tone="neutral" appearance="ghost" iconOnly aria-label="About this figure" />}>
175
174
  <InfoIcon aria-hidden="true" />
176
175
  </PopoverTrigger>
177
176
  <PopoverContent width="18rem">
@@ -197,10 +196,10 @@ import { Text } from "themelia-ui/base/typography"
197
196
 
198
197
  export default function PopoverPlacement() {
199
198
  return (
200
- <Stack direction="horizontal" gap="lg" wrap>
199
+ <Stack direction="horizontal" wrap>
201
200
  {(["top", "right", "bottom", "left"] as const).map((side) => (
202
201
  <Popover key={side}>
203
- <PopoverTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
202
+ <PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
204
203
  {side}
205
204
  </PopoverTrigger>
206
205
  <PopoverContent side={side}>
@@ -209,7 +208,7 @@ export default function PopoverPlacement() {
209
208
  </Popover>
210
209
  ))}
211
210
  <Popover>
212
- <PopoverTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
211
+ <PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
213
212
  width=&quot;trigger&quot;
214
213
  </PopoverTrigger>
215
214
  <PopoverContent width="trigger">
@@ -234,13 +233,13 @@ import { Text } from "themelia-ui/base/typography"
234
233
  export default function PopoverAnchorExample() {
235
234
  return (
236
235
  <Popover>
237
- <Stack direction="horizontal" gap="2xl" align="center">
236
+ <Stack direction="horizontal" align="center">
238
237
  <PopoverAnchor>
239
238
  <Text size="xs" type="secondary">
240
239
  <CalendarIcon aria-hidden="true" /> 14–28 August
241
240
  </Text>
242
241
  </PopoverAnchor>
243
- <PopoverTrigger render={<Button tone="neutral" buttonStyle="outline" />}>
242
+ <PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
244
243
  Change the range
245
244
  </PopoverTrigger>
246
245
  </Stack>
@@ -15,12 +15,11 @@ A value must be scannable on screen or in print.
15
15
 
16
16
  ```tsx fragment — import-only example
17
17
  import { QRCode } from "themelia-ui/base/qr-code"
18
- import "themelia-ui/base/qr-code.css"
19
18
  ```
20
19
 
21
20
  ## Composition
22
21
 
23
- This module depends on no other module.
22
+ This module composes `base/typography`.
24
23
 
25
24
  Application policy—routing, fetching, persistence, permissions, and translation—stays
26
25
  outside the package and arrives through the public props, callbacks, slots, or accessors below.
@@ -52,8 +51,8 @@ Extends: `Omit<ComponentProps<"div">, "children">`.
52
51
  | member | required | type | description / documented default |
53
52
  | --- | :-: | --- | --- |
54
53
  | `value` | yes | `string` | What the code encodes — a URL, a payment string, a token. An empty value renders<br>`emptyState`, or nothing at all when there is none. |
55
- | `foreground` | no | `string` | Overrides the dark modules. Defaults to the inverse background, dark in both themes.<br>Any CSS colour; it is converted to hex for the encoder. |
56
- | `background` | no | `string` | Overrides the light modules. Defaults to the inverse foreground, light in both themes.<br>Any CSS colour; it is converted to hex for the encoder. |
54
+ | `foreground` | no | `string` | Overrides the dark modules. Defaults to the theme's foreground as the light theme draws<br>it, dark in both themes. Any CSS colour; it is converted to hex for the encoder. |
55
+ | `background` | no | `string` | Overrides the light modules. Defaults to the theme's background as the light theme draws<br>it, light in both themes. Any CSS colour; it is converted to hex for the encoder. |
57
56
  | `robustness` | no | `QRRobustness` | Error correction: how much of the symbol can be obscured and still decode — L ≈ 7%,<br>M ≈ 15%, Q ≈ 25%, H ≈ 30%. Higher needs a denser grid. |
58
57
  | `placeholder` | no | `string` | Shown while encoding. Defaults to this component's own `generating` string; a value<br>that cannot be encoded shows `strings.failed` instead. |
59
58
  | `strings` | no | `Partial<QRCodeStrings>` | Overrides this code's own copy — the two placeholder states and its name. |
@@ -103,8 +102,8 @@ export default function QrCode() {
103
102
  const [qrValue, setQrValue] = useState("https://example.com/invoice/4417")
104
103
 
105
104
  return (
106
- <Stack direction="horizontal" gap="xl" align="start" wrap>
107
- <Stack gap="lg" style={{ maxWidth: "26rem", width: "100%" }}>
105
+ <Stack direction="horizontal" align="start" wrap>
106
+ <Stack style={{ maxWidth: "26rem", width: "100%" }}>
108
107
  <FormField label="Encoded value">
109
108
  <Input value={qrValue} onChange={(event) => setQrValue(event.target.value)} />
110
109
  </FormField>
@@ -113,13 +112,13 @@ export default function QrCode() {
113
112
  </FormField>
114
113
  </Stack>
115
114
  {/* Captioned, so each grid is attributable to its setting. */}
116
- <Stack direction="horizontal" gap="lg" wrap align="start">
115
+ <Stack direction="horizontal" wrap align="start">
117
116
  {[
118
117
  { node: <QRCode value={qrValue} label="Invoice link" />, caption: 'robustness="M" — default' },
119
118
  { node: <QRCode value={qrValue} robustness="H" label="Invoice link, high correction" />, caption: 'robustness="H" — denser grid' },
120
119
  { node: <QRCode value="" emptyState="No link yet" />, caption: "empty, with an emptyState" },
121
120
  ].map((item) => (
122
- <Stack key={item.caption} gap="2xs" align="start">
121
+ <Stack key={item.caption} gap="sm" align="start">
123
122
  {item.node}
124
123
  <Text size="xs" type="secondary">{item.caption}</Text>
125
124
  </Stack>