themelia-react-ui 2.0.4 → 2.0.6

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 (715) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +122 -20
  4. package/dist/{accordion-96o0pN62.js → accordion-0tQUZ20r.js} +13 -13
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-CHgs8vmj.js → action-menu-C0gjzLyE.js} +48 -45
  7. package/dist/action-menu-C0gjzLyE.js.map +1 -0
  8. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  9. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  10. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-CGGpQryR.js} +281 -230
  11. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  12. package/dist/app-shell-EHuuRDGy.js +321 -0
  13. package/dist/app-shell-EHuuRDGy.js.map +1 -0
  14. package/dist/{attachment-DkoqHPPl.js → attachment-BCpA4e7i.js} +10 -10
  15. package/dist/{attachment-DkoqHPPl.js.map → attachment-BCpA4e7i.js.map} +1 -1
  16. package/dist/{auth-D2FVZ1MH.js → auth-B0girIk_.js} +49 -52
  17. package/dist/auth-B0girIk_.js.map +1 -0
  18. package/dist/{avatar-DWO_HHhB.js → avatar-B9Jnp-T-.js} +8 -8
  19. package/dist/avatar-B9Jnp-T-.js.map +1 -0
  20. package/dist/{badge-DErMA7ul.js → badge-wWauMgAt.js} +5 -5
  21. package/dist/{badge-DErMA7ul.js.map → badge-wWauMgAt.js.map} +1 -1
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +3 -3
  31. package/dist/base/cascader.js +2 -372
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +2 -2
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +2 -2
  39. package/dist/base/display.js +6 -6
  40. package/dist/base/feedback.js +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +10 -10
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/media-gallery.js +1 -1
  46. package/dist/base/metadata-list.js +1 -1
  47. package/dist/base/navigation.js +7 -7
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +1 -1
  51. package/dist/base/repeaters.js +200 -193
  52. package/dist/base/repeaters.js.map +1 -1
  53. package/dist/base/sheet.js +1 -1
  54. package/dist/base/sidebar.js +2 -2
  55. package/dist/base/signature-pad.js +8 -8
  56. package/dist/base/signature-pad.js.map +1 -1
  57. package/dist/base/skeleton.js +1 -1
  58. package/dist/base/spinner.js +6 -6
  59. package/dist/base/spinner.js.map +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +2 -2
  63. package/dist/base/toaster.js +36 -36
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-BoqWIIpV.js} +7 -7
  70. package/dist/batch-action-bar-BoqWIIpV.js.map +1 -0
  71. package/dist/blocks/admin.js +21 -21
  72. package/dist/blocks/admin.js.map +1 -1
  73. package/dist/blocks/ai.js +267 -247
  74. package/dist/blocks/ai.js.map +1 -1
  75. package/dist/blocks/analytics/usage-card.js +1 -1
  76. package/dist/blocks/analytics.js +537 -543
  77. package/dist/blocks/analytics.js.map +1 -1
  78. package/dist/blocks/collaboration.js +1 -1
  79. package/dist/blocks/commerce/receipt.js +1 -1
  80. package/dist/blocks/commerce.js +1330 -1250
  81. package/dist/blocks/commerce.js.map +1 -1
  82. package/dist/blocks/data-display.js +2 -2
  83. package/dist/blocks/onboarding.js +6 -6
  84. package/dist/blocks/onboarding.js.map +1 -1
  85. package/dist/blocks/planning.js +11 -11
  86. package/dist/blocks/timelines.js +1 -1
  87. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-Bp9Ke7kd.js} +7 -7
  88. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  89. package/dist/{button-DkmK-z8E.js → button-ChBovTx0.js} +3 -3
  90. package/dist/button-ChBovTx0.js.map +1 -0
  91. package/dist/{buttons-BbfzgczK.js → buttons-DeW0bQeK.js} +16 -16
  92. package/dist/buttons-DeW0bQeK.js.map +1 -0
  93. package/dist/cards-CNXnmvV5.js +69 -0
  94. package/dist/cards-CNXnmvV5.js.map +1 -0
  95. package/dist/cascader-CrAl9zD5.js +439 -0
  96. package/dist/cascader-CrAl9zD5.js.map +1 -0
  97. package/dist/chart-I7ROnsl8.js +162 -0
  98. package/dist/chart-I7ROnsl8.js.map +1 -0
  99. package/dist/{checkbox-CzYUTPeJ.js → checkbox-MoyHIAPs.js} +3 -3
  100. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  101. package/dist/choice-inputs-DHGtx0QV.js +789 -0
  102. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  103. package/dist/{code-block-CGNaUtAE.js → code-block-BSJyq9e-.js} +9 -9
  104. package/dist/code-block-BSJyq9e-.js.map +1 -0
  105. package/dist/{collapsible-Do4G0zcC.js → collapsible-BzJ91LUG.js} +5 -5
  106. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  107. package/dist/{collection-content-C0e8SsTm.js → collection-content-CSnwtOTH.js} +3 -3
  108. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  109. package/dist/combobox-Bcvu5J8O.js +363 -0
  110. package/dist/combobox-Bcvu5J8O.js.map +1 -0
  111. package/dist/combobox-C2JiSQPc.js +915 -0
  112. package/dist/combobox-C2JiSQPc.js.map +1 -0
  113. package/dist/{command-D8NrBj-b.js → command-9e52NPgK.js} +11 -11
  114. package/dist/command-9e52NPgK.js.map +1 -0
  115. package/dist/{comments-Di4w0H_S.js → comments-BsgErEqd.js} +44 -39
  116. package/dist/comments-BsgErEqd.js.map +1 -0
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  118. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  119. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  120. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  121. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  122. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  123. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  124. package/dist/components/base/chart/chart.d.ts +6 -1
  125. package/dist/components/base/choice-inputs/choice-types.d.ts +5 -1
  126. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  127. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  128. package/dist/components/base/combobox/index.d.ts +4 -2
  129. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  130. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  131. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  132. package/dist/components/base/feedback/alert.d.ts +1 -1
  133. package/dist/components/base/feedback/state-display.d.ts +5 -1
  134. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  135. package/dist/components/base/forms/form-field.d.ts +7 -2
  136. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  137. package/dist/components/base/forms/workflow.d.ts +7 -1
  138. package/dist/components/base/forms-numeric/coordinates-input.d.ts +8 -1
  139. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  140. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  141. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  142. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  143. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  144. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  145. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  146. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  147. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  148. package/dist/components/base/popover/popover.d.ts +3 -3
  149. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  150. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  151. package/dist/components/base/sheet/sheet.d.ts +2 -0
  152. package/dist/components/base/sidebar/index.d.ts +1 -1
  153. package/dist/components/base/sidebar/sidebar.d.ts +29 -5
  154. package/dist/components/base/toaster/index.d.ts +1 -0
  155. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  156. package/dist/components/base/upload/image-upload.d.ts +2 -1
  157. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  158. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  159. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  160. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  161. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +5 -1
  162. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  163. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  164. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +4 -0
  165. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  166. package/dist/components/blocks/analytics/types.d.ts +2 -2
  167. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  168. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  169. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  170. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  171. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  172. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  173. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  174. package/dist/components/blocks/commerce/index.d.ts +7 -6
  175. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  176. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  177. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  178. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  179. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  180. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  181. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  182. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  183. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  184. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  185. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  186. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  187. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  188. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  190. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  191. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  192. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  193. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  194. package/dist/components/features/activities/activities.types.d.ts +26 -13
  195. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  196. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  197. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  198. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  199. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  200. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  201. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  202. package/dist/components/features/combobox/combobox.d.ts +2 -2
  203. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  204. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  205. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  206. package/dist/components/features/combobox/types.d.ts +37 -8
  207. package/dist/components/features/email-composer/types.d.ts +3 -1
  208. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  209. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  210. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  211. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  212. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  213. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  214. package/dist/components/features/filters/filters.types.d.ts +6 -3
  215. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  216. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  217. package/dist/components/features/filters/partials/filter-popover-content.d.ts +5 -3
  218. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  219. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  220. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  221. package/dist/components/features/filters/utils/filter-utils.d.ts +25 -3
  222. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  223. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  224. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  225. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  226. package/dist/components/features/media-library/media-library.d.ts +1 -1
  227. package/dist/components/features/media-library/media-library.strings.d.ts +8 -0
  228. package/dist/components/features/media-library/media-library.types.d.ts +50 -12
  229. package/dist/components/features/media-library/partials/media-library-partials.d.ts +4 -4
  230. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  231. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  232. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  233. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  234. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  235. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  236. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  237. package/dist/components/features/products/products.strings.d.ts +9 -1
  238. package/dist/components/features/products/products.types.d.ts +45 -8
  239. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  240. package/dist/components/features/resource/resource.d.ts +6 -2
  241. package/dist/components/features/resource/resource.types.d.ts +14 -1
  242. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  243. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  244. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  245. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  246. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  247. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  248. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  249. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  250. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  251. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  252. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  253. package/dist/components/features/table/data-table.d.ts +1 -1
  254. package/dist/components/features/table/index.d.ts +1 -0
  255. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  256. package/dist/components/features/table/table-body.d.ts +1 -1
  257. package/dist/components/features/table/table-helpers.d.ts +6 -3
  258. package/dist/components/features/table/table.strings.d.ts +3 -0
  259. package/dist/components/features/table/table.types.d.ts +18 -2
  260. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  261. package/dist/components/layout/app-shell/index.d.ts +1 -1
  262. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  263. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  264. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  265. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  266. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  267. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  268. package/dist/components/layout/header/header.types.d.ts +9 -8
  269. package/dist/components/layout/layout.types.d.ts +5 -3
  270. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  271. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  272. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  273. package/dist/components/layout/page/index.d.ts +2 -1
  274. package/dist/components/layout/page/page.d.ts +1 -0
  275. package/dist/components/layout/page/page.strings.d.ts +11 -0
  276. package/dist/components/layout/page/page.types.d.ts +69 -17
  277. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  278. package/dist/components/layout/settings/settings.d.ts +10 -3
  279. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  280. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  281. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  282. package/dist/components/layout/sidebar/index.d.ts +2 -1
  283. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +38 -0
  284. package/dist/components/layout/sidebar/sidebar.context.d.ts +6 -7
  285. package/dist/components/layout/sidebar/sidebar.types.d.ts +50 -10
  286. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  287. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  288. package/dist/components/primitives/link.d.ts +3 -2
  289. package/dist/components/primitives/money.d.ts +1 -1
  290. package/dist/components/primitives/number.d.ts +1 -1
  291. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  292. package/dist/components/ui/alert-dialog.d.ts +2 -2
  293. package/dist/components/ui/combobox.d.ts +1 -1
  294. package/dist/components/ui/dialog.d.ts +2 -2
  295. package/dist/components/ui/overlay-layer.d.ts +18 -0
  296. package/dist/components/ui/sheet.d.ts +5 -1
  297. package/dist/components/ui/sidebar-state.d.ts +82 -0
  298. package/dist/components/ui/sidebar.d.ts +5 -17
  299. package/dist/{containers-CRmHf7GP.js → containers-CSdc32h9.js} +26 -18
  300. package/dist/containers-CSdc32h9.js.map +1 -0
  301. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  302. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  303. package/dist/{copyable-CnGCZdX4.js → copyable-3fdHfMR3.js} +7 -7
  304. package/dist/{copyable-CnGCZdX4.js.map → copyable-3fdHfMR3.js.map} +1 -1
  305. package/dist/{data-display-D4oujtx0.js → data-display-Cmj-xZYl.js} +271 -279
  306. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  307. package/dist/{date-Q7jnXxpk.js → date-Br0FicVv.js} +5 -5
  308. package/dist/{date-Q7jnXxpk.js.map → date-Br0FicVv.js.map} +1 -1
  309. package/dist/date-picker-CyQlFYsP.js +1617 -0
  310. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  311. package/dist/date-pickers-tj2MXmXd.js +185 -0
  312. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  313. package/dist/{display-BB4BL_-K.js → display-CT_N2a3w.js} +9 -9
  314. package/dist/{display-BB4BL_-K.js.map → display-CT_N2a3w.js.map} +1 -1
  315. package/dist/dropdown-menu-C08iIugv.js +194 -0
  316. package/dist/dropdown-menu-C08iIugv.js.map +1 -0
  317. package/dist/features/activities.js +388 -326
  318. package/dist/features/activities.js.map +1 -1
  319. package/dist/features/ai-chat.js +46 -32
  320. package/dist/features/ai-chat.js.map +1 -1
  321. package/dist/features/appointment-calendar.js +130 -130
  322. package/dist/features/appointment-calendar.js.map +1 -1
  323. package/dist/features/async-preview.js +11 -10
  324. package/dist/features/async-preview.js.map +1 -1
  325. package/dist/features/combobox.js +1 -1
  326. package/dist/features/comments.js +1 -1
  327. package/dist/features/data-view.js +13 -13
  328. package/dist/features/data-view.js.map +1 -1
  329. package/dist/features/email-composer.js +243 -239
  330. package/dist/features/email-composer.js.map +1 -1
  331. package/dist/features/event-calendar.js +197 -199
  332. package/dist/features/event-calendar.js.map +1 -1
  333. package/dist/features/filters.js +2 -2
  334. package/dist/features/global-search.js +168 -143
  335. package/dist/features/global-search.js.map +1 -1
  336. package/dist/features/kanban.js +19 -30
  337. package/dist/features/kanban.js.map +1 -1
  338. package/dist/features/map/style.css +15 -0
  339. package/dist/features/map.js +369 -343
  340. package/dist/features/map.js.map +1 -1
  341. package/dist/features/media-library.js +1202 -975
  342. package/dist/features/media-library.js.map +1 -1
  343. package/dist/features/mentions.js +2 -2
  344. package/dist/features/overlays.js +1 -1
  345. package/dist/features/products.js +1270 -1183
  346. package/dist/features/products.js.map +1 -1
  347. package/dist/features/questionnaire.js +160 -153
  348. package/dist/features/questionnaire.js.map +1 -1
  349. package/dist/features/resource-assignment.js +8 -8
  350. package/dist/features/resource.js +119 -113
  351. package/dist/features/resource.js.map +1 -1
  352. package/dist/features/rich-text-editor.js +28 -19
  353. package/dist/features/rich-text-editor.js.map +1 -1
  354. package/dist/features/schema-form.js +297 -256
  355. package/dist/features/schema-form.js.map +1 -1
  356. package/dist/features/suggestions.js +57 -50
  357. package/dist/features/suggestions.js.map +1 -1
  358. package/dist/features/sync.js +3 -3
  359. package/dist/features/table.js +1 -1
  360. package/dist/features/theme-tweaker.js +470 -470
  361. package/dist/features/theme-tweaker.js.map +1 -1
  362. package/dist/feedback-Dzo1xtAU.js +246 -0
  363. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  364. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-D6H7tVJi.js} +5 -5
  365. package/dist/field-affordance-recipes-D6H7tVJi.js.map +1 -0
  366. package/dist/field-control-attributes-B6i335wr.js +18 -0
  367. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  368. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  369. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  370. package/dist/filters-Dl80yYtN.js +2415 -0
  371. package/dist/filters-Dl80yYtN.js.map +1 -0
  372. package/dist/form-field-CAPdwdnZ.js +74 -0
  373. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  374. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-CgcrUbLU.js} +5 -5
  375. package/dist/form-sizing-CgcrUbLU.js.map +1 -0
  376. package/dist/{forms-BV5m5aQF.js → forms-B3W8CH7-.js} +17 -13
  377. package/dist/forms-B3W8CH7-.js.map +1 -0
  378. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  379. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  380. package/dist/{header-BA697l4a.js → header-ZIIsRKxP.js} +145 -141
  381. package/dist/header-ZIIsRKxP.js.map +1 -0
  382. package/dist/header.recipes-BigdJjw1.js +6 -0
  383. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  384. package/dist/hooks/use-files.d.ts +2 -0
  385. package/dist/{hooks-BQ-L7Uu2.js → hooks-BitHSh-Y.js} +27 -15
  386. package/dist/hooks-BitHSh-Y.js.map +1 -0
  387. package/dist/{icon-badge-COWbCCWu.js → icon-badge-npxF1SLX.js} +4 -4
  388. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  389. package/dist/index.js +4 -5
  390. package/dist/{input-Cdw4k0fb.js → input-7KAc7XQL.js} +9 -9
  391. package/dist/{input-Cdw4k0fb.js.map → input-7KAc7XQL.js.map} +1 -1
  392. package/dist/input-DIREVYHs.js +21 -0
  393. package/dist/input-DIREVYHs.js.map +1 -0
  394. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  395. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  396. package/dist/item-FfWnaYST.js +278 -0
  397. package/dist/item-FfWnaYST.js.map +1 -0
  398. package/dist/layout/app-shell.js +1 -1
  399. package/dist/layout/auth.js +1 -1
  400. package/dist/layout/containers.js +1 -1
  401. package/dist/layout/header.js +1 -1
  402. package/dist/layout/hooks.js +1 -1
  403. package/dist/layout/navigation.js +1 -1
  404. package/dist/layout/page.js +2 -2
  405. package/dist/layout/settings.js +1 -1
  406. package/dist/layout/sidebar.js +3 -3
  407. package/dist/layout/workspace.js +1 -1
  408. package/dist/layout.js +12 -12
  409. package/dist/layout.types-E_GAApzO.js +30 -0
  410. package/dist/layout.types-E_GAApzO.js.map +1 -0
  411. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  412. package/dist/lib/control-group-recipes.d.ts +5 -5
  413. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  414. package/dist/lib/field-control-attributes.d.ts +11 -0
  415. package/dist/lib/field-state-recipes.d.ts +2 -0
  416. package/dist/lib/format.d.ts +1 -0
  417. package/dist/lib/motion-recipes.d.ts +3 -0
  418. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  419. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  420. package/dist/lib/portal-recipes.d.ts +3 -0
  421. package/dist/lib/surface-recipes.d.ts +1 -1
  422. package/dist/lib/token-merge.generated.d.ts +18 -15
  423. package/dist/lib/utils.js +1 -1
  424. package/dist/map-demo-tile.svg +1 -1
  425. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C81DAnKI.js} +6 -6
  426. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  427. package/dist/{mentions-RKOQaaIB.js → mentions-qOnedSt4.js} +237 -168
  428. package/dist/mentions-qOnedSt4.js.map +1 -0
  429. package/dist/message-BJHnn43M.js +135 -0
  430. package/dist/message-BJHnn43M.js.map +1 -0
  431. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-XkqZ_UXH.js} +64 -64
  432. package/dist/metadata-list-XkqZ_UXH.js.map +1 -0
  433. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  434. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  435. package/dist/navigation-BgtPJAhi.js +288 -0
  436. package/dist/navigation-BgtPJAhi.js.map +1 -0
  437. package/dist/navigation-Bt-v7rWP.js +261 -0
  438. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  439. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  440. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  441. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  442. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  443. package/dist/{number-E_OiIfJz.js → number-CYqBcrSj.js} +79 -87
  444. package/dist/number-CYqBcrSj.js.map +1 -0
  445. package/dist/overflow-tab-bar-BQCA2Zn2.js +172 -0
  446. package/dist/overflow-tab-bar-BQCA2Zn2.js.map +1 -0
  447. package/dist/overlays-CC8zI3Du.js +1017 -0
  448. package/dist/overlays-CC8zI3Du.js.map +1 -0
  449. package/dist/page-BoQ1VaFJ.js +331 -0
  450. package/dist/page-BoQ1VaFJ.js.map +1 -0
  451. package/dist/page-header-commands-DIKspJfx.js +193 -0
  452. package/dist/page-header-commands-DIKspJfx.js.map +1 -0
  453. package/dist/{pagination-Ch8X_47u.js → pagination-Br8TdV9A.js} +7 -7
  454. package/dist/{pagination-Ch8X_47u.js.map → pagination-Br8TdV9A.js.map} +1 -1
  455. package/dist/popover-k8TdUcAt.js +201 -0
  456. package/dist/popover-k8TdUcAt.js.map +1 -0
  457. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-yn-o0kyA.js} +7 -7
  458. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  459. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DJ0AkUan.js} +19 -12
  460. package/dist/popover.recipes-DJ0AkUan.js.map +1 -0
  461. package/dist/portal-recipes-DyUXqUtD.js +9 -0
  462. package/dist/portal-recipes-DyUXqUtD.js.map +1 -0
  463. package/dist/{primitives-Du64iDbb.js → primitives-BkkQjYl7.js} +23 -18
  464. package/dist/primitives-BkkQjYl7.js.map +1 -0
  465. package/dist/primitives.js +4 -4
  466. package/dist/{progress-BvF2oCdV.js → progress-DZFXXzPs.js} +9 -9
  467. package/dist/{progress-BvF2oCdV.js.map → progress-DZFXXzPs.js.map} +1 -1
  468. package/dist/{receipt-D789Jwyy.js → receipt-C7LhOg7Q.js} +7 -7
  469. package/dist/receipt-C7LhOg7Q.js.map +1 -0
  470. package/dist/rich-text-BnTzZjIo.js +45 -0
  471. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  472. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-CAurDwT5.js} +501 -424
  473. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  474. package/dist/rich-text-editor-toolbar-DbXig7Jk.js +99 -0
  475. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  476. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  477. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  478. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  479. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  480. package/dist/{scroll-area-La5RXsEk.js → scroll-area-Bj6CRUif.js} +2 -2
  481. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  482. package/dist/{separator-DAEV0w65.js → separator-B9ewiCGO.js} +2 -2
  483. package/dist/{separator-DAEV0w65.js.map → separator-B9ewiCGO.js.map} +1 -1
  484. package/dist/{separator-GNfPG-90.js → separator-DM6gs2vu.js} +3 -3
  485. package/dist/{separator-GNfPG-90.js.map → separator-DM6gs2vu.js.map} +1 -1
  486. package/dist/services/actions.js +1 -1
  487. package/dist/settings-DZPHgpx4.js +155 -0
  488. package/dist/settings-DZPHgpx4.js.map +1 -0
  489. package/dist/sheet-C4DHsgLk.js +250 -0
  490. package/dist/sheet-C4DHsgLk.js.map +1 -0
  491. package/dist/sidebar-C8BnDwTH.js +709 -0
  492. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  493. package/dist/sidebar-CmD6a-HK.js +1004 -0
  494. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  495. package/dist/skeleton-DDgdhmu9.js +265 -0
  496. package/dist/skeleton-DDgdhmu9.js.map +1 -0
  497. package/dist/smart-card-B6vLxqa_.js +617 -0
  498. package/dist/smart-card-B6vLxqa_.js.map +1 -0
  499. package/dist/{structure-C0V0_Fyf.js → structure-DZJ2wbAU.js} +2 -2
  500. package/dist/{structure-C0V0_Fyf.js.map → structure-DZJ2wbAU.js.map} +1 -1
  501. package/dist/style.css +1 -1
  502. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  503. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  504. package/dist/{table-DH7rozUv.js → table-CBonSdTp.js} +573 -519
  505. package/dist/table-CBonSdTp.js.map +1 -0
  506. package/dist/{table-CpvnzJn9.js → table-CXSPHH25.js} +75 -71
  507. package/dist/table-CXSPHH25.js.map +1 -0
  508. package/dist/tabs-C4Kr_hCr.js +192 -0
  509. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  510. package/dist/{text-inputs-DXItiR0O.js → text-inputs-jdkS3ReG.js} +18 -18
  511. package/dist/text-inputs-jdkS3ReG.js.map +1 -0
  512. package/dist/theme.css +40 -37
  513. package/dist/{timelines-DmtztAY_.js → timelines-CoPwdJP0.js} +13 -12
  514. package/dist/timelines-CoPwdJP0.js.map +1 -0
  515. package/dist/tooltip-31NwIpTo.js +113 -0
  516. package/dist/tooltip-31NwIpTo.js.map +1 -0
  517. package/dist/{tree-CV11PURP.js → tree-CeYVzdFE.js} +9 -9
  518. package/dist/{tree-CV11PURP.js.map → tree-CeYVzdFE.js.map} +1 -1
  519. package/dist/typography/rich-text.js +1 -1
  520. package/dist/{typography-CSyJrh28.js → typography-C7-YMW1S.js} +12 -12
  521. package/dist/{typography-CSyJrh28.js.map → typography-C7-YMW1S.js.map} +1 -1
  522. package/dist/typography.js +1 -1
  523. package/dist/ui-provider-C-74NVLc.js +178 -0
  524. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  525. package/dist/ui-provider.js +2 -3
  526. package/dist/{upload-C9SA0X-8.js → upload-Hdm5gObf.js} +309 -296
  527. package/dist/upload-Hdm5gObf.js.map +1 -0
  528. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-D0sYPuqo.js} +16 -14
  529. package/dist/upload-queue-D0sYPuqo.js.map +1 -0
  530. package/dist/{usage-card-DVTRDmGz.js → usage-card-9s8hLDfn.js} +24 -17
  531. package/dist/usage-card-9s8hLDfn.js.map +1 -0
  532. package/dist/{utils-CF3c95Io.js → utils-DhuoqFy4.js} +255 -165
  533. package/dist/utils-DhuoqFy4.js.map +1 -0
  534. package/dist/value-inputs-D3aPgq9H.js +980 -0
  535. package/dist/value-inputs-D3aPgq9H.js.map +1 -0
  536. package/dist/{value-typography-ClupF0Gz.js → value-typography-uSzzG9Gf.js} +32 -26
  537. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  538. package/dist/{workspace-9EFVXUyk.js → workspace-CC8Vchiu.js} +51 -50
  539. package/dist/workspace-CC8Vchiu.js.map +1 -0
  540. package/docs/consumer-skill/SKILL.md +4 -3
  541. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  542. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  543. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  544. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  545. package/docs/consumer-skill/examples/detail.tsx +5 -4
  546. package/docs/consumer-skill/examples/edit.tsx +3 -3
  547. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  548. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  549. package/docs/consumer-skill/examples/manifest.json +38 -1
  550. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  551. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  552. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  553. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  554. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  555. package/docs/consumer-skill/references/agents-md.md +21 -19
  556. package/docs/consumer-skill/references/analytics.md +33 -1
  557. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  558. package/docs/consumer-skill/references/component-contracts.json +21249 -14205
  559. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  560. package/docs/consumer-skill/references/composition.md +177 -32
  561. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  562. package/docs/consumer-skill/references/custom-composition.md +261 -0
  563. package/docs/consumer-skill/references/data-reading.md +79 -0
  564. package/docs/consumer-skill/references/design-contract.md +12 -9
  565. package/docs/consumer-skill/references/discovery.md +27 -3
  566. package/docs/consumer-skill/references/domain-structures.md +124 -0
  567. package/docs/consumer-skill/references/installation.md +62 -8
  568. package/docs/consumer-skill/references/integration.md +59 -1
  569. package/docs/consumer-skill/references/product-composition.md +94 -0
  570. package/docs/consumer-skill/references/public-api.json +3044 -445
  571. package/docs/consumer-skill/references/review.md +87 -10
  572. package/docs/consumer-skill/references/rhf-workflows.md +79 -0
  573. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  574. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  575. package/docs/consumer-skill/references/theming.md +24 -20
  576. package/docs/consumer-skill/references/tokens.json +9 -9
  577. package/docs/consumer-skill/references/view-craft.md +153 -0
  578. package/docs/consumer-skill/references/view-spec.md +73 -0
  579. package/docs/consumer-skill/references/workflows.md +7 -1
  580. package/docs/consumer-skill/scripts/composition-policy.mjs +176 -26
  581. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  582. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  583. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  584. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  585. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  586. package/docs/consumer-skill/scripts/setup-skills.mjs +79 -7
  587. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  588. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  589. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  590. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  591. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  592. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  593. package/package.json +4 -2
  594. package/templates/admin-shell-template.tsx +1 -2
  595. package/templates/customers-template.tsx +18 -16
  596. package/dist/accordion-96o0pN62.js.map +0 -1
  597. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  598. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  599. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  600. package/dist/app-shell-D63ATkIK.js +0 -237
  601. package/dist/app-shell-D63ATkIK.js.map +0 -1
  602. package/dist/auth-D2FVZ1MH.js.map +0 -1
  603. package/dist/avatar-DWO_HHhB.js.map +0 -1
  604. package/dist/base/cascader.js.map +0 -1
  605. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  606. package/dist/breadcrumbs-B-WFKecD.js.map +0 -1
  607. package/dist/button-DkmK-z8E.js.map +0 -1
  608. package/dist/buttons-BbfzgczK.js.map +0 -1
  609. package/dist/cards-4JTWqvVe.js +0 -68
  610. package/dist/cards-4JTWqvVe.js.map +0 -1
  611. package/dist/chart-C19flDQb.js +0 -155
  612. package/dist/chart-C19flDQb.js.map +0 -1
  613. package/dist/choice-inputs-JLtij2y4.js +0 -776
  614. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  615. package/dist/code-block-CGNaUtAE.js.map +0 -1
  616. package/dist/combobox-CBJDs6w_.js +0 -877
  617. package/dist/combobox-CBJDs6w_.js.map +0 -1
  618. package/dist/combobox-hbhSS18O.js +0 -355
  619. package/dist/combobox-hbhSS18O.js.map +0 -1
  620. package/dist/command-D8NrBj-b.js.map +0 -1
  621. package/dist/comments-Di4w0H_S.js.map +0 -1
  622. package/dist/containers-CRmHf7GP.js.map +0 -1
  623. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  624. package/dist/data-display-D4oujtx0.js.map +0 -1
  625. package/dist/date-picker-zOt1oNss.js +0 -1542
  626. package/dist/date-picker-zOt1oNss.js.map +0 -1
  627. package/dist/date-pickers-cj8IXbDC.js +0 -179
  628. package/dist/date-pickers-cj8IXbDC.js.map +0 -1
  629. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  630. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  631. package/dist/feedback-DZNL5Lg1.js +0 -239
  632. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  633. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  634. package/dist/filters-BcT-uoFy.js +0 -2209
  635. package/dist/filters-BcT-uoFy.js.map +0 -1
  636. package/dist/form-field-CsgRmdit.js +0 -63
  637. package/dist/form-field-CsgRmdit.js.map +0 -1
  638. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  639. package/dist/forms-BV5m5aQF.js.map +0 -1
  640. package/dist/forms-numeric-Cd33AKbD.js +0 -906
  641. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  642. package/dist/header-BA697l4a.js.map +0 -1
  643. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  644. package/dist/input-DOPL5_QE.js +0 -21
  645. package/dist/input-DOPL5_QE.js.map +0 -1
  646. package/dist/item-BvZ2DR_x.js +0 -277
  647. package/dist/item-BvZ2DR_x.js.map +0 -1
  648. package/dist/layout.types-Cn7aUzJp.js +0 -20
  649. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  650. package/dist/mentions-RKOQaaIB.js.map +0 -1
  651. package/dist/message-INU2xsxu.js +0 -128
  652. package/dist/message-INU2xsxu.js.map +0 -1
  653. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  654. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  655. package/dist/navigation-BQNcg1jT.js +0 -269
  656. package/dist/navigation-BQNcg1jT.js.map +0 -1
  657. package/dist/navigation-DLF3E1IC.js +0 -145
  658. package/dist/navigation-DLF3E1IC.js.map +0 -1
  659. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  660. package/dist/number-E_OiIfJz.js.map +0 -1
  661. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  662. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  663. package/dist/overlays-BlKynmde.js +0 -1004
  664. package/dist/overlays-BlKynmde.js.map +0 -1
  665. package/dist/page-CIwNUtGr.js +0 -227
  666. package/dist/page-CIwNUtGr.js.map +0 -1
  667. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  668. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  669. package/dist/popover-uwzX2vo7.js +0 -198
  670. package/dist/popover-uwzX2vo7.js.map +0 -1
  671. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  672. package/dist/primitives-Du64iDbb.js.map +0 -1
  673. package/dist/receipt-D789Jwyy.js.map +0 -1
  674. package/dist/rich-text-CLJEf76s.js +0 -78
  675. package/dist/rich-text-CLJEf76s.js.map +0 -1
  676. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  677. package/dist/rich-text-editor-toolbar-L__e4x47.js +0 -94
  678. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  679. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  680. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  681. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  682. package/dist/settings-BA2iboic.js +0 -174
  683. package/dist/settings-BA2iboic.js.map +0 -1
  684. package/dist/sheet-DoAxTb2J.js +0 -213
  685. package/dist/sheet-DoAxTb2J.js.map +0 -1
  686. package/dist/sidebar-ByqKR_W5.js +0 -512
  687. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  688. package/dist/sidebar-D2iSnGJ7.js +0 -619
  689. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  690. package/dist/skeleton-CUj8O5Bd.js +0 -264
  691. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  692. package/dist/smart-card-CqkzQsK-.js +0 -614
  693. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  694. package/dist/table-CpvnzJn9.js.map +0 -1
  695. package/dist/table-DH7rozUv.js.map +0 -1
  696. package/dist/tabs-eqVsJZWO.js +0 -191
  697. package/dist/tabs-eqVsJZWO.js.map +0 -1
  698. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  699. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  700. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  701. package/dist/timelines-DmtztAY_.js.map +0 -1
  702. package/dist/tooltip-B4hjKtoV.js +0 -111
  703. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  704. package/dist/ui-provider-CQCuCBcy.js +0 -136
  705. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  706. package/dist/upload-C9SA0X-8.js.map +0 -1
  707. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  708. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  709. package/dist/use-mobile-vaLKwgyf.js +0 -15
  710. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  711. package/dist/utils-CF3c95Io.js.map +0 -1
  712. package/dist/value-inputs-C0o70p-U.js +0 -980
  713. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  714. package/dist/value-typography-ClupF0Gz.js.map +0 -1
  715. package/dist/workspace-9EFVXUyk.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,216 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.6 — 2026-11-04
4
+
5
+ - AI disclosure and source controls use their visible text for accessible
6
+ names. Disclosure copy overrides remain available as descriptions.
7
+ - OrderStatusCard accepts translated status labels and a formatter for the
8
+ displayed order reference.
9
+ - Default layout navigation renders callback-only entries as buttons and
10
+ keeps disabled entries inert. Custom settings link renderers receive
11
+ selection through `onClick`.
12
+ - SideNav accepts a `renderLink` adapter. Pass your app's pathname as
13
+ `currentPath` to preserve active-route highlighting when upgrading from
14
+ the implicit browser URL default.
15
+ - AppSidebar and SidebarNavigationRail close an open drawer after app
16
+ navigation. Use `closeDrawerOnNavigate={false}` to keep it open.
17
+ - Header and HeaderBreadcrumbs render in standalone and stacked layouts.
18
+ The built-in sidebar trigger appears only inside a sidebar provider.
19
+ - FormField labels, hints and errors reach time, dimension, coordinate,
20
+ image, avatar, key/value and rich-text controls. RichTextEditor also accepts
21
+ `invalid` and preserves the field association in source mode.
22
+ - A blank optional TimePicker allows native form submission.
23
+ - AvatarUpload honors MIME types and wildcards in its file accept rules.
24
+ - FormRichTextEditor binds React Hook Form touch, focus, invalid and disabled
25
+ state. Named editors include committed HTML in native submissions.
26
+ - Combobox and MultiCombobox accept selection defaults and new value props
27
+ alongside their legacy bindings. All three selectors accept search and
28
+ open defaults.
29
+ - WeightInput, DimensionsInput and CoordinatesInput expose direct value
30
+ callbacks, field blur and native form names, plus required and read-only
31
+ behavior.
32
+ - TimePicker supports initial times, controlled or default popup visibility,
33
+ and named native values with required validation in both modes.
34
+ - PillRadioGroup supports uncontrolled defaults and submits the selected
35
+ enabled option when named. Clearing still emits `null`.
36
+ - AppointmentCalendar, Questionnaire, LanguageSwitcher and EmailComposer
37
+ add consistent value callbacks. TabbedResourceShell adds an initial tab.
38
+ - Metric and MetricGrid accept a shared semantic `tone`. The legacy
39
+ `colorScheme` remains supported. Colored metrics keep primary progress
40
+ by default and accept an explicit neutral tone.
41
+ - MediaLibrary keeps failed edits and uploads in their own panels so browsing
42
+ stays available. `useMediaLibrary` exposes `loadError`, `mutationError` and
43
+ `uploadError` alongside the existing `error` field.
44
+ - MediaLibrary requires explicit callbacks for edits and deletes, including
45
+ in-memory collections and the headless mutation methods. Its Delete action
46
+ opens a confirmation and returns focus to the results after removal.
47
+ - MediaLibrary keeps previous results mounted during refresh. Inline fetcher
48
+ and error callbacks no longer trigger reloads. Change `refreshKey` to
49
+ reload the current remote query explicitly.
50
+ - MediaLibrary server pickers return selected records from earlier searches
51
+ and uploads. Uploads refresh the remote results and stay selected across
52
+ filters.
53
+ - MediaLibrary uploads keep queued files and individual failures available
54
+ for the next request. Upload helpers expose the current batch's file IDs.
55
+ - Native submissions from `Combobox`, `MultiCombobox` and
56
+ `AsyncResourceCombobox` now use the selected item's key, or its label
57
+ when no key is supplied. To keep submitting JSON objects, pass
58
+ `getItemValue={(item) => JSON.stringify(item)}`.
59
+ - Async filter option freshness and retention apply within one mounted editor.
60
+ Chip labels are isolated to their filter provider. Applications that need
61
+ reuse across editor mounts can cache in their own scoped fetcher.
62
+ - DataTable bulk-action counts include selected IDs from other server pages.
63
+ Use `rowSelection` for those IDs and `selectedRows` for loaded records.
64
+ - Numeric filters use `between` and store two positional bounds, with an
65
+ empty string for an open end. The URL helpers still read older scalar
66
+ values as exact matches. Date ranges retain both calendar days on reload.
67
+ - Inline product option editing preserves rich value labels. Options with
68
+ rich names can use the `onEditOption` callback for app-owned editing.
69
+ - Money treats a single dot as a decimal separator in
70
+ serialized amounts, including three-decimal currencies.
71
+ - Controlled overlays report each dismissal request through `onOpenChange`.
72
+ `onClose` now follows the committed visibility change.
73
+ - RichTextEditor source edits stay in a draft until switching back to rich
74
+ text. The editor emits the normalized document HTML. An external value
75
+ change replaces the open source draft.
76
+ - `useActivityResources` reseeds when resource values change. Equivalent
77
+ inline resources preserve local edits, and each mutation emits once.
78
+
79
+ ## 2.0.5 — 2026-10-31
80
+
81
+ - Modal scrims render again under `SidebarProvider`/`AppSidebar`. The sidebar
82
+ drawer owner is a Dialog root around the app, so Base UI treated every dialog
83
+ inside as nested and skipped its backdrop. A modal now draws its backdrop
84
+ unless it opens from inside another modal's content.
85
+ - Collection rows (menus, Command, Select, Combobox, cascader, global search) are
86
+ sized by their height role: block padding steps one tier below Item's, so a
87
+ single line is exactly 32/28/36px at default/compact/comfortable instead of
88
+ 1.5px taller. DataTable menus, kanban and activities drop the legacy 24px
89
+ `density="table"` rows.
90
+ - Skeletons use the translucent neutral chip fill, so they keep one contrast on
91
+ every surface, including a `--muted` sidebar where they used to disappear.
92
+ - `StackedLayout`, `TopbarSidebarLayout` and `AppLayout` with no variant follow
93
+ the active theme; `headerTheme`/`light-header`/`dark-header` still scope the
94
+ header. Header controls (sidebar trigger, search, tools, notifications, a
95
+ one-line user trigger) share the 32px action height.
96
+ - The dual navigation cluster docks its contextual panel from 768px beside a
97
+ primary rail and opens it as a drawer below that; `mobileSidebarMode="inline"`
98
+ keeps the previous docked cluster.
99
+ - `GlobalSearch` input is a combobox with `aria-activedescendant`; results are
100
+ options reached with the arrow keys rather than Tab.
101
+ - Filter editors focus their primary input when opened and share one editor
102
+ header; selection captions read "2 status selected" in running text.
103
+ - Additive: `CardShell surface`, `FormSection titleSize`, CoordinatesInput
104
+ latitude/longitude accessible-label strings, MetricComparison `pointsUnit`,
105
+ UsageCard average-unavailable string, AI tool-call `elapsedLabel`, AI summary
106
+ `confidenceLabel`, ActivityRow `reserveDisclosure`/`reserveMenu`,
107
+ MediaLibraryToolbar `summary`/`disabled`, `useMediaLibrary().retry` and
108
+ `strings.retry`.
109
+ - Alert places its action beside the copy only when the alert itself is wide
110
+ enough (container query), otherwise below it. PageHeader wraps its commands
111
+ below the copy before the copy column gets cramped.
112
+
113
+ - `--height-action` and `--height-control` default to 2rem (32px) instead of
114
+ 2.25rem. Their size steps are eighths of the root (¾, ⅞, 9⁄8), so the scale is
115
+ 24/28/32/36px in whole pixels; it was 28/32/36/40px in ninths. Set the roots
116
+ back to 2.25rem to restore the previous heights (steps become 27/31.5/36/40.5px).
117
+ - Corner roles: `rounded-radius` (`--radius`, 12px by default) is now the
118
+ default corner for buttons, inputs, select and facet triggers, badges,
119
+ collection and navigation rows and nested bodies. The new `rounded-surface`
120
+ (4/3 × `--radius`, 16px) is the larger corner of cards, popups, dialogs,
121
+ command shells and other outer surfaces. `rounded-inner` and its bounded
122
+ formula are removed. Migration: replace an app's `rounded-radius` on outer
123
+ shells with `rounded-surface`, and `rounded-inner` with `rounded-radius`.
124
+ - `Alert` and the `Toaster` toast take Item's row geometry: the row insets
125
+ (`px-row-x`, `py-row-y`, 12px and 8px by default) and Item's 12px
126
+ media/actions gap, instead of the 24px card surface inset. A two-line notice
127
+ is about 60px tall instead of 94px. Overlay tone notices, which are Alerts,
128
+ follow the same row roles.
129
+ - `PopoverTitle` and `PopoverDescription` no longer wrap plain text in the
130
+ popover's inherited line box, and `Cascader` keeps "Select current" beside
131
+ its title and path instead of inside the title row. A drilled level's title
132
+ and parent path now sit 4px apart instead of 11px.
133
+ - Menu surfaces (popover menus and their header and footer bands, dropdown
134
+ menus, Select and Combobox lists, Command and its search row, global search,
135
+ mentions and the cascader) inset by md (8px) on both axes instead of xs
136
+ (4px) inline, so rows and the search field sit further from the edge, and
137
+ header and footer copy sit one small xs step (4px) inside that edge instead
138
+ of adding the full row inset (shared `popoverRecipes.menuCopyInset`).
139
+ - Filters support nested options. `FilterOption.children` was declared but
140
+ ignored; `SELECT` and `MULTI_SELECT` editors now show nested options one level
141
+ at a time through the Cascader's panel (path search, Back, multi-select across
142
+ levels, `closeOnSelect`), and `SelectFacet` uses the `Cascader` field. A chosen
143
+ nested option reads as its path ("Europe / Greece / Athens") in chips and
144
+ facets. `FilterConfig.selectableOptions: 'any'` lets a branch be chosen, and
145
+ the filter strings add `previousLevel` and `selectCurrentLevel`. The panel is
146
+ a private part shared by `Cascader` and filters; `Cascader` behaviour is
147
+ unchanged.
148
+ - `Cascader` moves between levels with motion: a drilled level or a new column
149
+ enters from the side it was reached from (shared `motionRecipes.level`,
150
+ `@starting-style`, reduced-motion aware). Opening and searching do not
151
+ animate the list.
152
+ - `LayoutSidebarProvider` (and so `AppSidebar`) defaults to
153
+ `menuDensity="default"`: 28px primary rows and 24px nested rows on a 4px gap
154
+ (with the 2rem action height below), instead of comfortable 36px and 32px
155
+ rows. Pass `menuDensity="comfortable"` for 32px rows. Sidebar navigation
156
+ labels are medium weight throughout; the current entry is marked by its fill.
157
+ An unscoped base `SidebarMenuButton` falls back to the default density like
158
+ the rest of the menu, and a collapsed icon-rail row is the square of its own
159
+ height.
160
+ - Remove the leftover `active:translate-y-0!` press overrides from Collapsible
161
+ and Tooltip triggers, dialog and sheet close buttons, popover buttons and the
162
+ sidebar trigger. Nothing translates on press any more, and the overrides made
163
+ triggers centred with a translate, such as the sidebar disclosure chevron,
164
+ jump down while pressed.
165
+ - Add a fourth consumer skill, `themelia-design`, for the designer's part of a
166
+ view: a data brief read from real records, a view spec with ranked
167
+ information, wireframes and encodings, and a scored critique rubric with a
168
+ browser census for rendered screens. A `themelia-ui-designer` agent
169
+ definition applies it to whole views (design mode builds, renders and fixes;
170
+ review mode critiques read-only). `setup-skills.mjs --agents <directory>`
171
+ copies the agent without overwriting an existing file, and `--check`
172
+ compares it. The project-instructions block lists the new skill.
173
+ - `ResourceCell` draws its media circle only when `imageUrl`, `icon` or
174
+ `fallback` is passed, and no longer falls back to a decorative mail glyph, so
175
+ order and invoice identifiers read as plain text. To keep a monogram for a
176
+ person or organization, pass `fallback={<Initials value={name} />}` (on every
177
+ row of a column where only some rows have a photo). An explicit `fallback`
178
+ still wins over `icon`, and `icon` now wins over title initials.
179
+ - `InvoiceLineItems` states quantity and unit price once per narrow row instead
180
+ of repeating column labels, aligns header and rows on one subgrid with
181
+ content-sized numeric tracks, top-aligns custom cells, scrolls custom columns
182
+ horizontally (or drops columns marked `wideOnly` below its `@lg` width), and
183
+ adds `surface="flat"` for use inside a Card. Header and
184
+ rows now sit in `.invoice-line-items--body`, which carries the grid template
185
+ that each row used to repeat. The family
186
+ index now exports `InvoiceColumn`, `InvoiceLineItemsFooterRow`,
187
+ `InvoiceLineItemsStrings` and `defaultInvoiceLineItemsStrings`.
188
+ - Commerce owners that hard-coded their frame accept `surface`/`padding`:
189
+ `FulfillmentGroup` (framed by default) and `InvoiceHeader`,
190
+ `DiscountStackPreview`, `TaxBreakdownCard`, `RefundStatusCard`,
191
+ `CartSummaryCard`, `ShipmentTracking` and `InventorySectionCard` (unframed by
192
+ default). Defaults are unchanged.
193
+ - Add `maxVisibleSecondaryActions` to page, record, settings, workspace and
194
+ resource headers (default 2), `visibleFields` and `children` to
195
+ `ProductVariantEditor`, and `showGroupBy` to `ProductVariantsManager`
196
+ (default true).
197
+ - Consumer gaps from the round-2 rebuilds: `InvoiceStatus` adds `draft` and
198
+ `disputed`; `InvoiceHeader.status` is optional and parties take `details`;
199
+ `OrderCustomer` adds `shippingMethod` and `showShippingAddress`;
200
+ `FulfillmentGroup` adds `count`; `MetricComparison` honours `current.trend`;
201
+ `ChartTooltipContent` adds `valueFormatter`; `ProductVariantEditor` adds
202
+ `errors`, `formId` and `showHeader`; `ResourceCell` adds `mediaShape` and a
203
+ full-title hover; `MediaResourceGallery` grid shows whole images and omits a
204
+ missing file size; an explicit DataTable column `size` sets its width without
205
+ resizing; `base/toaster` re-exports `toast`; `blocks/commerce` exports its
206
+ status tone maps and invoice strings. `ProductOptionsMatrix` focuses a value
207
+ added in its option editor so it can be typed at once.
208
+ - Discovery resolves near-miss import paths with `importResolution`, the mapper
209
+ knows 139 roles across commerce, products, media, charts and analytics and
210
+ suggests nearby roles for unmatched phrases, and the inspector reads several
211
+ props at once and points hooks to their declaration. A new order and invoice
212
+ composition reference ships with executable recipes.
213
+
3
214
  ## 2.0.4 — 2026-10-28
4
215
 
5
216
  Shared composition roles, stronger consumer guidance and executable component
package/MIGRATION.md ADDED
@@ -0,0 +1,119 @@
1
+ # From admin-ui-starter-kit 3.x
2
+
3
+ `themelia-react-ui` is the Base UI and Tailwind port of the Themelia package
4
+ `admin-ui-starter-kit`. The package names have independent version histories.
5
+ The `themelia-react-ui` 2.x line is the migration destination for
6
+ `admin-ui-starter-kit` 3.x applications.
7
+
8
+ ## Imports and installation
9
+
10
+ 1. Use the [consumer setup](README.md#consumer-setup) to install the new package
11
+ and its required peers. React and React DOM use 19.x, Lucide uses 1.x, and
12
+ `@base-ui/react` is required. The old `cmdk`, Tailwind, Tailwind Vite plugin,
13
+ `tw-animate-css` and Inter font peers can be removed if the application has
14
+ no independent use for them. Keep the optional peers used by your families.
15
+ 2. Replace `admin-ui-starter-kit/<family>` with `themelia-react-ui/<family>`.
16
+ For `composed/admin`, `ai`, `analytics`, `commerce`, `data-display`,
17
+ `onboarding` and `timelines`, use `themelia-react-ui/blocks/<family>`.
18
+ For example, `admin-ui-starter-kit/composed/commerce` becomes
19
+ `themelia-react-ui/blocks/commerce`. Move CommonJS `require()` consumers to
20
+ ESM imports or asynchronous `import()`.
21
+ 3. Import `themelia-react-ui/style.css` once. Add
22
+ `themelia-react-ui/features/map/style.css` when using the map family.
23
+ The [theme guide](docs/consumer-skill/references/theming.md) covers the
24
+ optional green brand, structural roots and scoped portals.
25
+
26
+ ### Host CSS
27
+
28
+ The compiled stylesheet leaves global preflight and the page canvas to the app.
29
+ If the previous stylesheet supplied these values, put them in your app's lower
30
+ priority base layer. Keep an app-owned reset for native margins, lists and form
31
+ controls where you used Tailwind preflight.
32
+
33
+ ```css
34
+ @layer base {
35
+ * {
36
+ border-color: var(--border);
37
+ outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
38
+ }
39
+ html { font-family: var(--font-sans); }
40
+ body { background-color: var(--background); color: var(--foreground); }
41
+ code, kbd, samp, pre { font-family: var(--font-mono); }
42
+ }
43
+ ```
44
+
45
+ For app-generated Tailwind utilities, follow the [Tailwind setup](docs/consumer-skill/references/installation.md).
46
+ The editable `theme.css` entry is processed by the application's Tailwind v4
47
+ build. The compiled `style.css` already includes package utilities.
48
+
49
+ ### Tools
50
+
51
+ | Former bin | Workflow in this package |
52
+ | --- | --- |
53
+ | `admin-ui-starter-kit-audit` | Run `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/check-composition.mjs src`. Pass explicit file or directory paths. Its output is JSON. Replace the old `--fix` and `--strict` automation with your own review or CI step. |
54
+ | `admin-ui-starter-kit-install-skill` | Use the shipped `setup-skills.mjs --copy` or `--check` commands in the [installed setup guide](docs/consumer-skill/references/installation.md). |
55
+ | `admin-ui-starter-kit-publish-theme` | Import the published theme CSS or export a custom theme from Theme Studio and apply it in the app. |
56
+ | `admin-ui-starter-kit-showcase` | Use the component catalogue or render the shipped examples in your application. |
57
+
58
+ ## Defaults to review
59
+
60
+ | Owner | Earlier default | Current default or migration |
61
+ | --- | --- | --- |
62
+ | Untoned Button | Primary solid | Secondary outline. Set provider button defaults or make the primary command explicit. |
63
+ | Badge | Primary | Neutral. Set an explicit status tone where relevant. |
64
+ | Card and SmartCard | Framed, footer divider off | Card surface, header divider off, footer divider on. Explicit props win over provider booleans. |
65
+ | PageHeader | `h3` | `h1` for route titles. Use `headingTag="h3"` when the page already owns its heading, or supply a custom title element. |
66
+ | PageHeading | Separator on | Pass `withSeparator` to restore it. |
67
+ | ConfirmDialog | Start-aligned with an icon | Centered. Set `overlay.defaultConfirmAlign: 'start'` and pass `showIcon` on dialogs that need the icon. |
68
+ | DateCell and DateMetaCell | Icon on | Pass `showIcon` for the date glyph. |
69
+ | LoyaltyPoints | Warning tier | Neutral. Set `tierTone="warning"` where it conveys meaning. |
70
+ | Command | Default inset | Compact. Pass `inset="default"` for the wider inset. |
71
+ | Page | Large measure, no inset | Owns page gutters and block inset. Use explicit `maxWidth="lg"`, `gutter="none"` and `padding="none"` inside a shell that supplies them. |
72
+ | DataTable | Inline selection bar | Floating selection bar. Use `selectionToolbarPlacement="inline"` for inline placement. |
73
+ | MediaLibrary | Activation selects | Activation opens details. Use `defaultSelecting` to start in selection mode. |
74
+ | Metric money and signed values | Prefix currency code and ASCII hyphen | Default output can place the currency code after the amount and use the Unicode minus. Review text matching in tests. |
75
+ | Date range presets | Title case | Sentence case, such as “This week” and “Last 30 days”. |
76
+
77
+ To keep the earlier button, badge and card choices while moving the
78
+ imports, supply the old defaults explicitly.
79
+
80
+ ```tsx
81
+ import { UIProvider } from 'themelia-react-ui/ui-provider';
82
+
83
+ <UIProvider config={{
84
+ button: { defaultTone: 'primary', defaultButtonStyle: 'solid' },
85
+ badge: { defaultTone: 'primary' },
86
+ card: { defaultSurface: 'framed', defaultHeaderDivider: false, defaultFooterDivider: false },
87
+ overlay: { defaultConfirmAlign: 'start' },
88
+ }}>
89
+ <App />
90
+ </UIProvider>
91
+ ```
92
+
93
+ ## Behavior, selectors and deprecated entry points
94
+
95
+ - Check the query policy of async filters. Options are cached within a mounted
96
+ editor and refetch after a remount. Chip labels stay within their filter
97
+ provider. Reuse stable fetcher and mapper references. If the app needs caching
98
+ across editor mounts, keep it inside an app-owned fetcher keyed by the complete
99
+ query and authorization scope.
100
+ - For selectors targeting legacy ContentBlock element hooks, move styling and
101
+ queries to the owning Card regions, slots and accessible names. The
102
+ ContentBlock adapter keeps its root, header, content and footer hooks.
103
+ DataTable still exposes the selection-toolbar root class, and
104
+ `batch-action-bar--summary` and `batch-action-bar--actions` identify the new
105
+ bar regions. Query the actual status or action for ShipmentTracking and
106
+ product option rows whose decorative dot and drag hooks were removed.
107
+ Tree owns AiFileTree rows through `tree--item` and `tree--group`.
108
+ - For new code, use Card in place of SmartCard and ContentBlock,
109
+ `ActionDrawer` from `features/overlays` in place of base Sheet,
110
+ `Page` from `layout/page` in place of the resource shell, and
111
+ `SchemaForm` from `features/schema-form` for the sync form. Pass standalone
112
+ product-card content to `ProductOverview` through its typed region props.
113
+ - Check Command compositions that used inherited cmdk props. Base UI owns
114
+ Command's keyboard and filtering behavior. Supply an explicit `filter`
115
+ for application-specific ranking and use the current public parts when
116
+ composing empty and group content.
117
+
118
+ The [changelog](CHANGELOG.md) and [consumer composition guide](docs/consumer-skill/references/composition.md)
119
+ describe the current roles and the version-specific changes.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A publishable React UI package built on Base UI and Tailwind, with shadcn-compatible themes and Themelia's public APIs. Routing, persistence, permissions and translations remain consumer-owned.
4
4
 
5
- Package: **`themelia-react-ui`** · current version: **`2.0.4`** · MIT licensed.
5
+ Package: **`themelia-react-ui`** · current version: **`2.0.6`** · MIT licensed.
6
6
  The GitHub repository is `themelia-react-ui`; npm imports use `themelia-react-ui`.
7
7
 
8
8
  Consuming apps start with [consumer setup](#consumer-setup) and the packaged
@@ -25,6 +25,14 @@ npm run check:all
25
25
 
26
26
  The Vite React playground has foundations, a complete searchable catalogue, and an interactive products workspace. The catalogue groups Foundations (including semantic primitives and composition structures), Base components, Layouts, Blocks, and domain Features. Layouts includes five composed AppLayout presets (light header, dark header, sidebar, inset canvas and stacked navigation), plus a responsive composition guide for viewport grids, parent-driven grids, wrapping actions and stable content order. Navigation uses actual package families, static domain headings above Features, padded disclosures and a single Skeletons family page. Expansion persists across page changes and mobile drawer closure; search shows the same group context. `/` opens the full catalogue with preview-only hash navigation (`/?page=catalog` also works); `/?page=products` exercises options, generation, validation, async save/retry and bulk actions. React Router is not a dependency.
27
27
 
28
+ For the application shell at its actual viewport size, open
29
+ `/?page=shells&layout=header`, `/?page=shells&layout=sidebar` or
30
+ `/?page=shells&layout=inset`; append `&theme=dark`
31
+ for the dark theme. This preview-only mode removes catalogue chrome from the
32
+ composition. The [shell architecture verification report](docs/verification/2026-10-29-shell-architecture-catalogue.md)
33
+ records source ownership, rendered measurements and executed interactions for
34
+ the three catalogue structures.
35
+
28
36
  `build` emits ESM entrypoints, TypeScript declarations, compiled component CSS, editable Tailwind theme source and optional map styles. Playground files stay outside the tarball. `check:contract` enforces exact exports, retained source symbols, component layers, dependencies and token ownership. `check:preview` verifies ready routes, example files, exact current public symbols, published imports and public family coverage. `check:docs` verifies local props for source-origin-qualified public callable owners, including all static displayed PropsTables. `check:package` requires a fresh `npm run build`. It installs the tarball into an isolated consumer, checks strict declarations for every family and matches installed declaration exports to the source-backed skill index. Its installed basic fixture checks SSR/hydration and executes provider defaults, controlled Input/Select/Checkbox state, form submission/validation/reset, scoped overlay portals and async confirmation/retry. Native links retain a separate strict typecheck and Vite-build smoke. The optional fixture exercises controlled table sorting/selection/visibility and client module initialization for specialist peers. Initialization does not establish specialist workflow or server-rendering support. It uses the configured npm cache, or `THEMELIA_NPM_CACHE`; a fresh `npm ci` cache may lack fixture registry metadata. Use `THEMELIA_FIXTURE_INSTALL=online` explicitly for cold temporary consumers, or supply a prepared cache for the default offline install. See [release readiness](docs/releasing.md).
29
37
 
30
38
  `lint` runs development-only `@shadcn/lint` through Oxlint: semantic colors across components, shared recipes and preview TSX and fixed typography contracts in preview examples. `check:design-lint` proves rule recognition, package stylesheet discovery and permitted customization. Both run inside `check`; `.oxlintrc.json` owns the staged policy. See [typography and lint guidance](docs/typography-and-design-lint.md).
@@ -41,6 +49,8 @@ Browser verification requires Playwright Chromium. An existing executable can be
41
49
 
42
50
  ## Consumer setup
43
51
 
52
+ Moving an existing Themelia app from `admin-ui-starter-kit`? See the [3.x migration guide](MIGRATION.md).
53
+
44
54
  Install a built tarball; use a registry release when available. React 19, React DOM 19, the declared Base UI peer and Lucide React 1 are required peers. Import exact family paths; there is no aggregate component barrel or public raw UI entrypoint.
45
55
 
46
56
  Nested light/dark utilities use custom-property container style queries. Use
@@ -48,14 +58,14 @@ Chromium 111+, Safari 18.1+ or Firefox 151+ for this theme behavior. The nearest
48
58
  mode class governs nested components and their scoped portals; see the
49
59
  [theme guide](docs/consumer-skill/references/theming.md) for partial overrides.
50
60
 
51
- Version 2.0.4 uses official `@base-ui/react ^1.9.0` from npm. Themelia's
61
+ Version 2.0.6 uses official `@base-ui/react ^1.9.0` from npm. Themelia's
52
62
  `ComboboxRoot.dismissLabel` and feature `strings.dismiss` name both screen-reader
53
63
  dismissal controls. Shared popup owners preserve focus restored to a child
54
64
  trigger during deferred parent recovery. These behaviors are library-owned;
55
65
  consumers install the unmodified official Base UI package.
56
66
 
57
67
  ```sh
58
- npm install ./themelia-react-ui-2.0.4.tgz '@base-ui/react@^1.9.0' lucide-react
68
+ npm install ./themelia-react-ui-2.0.6.tgz '@base-ui/react@^1.9.0' lucide-react
59
69
  ```
60
70
 
61
71
  For a registry release, install into a React 19 application with:
@@ -93,22 +103,32 @@ export function Example() {
93
103
  The default primary is near-black, so status colors never compete with it. For the Themelia green brand, also import `themelia-react-ui/themes/green.css` after `style.css`. For your own brand, set `--primary` and `--primary-foreground` (light and `.dark`) at the root or a `ThemeScope`; `--primary-accent` follows `--primary`.
94
104
 
95
105
  Compiled `style.css` requires no source scanning and includes no global preflight.
106
+ It includes static utility classes used by documented catalogue examples and
107
+ shipped recipes/templates. Arbitrary app classes still need app CSS or Tailwind.
96
108
  Components own their essential font and box model; the host may supply a reset
97
109
  for its own markup. Keep resets in a lower-priority CSS layer and load deliberate
98
- app overrides after library CSS. A Tailwind v4 application can additionally
110
+ app overrides after library CSS. The application owns the page canvas and inherited
111
+ copy: set the document font to `var(--font-sans)` and the body background/color to
112
+ `var(--background)` / `var(--foreground)`. See the [host CSS setup](docs/consumer-skill/references/installation.md#set-the-application-canvas).
113
+ A Tailwind v4 application can additionally
99
114
  import `theme.css` after Tailwind to generate app-owned utilities from the same
100
115
  mappings; this editable file contains Tailwind directives and needs processing.
101
116
 
102
- The package ships three focused agent capabilities:
117
+ The package ships four focused agent capabilities:
103
118
  [components](docs/consumer-skills/themelia-components/SKILL.md) for installed setup,
104
119
  search and typed component/form integration;
105
- [tokenization](docs/consumer-skills/themelia-tokenization/SKILL.md) for semantic
106
- themes, typography and shared geometry; and
120
+ [tokenization](docs/consumer-skills/themelia-tokenization/SKILL.md) for domain
121
+ structures combining public parts with semantic JSX and token-backed Tailwind,
122
+ plus shared themes, typography and geometry;
107
123
  [composition](docs/consumer-skills/themelia-composition/SKILL.md) for business
108
- hierarchy, responsive screens and visual repair. Their shared assets and
124
+ hierarchy, responsive screens and visual repair; and
125
+ [design](docs/consumer-skills/themelia-design/SKILL.md) for reading records into
126
+ view specs and scoring rendered views against a critique rubric. A
127
+ [designer agent](docs/consumer-skill/agents/themelia-ui-designer.md) applies the
128
+ design skill to whole views. Their shared assets and
109
129
  the compatible original entrypoint remain in `docs/consumer-skill`. The previous
110
130
  foundation/forms paths remain package compatibility routes; fresh skill copying
111
- installs the three canonical capabilities. Follow the
131
+ installs the four canonical capabilities. Follow the
112
132
  [installed setup and copying guide](docs/consumer-skill/references/installation.md)
113
133
  to preserve all references; npm installation does not modify global agent skills.
114
134
 
@@ -163,7 +183,8 @@ defines application freedom and library-owned anatomy; the
163
183
  and verification gate. Shipped consumer examples receive the same design lint as
164
184
  library compositions. Those repository checks do not run automatically in apps.
165
185
  Popover display/menu anatomy and default/compact insets are separate from collection
166
- row density and control size. Flush delegates padding to owned regions. Command
186
+ row density and control size. Rich display surfaces keep 24px default insets;
187
+ compact menu/list shells use 4px around their already-padded rows. Flush delegates padding to owned regions. Command
167
188
  search composes the public Input; features inherit these base recipes rather than
168
189
  rebuilding menu chrome or passing local padding overrides.
169
190
 
@@ -227,7 +248,7 @@ Consumer callbacks own feature data and backend effects. The examples demonstrat
227
248
 
228
249
  ### Blocks import migration
229
250
 
230
- The presentation layer is now named `blocks`. Replace `themelia-react-ui/composed/<family>` with `themelia-react-ui/blocks/<family>` for admin, AI, analytics, commerce, data-display, onboarding, and timelines. Component names and props are unchanged. The source folder and catalogue routes follow the same rename.
251
+ The presentation layer is now named `blocks`. Replace `admin-ui-starter-kit/composed/<family>` with `themelia-react-ui/blocks/<family>` for admin, AI, analytics, commerce, data-display, onboarding, and timelines. The source folder and catalogue routes follow the same rename.
231
252
 
232
253
  The default development URL opens the full component catalogue. The focused foundation playground remains at `/?page=foundations`, and the products workspace remains at `/?page=products`.
233
254
 
@@ -240,9 +261,10 @@ Use `titleSuffix` for card status, count and version badges. `headerStart` is fu
240
261
  Application drawers use `ActionDrawer` and `useOverlayVisibility` from `themelia-react-ui/features/overlays`. Sheet is the structural foundation and remains available for lower-layer infrastructure and compatibility.
241
262
 
242
263
  Header commands are role-based: one `primaryAction` and ordered
243
- `secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow,
244
- destructive commands and narrow widths moved into the More actions menu that
245
- ends the row. Page, PageHeader, PageHeading, the resource shells,
264
+ `secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow
265
+ and destructive commands moved into the More actions menu that ends the row.
266
+ Below 40rem of actual header width, one More actions trigger contains all commands,
267
+ including primary. Page, PageHeader, PageHeading, the resource shells,
246
268
  WorkspaceRecordHeader and SettingsShell share that row; keep `actions` for
247
269
  non-command controls. Use `header.tabs` for separately selected or routed record
248
270
  sections, with counts when useful. Continuous detail documents keep their
@@ -256,7 +278,18 @@ scale. The menu comes after any primary command in its row, and destructive
256
278
  entries stay last.
257
279
  Page owns inline and block padding, defaulting to the large surface role;
258
280
  PageViewport owns scrolling and supplies no inset. Use `Page narrow` for a
259
- centered single resource; explicit `maxWidth` wins. Page headers use dense copy
281
+ centered single resource. An `aside` selects the `xl` (80rem) measure unless
282
+ `narrow` or an explicit `maxWidth` wins. Page owns `toolbar`, body lifecycle
283
+ states (`loading`, `error`, `empty`, `onRetry`) and the route header.
284
+ Its four header content slots are `beforeTitle`, `titleSuffix`, `afterDescription`
285
+ and `actions`: pass React content or a callback receiving `{ renderLink, defaultContent }`.
286
+ Compose Badge or MetadataList in those slots; the header adds no avatar or automatic
287
+ metadata shape. `slots.actions` can wrap or return its default responsive command
288
+ row through `defaultContent`; replacing it makes command behavior caller-owned.
289
+ Legacy `slots.back`, `titleBadges`, `titleIcon` and direct `actions` remain supported.
290
+ ResourceHeader, ResourceIndexShell, ResourceShowShell and TabbedResourceShell
291
+ are deprecated; replace them with Page rather than nesting route owners. Their
292
+ existing embedded geometry remains supported. Page headers use dense copy
260
293
  gaps. Ordinary cards default to `surface="card"` and `md` padding (24px), with
261
294
  an unruled header and a ruled footer. Explicit divider props override provider
262
295
  defaults. Use `surface="framed"` for grouped emphasis and `surface="flat"`
@@ -264,10 +297,73 @@ inside an existing boundary. Card padding supports `none`, `sm` (12px), `md`
264
297
  (24px) and `lg` (32px); its default regional gap follows the same surface tier
265
298
  (`none` retains the 24px gap). The general surface scale also includes 16px. All
266
299
  are scaled once by `--space-scale`; control heights and corners remain separate.
300
+
301
+ AppLayout keeps its five variant choices. The shared header-height root now
302
+ defaults to `4rem`. Header-first
303
+ `light-header`/`dark-header` layouts can opt into `contentSurface="inset"`: a
304
+ quiet secondary canvas around the card-colored main surface. Sidebar-first
305
+ `sidebar`/`inset` presets keep their existing flush/inset behavior. Shells own
306
+ one PageViewport; Page supplies the page padding, and header partials occupy the
307
+ shell's single header owner.
308
+
309
+ The catalogue leads with three structures: a global Header shell, the shared
310
+ App sidebar shell and a shadcn-style Inset shell. Single/dual navigation,
311
+ attached/floating framing and collapse behavior configure these structures.
312
+ They reuse the five presets. Full-size previews use
313
+ `?page=shells&layout=header`, `sidebar` or `inset`, optionally with `&theme=dark`.
314
+ The focused `grouped`, `dual`, `dual-inset`, `floating` and `stacked` views remain
315
+ available for comparison.
316
+
317
+ The featured layouts use grouped left navigation or a static left area rail
318
+ beside a full navigation panel. Collapse is a caller choice on
319
+ `AppSidebar`/`LayoutSidebar`, independent of the shell or sidebar skin:
320
+ `collapsible="icon"` minimizes the full panel to icons, `"offcanvas"` hides it,
321
+ and `"none"` keeps it expanded. Current examples default to `icon` and expose
322
+ a preview selector for these modes. In a dual layout the primary area rail
323
+ remains static: icon mode leaves a second compact column, while offcanvas
324
+ leaves only the original rail. One explicit trigger controls the contextual
325
+ panel; selecting an area opens it. Keep the primary rail's `collapsible="none"`
326
+ policy independent of the adjacent panel's policy.
327
+ At narrow widths the inline cluster pans a minimum page canvas while its area
328
+ rail stays pinned; resizing does not silently minimize navigation.
329
+ Both header-first and sidebar-first shells expose `mobileSidebarMode`; choose
330
+ `inline` for this persistent cluster, or retain the default drawer policy.
331
+ Sidebar shells accept
332
+ `slots.sidebar` (primary) and `slots.secondarySidebar` (contextual), with named
333
+ state inherited under one LayoutSidebarProvider. `openPanels` controls expansion and
334
+ `mobilePanel` selects one shared undocked drawer while preserving desktop state.
335
+ `navigationPanel` selects the untargeted trigger/shortcut destination. Existing
336
+ primary `open`/`onOpenChange` remain supported; controlled `openPanels` takes
337
+ precedence. Independent width props and `sidebarPresentation="rail"` use existing
338
+ shell geometry, with no new public theme roots. SidebarNavigationRail supplies
339
+ area navigation on its own background surface with one divider. Its dedicated
340
+ width is 52px at the default roots (a 36px action plus 8px on each side); the
341
+ existing full-sidebar icon-collapse width remains 60px. These are derived
342
+ recipes, not new public settings. SidebarRail remains the collapse affordance.
343
+
267
344
  AppSidebar offers pinned `slots.headerStart`/`headerEnd` around its workspace
268
- region, compact navigation and a separated footer. The
345
+ region, grouped navigation and a separated footer. The four `header`,
346
+ `beforeNavigation`, `afterNavigation` and `footer` slots accept content or a
347
+ callback with named state, renderLink and defaultContent. A header node preserves
348
+ its legacy full replacement behavior; callback header content and either footer
349
+ form retain library-owned insets. Before/after navigation content scrolls.
350
+ Ordered `{ id, label?, items }` groups supplement the existing Record form, and
351
+ `renderItemContent` customizes label content inside the accessible row. Use
352
+ `currentUrl` for most-specific destination matching; render contexts distinguish
353
+ the current item from its `ancestor`. In icon mode, searchable sidebars retain
354
+ their search band as an icon that expands and focuses the field. Compact rows
355
+ keep a small gap; default and comfortable density share a roomier row gap,
356
+ with separate caption and group spacing. SidebarNavigationRail also exposes
357
+ `header`, `beforeNavigation`, `afterNavigation` and `footer` slots: header/footer
358
+ stay pinned and before/after content scrolls with navigation. Use
359
+ `surface="transparent"` for navigation that shares a docked shell canvas;
360
+ drawers remain opaque. `adaptTo="container"` keeps an embedded drawer and its
361
+ backdrop inside the provider for compositions that use drawers. Omit a contextual
362
+ group label when its header already supplies that same label. KPI peers use MetricGrid. The
269
363
  [complete shell recipe](docs/consumer-skill/examples/app-layout.tsx) demonstrates
270
- public workspace/account controls and hosts route children directly. Its separate
364
+ single- and multiple-region composition with public workspace/account controls
365
+ and hosts route children directly. Its `contextualCollapsible` option defaults
366
+ to `icon`; a supplied `secondarySidebar` can choose its own collapse mode. Its separate
271
367
  `WorkspaceExamplePage` owns the illustrative title, Create callback and narrow
272
368
  measure; a real route such as `AccountDetailPage` replaces that example.
273
369
 
@@ -276,7 +372,13 @@ surfaces win. Leave Card's `icon` slot for a glyph that carries state or a
276
372
  brand; titles name the subject. `headerPlacement` chooses inside/frame
277
373
  composition independently. Independent framed peers use `gap="2xl"`, matching
278
374
  Page and TwoColumnLayout's rhythm, since outer rings consume a smaller DOM gap.
279
- MetadataList (`themelia-react-ui/base/metadata-list`) keeps semibold labels and normal primary values in both densities.
375
+ Card body children use the related (`xl`, 16px) gap by default; explicit
376
+ `contentGap` remains authoritative. SettingsShell spaces direct sections by the
377
+ subjects (`2xl`, 24px) role. MetadataList (`themelia-react-ui/base/metadata-list`)
378
+ keeps semibold labels and normal primary values in both densities. It now adapts
379
+ to its own container by default, with 22/28/38/52/64rem thresholds; pass
380
+ `adaptTo="viewport"` to retain viewport breakpoints. DataTable owns its surface
381
+ and topbar insets; place compact FilterLayout in `topbarContent`, or use DataView.
280
382
  Dashboard KPIs use Metric/MetricGrid/MetricBar; quotas use the focused UsageCard
281
383
  owner. See [analytics selection](docs/consumer-skill/references/analytics.md) and
282
384
  the [resource page recipe](docs/consumer-skill/examples/detail.tsx).
@@ -293,7 +395,7 @@ and ordinary Card subjects without app chrome. The packaged
293
395
  offers and real navigation links using the same theme and inset owners.
294
396
 
295
397
 
296
- Popover content uses `type="display"` for substantive content and `type="menu"` for collections. Mixed searchable menus use flush shells and compact region insets. `--radius` defaults to 12px. Cards and popup/command shells use `rounded-radius`; controls, collection/navigation rows and nested bodies use the shared, height-bounded `rounded-inner` role (normally 9px). Both derive from the same public root. Consumers inherit these recipes; see the [theme contract](docs/consumer-skill/references/theming.md) for scaling and custom roots. No separate surface/control radius setting is introduced.
398
+ Popover content uses `type="display"` for substantive content and `type="menu"` for collections. Mixed searchable menus use flush shells and compact region insets. `--radius` defaults to 12px. Cards and popup/command shells use `rounded-surface`; controls, collection/navigation rows and nested bodies use the shared, height-bounded `rounded-radius` role (normally 9px). Both derive from the same public root. Consumers inherit these recipes; see the [theme contract](docs/consumer-skill/references/theming.md) for scaling and custom roots. No separate surface/control radius setting is introduced.
297
399
 
298
400
 
299
401
  ## Agent skill and consumer references
@@ -342,7 +444,7 @@ visual review remain separate.
342
444
 
343
445
  Maintainers run `npm run docs:sync-skill` after changes to exports, types, selection guidance, peers or tokens. `npm run check:skill` requires a fresh library build and rejects stale source-backed references, built declaration exports and broken reference links. `prepack` checks source-backed references without rebuilding; `prepublishOnly` builds fresh assets and verifies built guidance. `check:package` verifies the complete shipped skill, strictly compiles the basic recipes without optional peers and every recipe with its required peers, and executes installed shell/resource-page and workflow checks.
344
446
 
345
- Build portable consumer documentation with `npm run build` followed by `npm run build:docs`. The generated [static entry](dist-docs/index.html) links to `dist-docs/2.0.4/` for the current version. Each version preserves the complete skill and all declaration files, supports search with the same finder, and uses relative links under any hosting subdirectory. Serve the entire artifact over HTTP; it needs no external CDN. Run `npm run check:static-docs` to check generated asset paths. The future hosting destination remains pending.
447
+ Build portable consumer documentation with `npm run build` followed by `npm run build:docs`. The generated [static entry](dist-docs/index.html) links to `dist-docs/2.0.6/` for the current version. Each version preserves the complete skill and all declaration files, supports search with the same finder, and uses relative links under any hosting subdirectory. Serve the entire artifact over HTTP; it needs no external CDN. Run `npm run check:static-docs` to check generated asset paths. The future hosting destination remains pending.
346
448
 
347
449
  `npm run check:agent` runs focused agent-consumption fixtures and built skill alignment. `npm run check:release` performs the real serial local build/package/browser/agent/static-documentation gate; it does not publish or deploy. `npm run check:quick` runs the everyday core (contract, lint, design lint, typecheck, unit tests, build). See the [release guide](docs/releasing.md) and [draft changelog](CHANGELOG.md). There is no hosted CI; every check runs locally, when you choose. These commands verify locally; publication and deployment remain separate actions.
348
450