themelia-react-ui 2.0.5 → 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 (489) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +13 -6
  4. package/dist/{accordion-B9MHG0cT.js → accordion-0tQUZ20r.js} +7 -7
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-Dr8K-ghE.js → action-menu-C0gjzLyE.js} +7 -7
  7. package/dist/{action-menu-Dr8K-ghE.js.map → action-menu-C0gjzLyE.js.map} +1 -1
  8. package/dist/{ai-artifact-C58tQcBy.js → ai-artifact-CGGpQryR.js} +172 -157
  9. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  10. package/dist/{app-shell-B_IuNWOo.js → app-shell-EHuuRDGy.js} +5 -5
  11. package/dist/{app-shell-B_IuNWOo.js.map → app-shell-EHuuRDGy.js.map} +1 -1
  12. package/dist/{attachment-Dg_69lPS.js → attachment-BCpA4e7i.js} +8 -8
  13. package/dist/{attachment-Dg_69lPS.js.map → attachment-BCpA4e7i.js.map} +1 -1
  14. package/dist/{auth-DTkkshS8.js → auth-B0girIk_.js} +15 -15
  15. package/dist/auth-B0girIk_.js.map +1 -0
  16. package/dist/{avatar-CeZaFmNH.js → avatar-B9Jnp-T-.js} +3 -3
  17. package/dist/{avatar-CeZaFmNH.js.map → avatar-B9Jnp-T-.js.map} +1 -1
  18. package/dist/{badge-xIiV_E7f.js → badge-wWauMgAt.js} +3 -3
  19. package/dist/{badge-xIiV_E7f.js.map → badge-wWauMgAt.js.map} +1 -1
  20. package/dist/base/accordion.js +1 -1
  21. package/dist/base/action-menu.js +1 -1
  22. package/dist/base/attachment.js +1 -1
  23. package/dist/base/avatar.js +1 -1
  24. package/dist/base/badge.js +1 -1
  25. package/dist/base/batch-action-bar.js +1 -1
  26. package/dist/base/buttons.js +1 -1
  27. package/dist/base/cards.js +2 -2
  28. package/dist/base/carousel.js +3 -3
  29. package/dist/base/cascader.js +1 -1
  30. package/dist/base/chart.js +1 -1
  31. package/dist/base/choice-inputs.js +2 -2
  32. package/dist/base/code-block.js +1 -1
  33. package/dist/base/combobox.js +1 -1
  34. package/dist/base/command.js +1 -1
  35. package/dist/base/copyable.js +1 -1
  36. package/dist/base/date-pickers.js +2 -2
  37. package/dist/base/display.js +6 -6
  38. package/dist/base/feedback.js +4 -4
  39. package/dist/base/forms-numeric.js +1 -1
  40. package/dist/base/forms.js +2 -2
  41. package/dist/base/inline-edit.js +8 -8
  42. package/dist/base/item.js +1 -1
  43. package/dist/base/media-gallery.js +1 -1
  44. package/dist/base/metadata-list.js +1 -1
  45. package/dist/base/navigation.js +6 -6
  46. package/dist/base/popover-menu.js +1 -1
  47. package/dist/base/popover.js +1 -1
  48. package/dist/base/qr-code.js +1 -1
  49. package/dist/base/repeaters.js +195 -188
  50. package/dist/base/repeaters.js.map +1 -1
  51. package/dist/base/sheet.js +1 -1
  52. package/dist/base/sidebar.js +2 -2
  53. package/dist/base/signature-pad.js +7 -7
  54. package/dist/base/skeleton.js +1 -1
  55. package/dist/base/spinner.js +5 -5
  56. package/dist/base/spinner.js.map +1 -1
  57. package/dist/base/structure.js +1 -1
  58. package/dist/base/table.js +1 -1
  59. package/dist/base/text-inputs.js +2 -2
  60. package/dist/base/toaster.js +1 -1
  61. package/dist/base/tree.js +1 -1
  62. package/dist/base/upload-queue.js +1 -1
  63. package/dist/base/upload.js +3 -3
  64. package/dist/base/value-inputs.js +1 -1
  65. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-BoqWIIpV.js} +5 -5
  66. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-BoqWIIpV.js.map} +1 -1
  67. package/dist/blocks/admin.js +17 -17
  68. package/dist/blocks/ai.js +227 -221
  69. package/dist/blocks/ai.js.map +1 -1
  70. package/dist/blocks/analytics/usage-card.js +1 -1
  71. package/dist/blocks/analytics.js +424 -449
  72. package/dist/blocks/analytics.js.map +1 -1
  73. package/dist/blocks/collaboration.js +1 -1
  74. package/dist/blocks/commerce/receipt.js +1 -1
  75. package/dist/blocks/commerce.js +225 -220
  76. package/dist/blocks/commerce.js.map +1 -1
  77. package/dist/blocks/data-display.js +2 -2
  78. package/dist/blocks/onboarding.js +5 -5
  79. package/dist/blocks/planning.js +11 -11
  80. package/dist/blocks/timelines.js +1 -1
  81. package/dist/{breadcrumbs-J-K2kl4c.js → breadcrumbs-Bp9Ke7kd.js} +4 -4
  82. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  83. package/dist/{button-S2Cubiiz.js → button-ChBovTx0.js} +2 -2
  84. package/dist/{button-S2Cubiiz.js.map → button-ChBovTx0.js.map} +1 -1
  85. package/dist/{buttons-BedGfygC.js → buttons-DeW0bQeK.js} +6 -6
  86. package/dist/{buttons-BedGfygC.js.map → buttons-DeW0bQeK.js.map} +1 -1
  87. package/dist/{cards-rNX1M4Xn.js → cards-CNXnmvV5.js} +8 -8
  88. package/dist/{cards-rNX1M4Xn.js.map → cards-CNXnmvV5.js.map} +1 -1
  89. package/dist/{cascader-B1MiqkBq.js → cascader-CrAl9zD5.js} +15 -15
  90. package/dist/{cascader-B1MiqkBq.js.map → cascader-CrAl9zD5.js.map} +1 -1
  91. package/dist/{chart-Darg_0Kv.js → chart-I7ROnsl8.js} +5 -5
  92. package/dist/{chart-Darg_0Kv.js.map → chart-I7ROnsl8.js.map} +1 -1
  93. package/dist/{checkbox-fflqmODR.js → checkbox-MoyHIAPs.js} +3 -3
  94. package/dist/{checkbox-fflqmODR.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  95. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-DHGtx0QV.js} +122 -110
  96. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  97. package/dist/{code-block-BzmM9Eig.js → code-block-BSJyq9e-.js} +7 -7
  98. package/dist/{code-block-BzmM9Eig.js.map → code-block-BSJyq9e-.js.map} +1 -1
  99. package/dist/{collapsible-BkAI_XD4.js → collapsible-BzJ91LUG.js} +3 -3
  100. package/dist/{collapsible-BkAI_XD4.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  101. package/dist/{collection-content-gDh1v6O4.js → collection-content-CSnwtOTH.js} +3 -3
  102. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  103. package/dist/{combobox-BEx0vJgF.js → combobox-Bcvu5J8O.js} +11 -10
  104. package/dist/{combobox-BEx0vJgF.js.map → combobox-Bcvu5J8O.js.map} +1 -1
  105. package/dist/combobox-C2JiSQPc.js +915 -0
  106. package/dist/combobox-C2JiSQPc.js.map +1 -0
  107. package/dist/{command-CrlPIL6m.js → command-9e52NPgK.js} +6 -6
  108. package/dist/{command-CrlPIL6m.js.map → command-9e52NPgK.js.map} +1 -1
  109. package/dist/{comments-Dmpp0YIc.js → comments-BsgErEqd.js} +33 -28
  110. package/dist/comments-BsgErEqd.js.map +1 -0
  111. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  112. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  113. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  114. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  115. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  116. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  117. package/dist/components/base/feedback/state-display.d.ts +5 -1
  118. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  119. package/dist/components/base/forms/form-field.d.ts +7 -2
  120. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  121. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  122. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  123. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  124. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  125. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  126. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  127. package/dist/components/base/sidebar/sidebar.d.ts +2 -0
  128. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  129. package/dist/components/base/upload/image-upload.d.ts +2 -1
  130. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  131. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  132. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  133. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +2 -0
  134. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  135. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  136. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  137. package/dist/components/blocks/analytics/types.d.ts +2 -2
  138. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  139. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  140. package/dist/components/features/activities/activities.types.d.ts +18 -11
  141. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  142. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  143. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  144. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  145. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  146. package/dist/components/features/combobox/combobox.d.ts +2 -2
  147. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  148. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  149. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  150. package/dist/components/features/combobox/types.d.ts +37 -8
  151. package/dist/components/features/email-composer/types.d.ts +3 -1
  152. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  153. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  154. package/dist/components/features/filters/filters.types.d.ts +3 -3
  155. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  156. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  157. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  158. package/dist/components/features/filters/utils/filter-utils.d.ts +5 -1
  159. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  160. package/dist/components/features/media-library/media-library.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
  162. package/dist/components/features/media-library/media-library.types.d.ts +36 -8
  163. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  164. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  165. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  166. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  167. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  168. package/dist/components/features/products/products.types.d.ts +2 -2
  169. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  170. package/dist/components/features/resource/resource.d.ts +1 -1
  171. package/dist/components/features/resource/resource.types.d.ts +2 -0
  172. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  173. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  174. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  175. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  176. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  177. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  178. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  179. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  180. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  181. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  182. package/dist/components/features/table/data-table.d.ts +1 -1
  183. package/dist/components/features/table/index.d.ts +1 -0
  184. package/dist/components/features/table/table-body.d.ts +1 -1
  185. package/dist/components/features/table/table-helpers.d.ts +6 -3
  186. package/dist/components/features/table/table.strings.d.ts +3 -0
  187. package/dist/components/features/table/table.types.d.ts +17 -1
  188. package/dist/components/layout/header/header.types.d.ts +3 -2
  189. package/dist/components/layout/layout.types.d.ts +5 -3
  190. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  191. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  192. package/dist/components/layout/settings/settings.d.ts +1 -1
  193. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  194. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +3 -1
  195. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  196. package/dist/components/layout/sidebar/sidebar.types.d.ts +2 -0
  197. package/dist/components/primitives/link.d.ts +3 -2
  198. package/dist/components/primitives/money.d.ts +1 -1
  199. package/dist/components/primitives/number.d.ts +1 -1
  200. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  201. package/dist/{containers-CIxwbZt5.js → containers-CSdc32h9.js} +2 -2
  202. package/dist/{containers-CIxwbZt5.js.map → containers-CSdc32h9.js.map} +1 -1
  203. package/dist/{copyable-DIznBqiT.js → copyable-3fdHfMR3.js} +4 -4
  204. package/dist/{copyable-DIznBqiT.js.map → copyable-3fdHfMR3.js.map} +1 -1
  205. package/dist/{data-display-BdgCAw8T.js → data-display-Cmj-xZYl.js} +16 -15
  206. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  207. package/dist/{date-Cq8ioE4o.js → date-Br0FicVv.js} +4 -4
  208. package/dist/{date-Cq8ioE4o.js.map → date-Br0FicVv.js.map} +1 -1
  209. package/dist/date-picker-CyQlFYsP.js +1617 -0
  210. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  211. package/dist/date-pickers-tj2MXmXd.js +185 -0
  212. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  213. package/dist/{display-KsZLw9Ov.js → display-CT_N2a3w.js} +7 -7
  214. package/dist/{display-KsZLw9Ov.js.map → display-CT_N2a3w.js.map} +1 -1
  215. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-C08iIugv.js} +6 -6
  216. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-C08iIugv.js.map} +1 -1
  217. package/dist/features/activities.js +283 -270
  218. package/dist/features/activities.js.map +1 -1
  219. package/dist/features/ai-chat.js +40 -27
  220. package/dist/features/ai-chat.js.map +1 -1
  221. package/dist/features/appointment-calendar.js +126 -126
  222. package/dist/features/appointment-calendar.js.map +1 -1
  223. package/dist/features/async-preview.js +9 -9
  224. package/dist/features/combobox.js +1 -1
  225. package/dist/features/comments.js +1 -1
  226. package/dist/features/data-view.js +10 -10
  227. package/dist/features/email-composer.js +24 -19
  228. package/dist/features/email-composer.js.map +1 -1
  229. package/dist/features/event-calendar.js +129 -125
  230. package/dist/features/event-calendar.js.map +1 -1
  231. package/dist/features/filters.js +2 -2
  232. package/dist/features/global-search.js +16 -20
  233. package/dist/features/global-search.js.map +1 -1
  234. package/dist/features/kanban.js +18 -28
  235. package/dist/features/kanban.js.map +1 -1
  236. package/dist/features/map/style.css +15 -0
  237. package/dist/features/map.js +331 -314
  238. package/dist/features/map.js.map +1 -1
  239. package/dist/features/media-library.js +1044 -866
  240. package/dist/features/media-library.js.map +1 -1
  241. package/dist/features/mentions.js +2 -2
  242. package/dist/features/overlays.js +1 -1
  243. package/dist/features/products.js +978 -964
  244. package/dist/features/products.js.map +1 -1
  245. package/dist/features/questionnaire.js +159 -152
  246. package/dist/features/questionnaire.js.map +1 -1
  247. package/dist/features/resource-assignment.js +8 -8
  248. package/dist/features/resource.js +74 -71
  249. package/dist/features/resource.js.map +1 -1
  250. package/dist/features/rich-text-editor.js +28 -19
  251. package/dist/features/rich-text-editor.js.map +1 -1
  252. package/dist/features/schema-form.js +297 -256
  253. package/dist/features/schema-form.js.map +1 -1
  254. package/dist/features/suggestions.js +57 -50
  255. package/dist/features/suggestions.js.map +1 -1
  256. package/dist/features/sync.js +3 -3
  257. package/dist/features/table.js +1 -1
  258. package/dist/features/theme-tweaker.js +400 -399
  259. package/dist/features/theme-tweaker.js.map +1 -1
  260. package/dist/feedback-Dzo1xtAU.js +246 -0
  261. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  262. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-D6H7tVJi.js} +2 -2
  263. package/dist/{field-affordance-recipes-DWcNcOjh.js.map → field-affordance-recipes-D6H7tVJi.js.map} +1 -1
  264. package/dist/field-control-attributes-B6i335wr.js +18 -0
  265. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  266. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  267. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  268. package/dist/{filters-DzgSJpMK.js → filters-Dl80yYtN.js} +763 -605
  269. package/dist/filters-Dl80yYtN.js.map +1 -0
  270. package/dist/form-field-CAPdwdnZ.js +74 -0
  271. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  272. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-CgcrUbLU.js} +2 -2
  273. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-CgcrUbLU.js.map} +1 -1
  274. package/dist/{forms-C0RGnJTe.js → forms-B3W8CH7-.js} +8 -8
  275. package/dist/{forms-C0RGnJTe.js.map → forms-B3W8CH7-.js.map} +1 -1
  276. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  277. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  278. package/dist/{header-DMMxG__r.js → header-ZIIsRKxP.js} +113 -113
  279. package/dist/header-ZIIsRKxP.js.map +1 -0
  280. package/dist/hooks/use-files.d.ts +2 -0
  281. package/dist/{hooks-DB6CJ4MR.js → hooks-BitHSh-Y.js} +3 -3
  282. package/dist/{hooks-DB6CJ4MR.js.map → hooks-BitHSh-Y.js.map} +1 -1
  283. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-npxF1SLX.js} +2 -2
  284. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  285. package/dist/index.js +1 -1
  286. package/dist/{input-CvyDQlY7.js → input-7KAc7XQL.js} +6 -6
  287. package/dist/{input-CvyDQlY7.js.map → input-7KAc7XQL.js.map} +1 -1
  288. package/dist/{input-DMBwAZmr.js → input-DIREVYHs.js} +3 -3
  289. package/dist/{input-DMBwAZmr.js.map → input-DIREVYHs.js.map} +1 -1
  290. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  291. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  292. package/dist/{item-DjCcM18E.js → item-FfWnaYST.js} +99 -98
  293. package/dist/item-FfWnaYST.js.map +1 -0
  294. package/dist/layout/app-shell.js +1 -1
  295. package/dist/layout/auth.js +1 -1
  296. package/dist/layout/containers.js +1 -1
  297. package/dist/layout/header.js +1 -1
  298. package/dist/layout/hooks.js +1 -1
  299. package/dist/layout/navigation.js +1 -1
  300. package/dist/layout/page.js +1 -1
  301. package/dist/layout/settings.js +1 -1
  302. package/dist/layout/sidebar.js +2 -2
  303. package/dist/layout/workspace.js +1 -1
  304. package/dist/layout.js +11 -11
  305. package/dist/layout.types-E_GAApzO.js +30 -0
  306. package/dist/layout.types-E_GAApzO.js.map +1 -0
  307. package/dist/lib/field-control-attributes.d.ts +11 -0
  308. package/dist/lib/field-state-recipes.d.ts +2 -0
  309. package/dist/lib/format.d.ts +1 -0
  310. package/dist/lib/surface-recipes.d.ts +1 -1
  311. package/dist/lib/token-merge.generated.d.ts +6 -6
  312. package/dist/lib/utils.js +1 -1
  313. package/dist/{media-gallery-C-vChPmE.js → media-gallery-C81DAnKI.js} +6 -6
  314. package/dist/{media-gallery-C-vChPmE.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  315. package/dist/{mentions-0_4nWuI-.js → mentions-qOnedSt4.js} +236 -167
  316. package/dist/mentions-qOnedSt4.js.map +1 -0
  317. package/dist/message-BJHnn43M.js +135 -0
  318. package/dist/message-BJHnn43M.js.map +1 -0
  319. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-XkqZ_UXH.js} +11 -11
  320. package/dist/{metadata-list-C3MkU-Om.js.map → metadata-list-XkqZ_UXH.js.map} +1 -1
  321. package/dist/{navigation-DaRjthVk.js → navigation-BgtPJAhi.js} +119 -119
  322. package/dist/navigation-BgtPJAhi.js.map +1 -0
  323. package/dist/{navigation-C90-oQFq.js → navigation-Bt-v7rWP.js} +52 -46
  324. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  325. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  326. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  327. package/dist/{number-CRU3kGuk.js → number-CYqBcrSj.js} +78 -86
  328. package/dist/number-CYqBcrSj.js.map +1 -0
  329. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-BQCA2Zn2.js} +7 -7
  330. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-BQCA2Zn2.js.map} +1 -1
  331. package/dist/{overlays-BSgCtM2v.js → overlays-CC8zI3Du.js} +264 -260
  332. package/dist/overlays-CC8zI3Du.js.map +1 -0
  333. package/dist/{page-DUUKDAjo.js → page-BoQ1VaFJ.js} +13 -13
  334. package/dist/{page-DUUKDAjo.js.map → page-BoQ1VaFJ.js.map} +1 -1
  335. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-DIKspJfx.js} +4 -4
  336. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-DIKspJfx.js.map} +1 -1
  337. package/dist/{pagination-CgCjElfu.js → pagination-Br8TdV9A.js} +4 -4
  338. package/dist/{pagination-CgCjElfu.js.map → pagination-Br8TdV9A.js.map} +1 -1
  339. package/dist/{popover-B85RenIl.js → popover-k8TdUcAt.js} +10 -10
  340. package/dist/popover-k8TdUcAt.js.map +1 -0
  341. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-yn-o0kyA.js} +7 -7
  342. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  343. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-DJ0AkUan.js} +2 -2
  344. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-DJ0AkUan.js.map} +1 -1
  345. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-DyUXqUtD.js} +2 -2
  346. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-DyUXqUtD.js.map} +1 -1
  347. package/dist/{primitives-ByWgGUgt.js → primitives-BkkQjYl7.js} +22 -17
  348. package/dist/primitives-BkkQjYl7.js.map +1 -0
  349. package/dist/primitives.js +4 -4
  350. package/dist/{progress-BJhQP9WX.js → progress-DZFXXzPs.js} +4 -4
  351. package/dist/{progress-BJhQP9WX.js.map → progress-DZFXXzPs.js.map} +1 -1
  352. package/dist/{receipt-tOc7B3hw.js → receipt-C7LhOg7Q.js} +6 -6
  353. package/dist/{receipt-tOc7B3hw.js.map → receipt-C7LhOg7Q.js.map} +1 -1
  354. package/dist/rich-text-BnTzZjIo.js +45 -0
  355. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  356. package/dist/rich-text-editor-CAurDwT5.js +1273 -0
  357. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  358. package/dist/{rich-text-editor-toolbar-laT3tpBT.js → rich-text-editor-toolbar-DbXig7Jk.js} +36 -35
  359. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  360. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  361. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  362. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  363. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  364. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-Bj6CRUif.js} +2 -2
  365. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  366. package/dist/{separator-Bb17I4pu.js → separator-B9ewiCGO.js} +2 -2
  367. package/dist/{separator-Bb17I4pu.js.map → separator-B9ewiCGO.js.map} +1 -1
  368. package/dist/{separator-Ct_WSWTJ.js → separator-DM6gs2vu.js} +3 -3
  369. package/dist/{separator-Ct_WSWTJ.js.map → separator-DM6gs2vu.js.map} +1 -1
  370. package/dist/services/actions.js +1 -1
  371. package/dist/settings-DZPHgpx4.js +155 -0
  372. package/dist/settings-DZPHgpx4.js.map +1 -0
  373. package/dist/{sheet-BGPERY55.js → sheet-C4DHsgLk.js} +6 -6
  374. package/dist/{sheet-BGPERY55.js.map → sheet-C4DHsgLk.js.map} +1 -1
  375. package/dist/sidebar-C8BnDwTH.js +709 -0
  376. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  377. package/dist/{sidebar-f9gRWXIR.js → sidebar-CmD6a-HK.js} +16 -13
  378. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  379. package/dist/{skeleton-BapcJd9C.js → skeleton-DDgdhmu9.js} +5 -5
  380. package/dist/{skeleton-BapcJd9C.js.map → skeleton-DDgdhmu9.js.map} +1 -1
  381. package/dist/{smart-card-CW0hjetE.js → smart-card-B6vLxqa_.js} +8 -8
  382. package/dist/{smart-card-CW0hjetE.js.map → smart-card-B6vLxqa_.js.map} +1 -1
  383. package/dist/{structure-DuxKl954.js → structure-DZJ2wbAU.js} +2 -2
  384. package/dist/{structure-DuxKl954.js.map → structure-DZJ2wbAU.js.map} +1 -1
  385. package/dist/style.css +1 -1
  386. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  387. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  388. package/dist/{table-CFOWY9pQ.js → table-CBonSdTp.js} +534 -486
  389. package/dist/table-CBonSdTp.js.map +1 -0
  390. package/dist/{table-B4TE7iOV.js → table-CXSPHH25.js} +75 -71
  391. package/dist/table-CXSPHH25.js.map +1 -0
  392. package/dist/{tabs-e7ko9S2o.js → tabs-C4Kr_hCr.js} +50 -49
  393. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  394. package/dist/{text-inputs-B1culiSK.js → text-inputs-jdkS3ReG.js} +9 -9
  395. package/dist/{text-inputs-B1culiSK.js.map → text-inputs-jdkS3ReG.js.map} +1 -1
  396. package/dist/{timelines-D3Sl9ueq.js → timelines-CoPwdJP0.js} +10 -10
  397. package/dist/{timelines-D3Sl9ueq.js.map → timelines-CoPwdJP0.js.map} +1 -1
  398. package/dist/{tooltip-8wz5S_Zr.js → tooltip-31NwIpTo.js} +4 -4
  399. package/dist/{tooltip-8wz5S_Zr.js.map → tooltip-31NwIpTo.js.map} +1 -1
  400. package/dist/{tree-CzUJHnFs.js → tree-CeYVzdFE.js} +6 -6
  401. package/dist/{tree-CzUJHnFs.js.map → tree-CeYVzdFE.js.map} +1 -1
  402. package/dist/typography/rich-text.js +1 -1
  403. package/dist/{typography-BQnine1k.js → typography-C7-YMW1S.js} +2 -2
  404. package/dist/{typography-BQnine1k.js.map → typography-C7-YMW1S.js.map} +1 -1
  405. package/dist/typography.js +1 -1
  406. package/dist/{upload-BOW6U2tI.js → upload-Hdm5gObf.js} +303 -291
  407. package/dist/upload-Hdm5gObf.js.map +1 -0
  408. package/dist/{upload-queue-qUXn1ykN.js → upload-queue-D0sYPuqo.js} +8 -8
  409. package/dist/{upload-queue-qUXn1ykN.js.map → upload-queue-D0sYPuqo.js.map} +1 -1
  410. package/dist/{usage-card-BeSLY0i0.js → usage-card-9s8hLDfn.js} +9 -9
  411. package/dist/{usage-card-BeSLY0i0.js.map → usage-card-9s8hLDfn.js.map} +1 -1
  412. package/dist/{utils-B6kKb8jB.js → utils-DhuoqFy4.js} +31 -37
  413. package/dist/utils-DhuoqFy4.js.map +1 -0
  414. package/dist/{value-inputs-skdVB2zh.js → value-inputs-D3aPgq9H.js} +15 -15
  415. package/dist/{value-inputs-skdVB2zh.js.map → value-inputs-D3aPgq9H.js.map} +1 -1
  416. package/dist/{value-typography-uAmWUAL1.js → value-typography-uSzzG9Gf.js} +32 -26
  417. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  418. package/dist/{workspace-DHeHv0qw.js → workspace-CC8Vchiu.js} +12 -12
  419. package/dist/{workspace-DHeHv0qw.js.map → workspace-CC8Vchiu.js.map} +1 -1
  420. package/docs/consumer-skill/examples/edit.tsx +3 -3
  421. package/docs/consumer-skill/references/agents-md.md +19 -19
  422. package/docs/consumer-skill/references/analytics.md +15 -0
  423. package/docs/consumer-skill/references/component-contracts.json +14724 -13057
  424. package/docs/consumer-skill/references/composition.md +21 -4
  425. package/docs/consumer-skill/references/design-contract.md +1 -0
  426. package/docs/consumer-skill/references/installation.md +51 -8
  427. package/docs/consumer-skill/references/integration.md +24 -1
  428. package/docs/consumer-skill/references/public-api.json +172 -34
  429. package/docs/consumer-skill/references/review.md +51 -11
  430. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  431. package/docs/consumer-skill/references/theming.md +7 -2
  432. package/docs/consumer-skill/references/tokens.json +1 -1
  433. package/docs/consumer-skill/scripts/composition-policy.mjs +144 -30
  434. package/docs/consumer-skill/scripts/setup-skills.mjs +46 -9
  435. package/package.json +4 -2
  436. package/templates/admin-shell-template.tsx +1 -2
  437. package/templates/customers-template.tsx +18 -16
  438. package/dist/accordion-B9MHG0cT.js.map +0 -1
  439. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  440. package/dist/auth-DTkkshS8.js.map +0 -1
  441. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  442. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  443. package/dist/combobox-BwzoXFSG.js +0 -884
  444. package/dist/combobox-BwzoXFSG.js.map +0 -1
  445. package/dist/comments-Dmpp0YIc.js.map +0 -1
  446. package/dist/data-display-BdgCAw8T.js.map +0 -1
  447. package/dist/date-picker-RlIzKom_.js +0 -1551
  448. package/dist/date-picker-RlIzKom_.js.map +0 -1
  449. package/dist/date-pickers-DY-CpXS1.js +0 -179
  450. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  451. package/dist/feedback-Dm4izqFn.js +0 -240
  452. package/dist/feedback-Dm4izqFn.js.map +0 -1
  453. package/dist/filters-DzgSJpMK.js.map +0 -1
  454. package/dist/form-field-BriWAXyg.js +0 -63
  455. package/dist/form-field-BriWAXyg.js.map +0 -1
  456. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  457. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  458. package/dist/header-DMMxG__r.js.map +0 -1
  459. package/dist/item-DjCcM18E.js.map +0 -1
  460. package/dist/layout.types-Cn7aUzJp.js +0 -20
  461. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  462. package/dist/mentions-0_4nWuI-.js.map +0 -1
  463. package/dist/message-g8p7eVtN.js +0 -128
  464. package/dist/message-g8p7eVtN.js.map +0 -1
  465. package/dist/navigation-C90-oQFq.js.map +0 -1
  466. package/dist/navigation-DaRjthVk.js.map +0 -1
  467. package/dist/number-CRU3kGuk.js.map +0 -1
  468. package/dist/overlays-BSgCtM2v.js.map +0 -1
  469. package/dist/popover-B85RenIl.js.map +0 -1
  470. package/dist/primitives-ByWgGUgt.js.map +0 -1
  471. package/dist/rich-text-Dth5E882.js +0 -78
  472. package/dist/rich-text-Dth5E882.js.map +0 -1
  473. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  474. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  475. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  476. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  477. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  478. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  479. package/dist/settings-Bar5wiSo.js +0 -167
  480. package/dist/settings-Bar5wiSo.js.map +0 -1
  481. package/dist/sidebar-D-JYMMbY.js +0 -686
  482. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  483. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  484. package/dist/table-B4TE7iOV.js.map +0 -1
  485. package/dist/table-CFOWY9pQ.js.map +0 -1
  486. package/dist/tabs-e7ko9S2o.js.map +0 -1
  487. package/dist/upload-BOW6U2tI.js.map +0 -1
  488. package/dist/utils-B6kKb8jB.js.map +0 -1
  489. package/dist/value-typography-uAmWUAL1.js.map +0 -1
@@ -81,6 +81,13 @@ application decision; confirm destructive commands in their handler. Use
81
81
  the compatible direct `actions` prop for non-command controls such as a period select. A back link,
82
82
  export and destructive command should not all inherit the same visual emphasis.
83
83
 
84
+ Scope this hierarchy to route commands. A local lookup or independently saved
85
+ settings form keeps its primary submit beside its fields or in its own footer;
86
+ it does not compete with the route's primary action. A whole-page editor can
87
+ deliberately expose one submit in its header. Preserve native form association
88
+ and validation instead of moving local saves to header DOM-lookup handlers just
89
+ to silence a primary-command warning.
90
+
84
91
  ```tsx
85
92
  <Page header={{
86
93
  title: 'Contacts',
@@ -346,8 +353,9 @@ PopoverContent type="display" owns substantive-content padding; type="menu" comp
346
353
  | size="sm" / "md" / "lg" | Supported control's scale; consult its declaration and provider precedence |
347
354
 
348
355
  Input, Button, Select, filter-facet triggers and badges share the default
349
- `rounded-radius` corner and corresponding heights; Card and popup shells use the
350
- larger `rounded-surface`. Omitted sizes inherit the provider; explicit sizes win.
356
+ `rounded-radius` corner; Card and popup shells use the larger `rounded-surface`.
357
+ Fields and actions use their corresponding height scales; badges remain content-sized.
358
+ Omitted sizes inherit the provider; explicit sizes win.
351
359
  Keep action/control roots equal when those controls adjoin. Compact menu rows,
352
360
  surface insets and control sizes remain independent; density does not change
353
361
  the corner.
@@ -355,7 +363,7 @@ Inset segmented children use the supported compound owner's same-height frame.
355
363
 
356
364
  PopoverContent defaults to display/default; Command defaults to compact. An explicit PopoverContent type controls anatomy; explicit inset controls padding and takes precedence over the type's inferred inset. Without type, compact implies menu, other insets imply display. Put type="menu" inset="flush" on PopoverContent for a headed searchable picker. Popover is the interaction root and receives no surface props. PopoverMenu already assembles that picker anatomy; use its declared selection/search props. ComboboxPopup is flush because ComboboxList owns its inset. Do not add another wrapper inset around a normal collection list.
357
365
 
358
- At shipped roots, rich display padding is 24px and compact collection shell padding is 8px; row inline padding is 12px; default row block padding is 8px and minimum height 32px. Compact/comfortable rows use 6/10px block padding and 32/40px minimum heights. Content can grow when it wraps. These are token-derived measurements, not app constants. Flush compact header/footer shell padding matches the list (4px inline). Header text and footer captions add a small xs step (4px) to the md band inset (8px), rather than the full row inset. Actions keep the 4px shell edge. Nested public slots do not repeat these insets.
366
+ At shipped roots, rich display padding is 24px and compact collection shell padding is 8px; row inline padding is 12px. Anchored collection rows use 6px block padding and a 32px minimum height by default. Compact/comfortable rows use 2/8px block padding and 28/36px minimum heights. These differ from Item/table row density recipes; content can grow when it wraps. These are token-derived measurements, not app constants. Flush compact header/footer bands match the list's 8px inset. Plain header text and footer captions add a small xs step (4px) to that md band inset, rather than the full row inset; leading controls and actions stay on the band edge. Nested public slots do not repeat these insets.
359
367
 
360
368
  Input frames and outline buttons share the input semantic token; collection dividers use border/60; focus uses ring separately and draws one indicator everywhere (a full-strength edge inside a soft halo). Equal responsibilities share recipes, while different semantic roles retain their own treatment. CommandInput keeps its existing onValueChange search contract and native refs; use the actual public Input through its default composition rather than restyling an unframed native field.
361
369
 
@@ -367,7 +375,10 @@ Overflow menus use ActionMenu's own trigger: the ⋯ glyph named "More actions",
367
375
 
368
376
  ## Migration
369
377
 
370
- Use exact themelia-react-ui paths. Presentation imports use blocks/<family>, replacing composed/<family>. Raw UI, Radix, cmdk and routers are not consumer foundations. Read installed types instead of assuming historical CSS-kit props.
378
+ Use exact `themelia-react-ui` paths. Presentation imports move from
379
+ `admin-ui-starter-kit/composed/<family>` to `themelia-react-ui/blocks/<family>`.
380
+ Read `MIGRATION.md` in the installed package for setup, tools and changed
381
+ defaults. Check the installed types when migrating a composition.
371
382
 
372
383
 
373
384
  ## Copy rhythm
@@ -607,6 +618,12 @@ narrow record measure, a status badge, route-level commands and section tabs in
607
618
  the header, and MetadataList facts in one framed Card, with no duplicated subject
608
619
  header or gutter.
609
620
 
621
+ Page's measure contains both header and body. On a mixed route with wide tables
622
+ and focused settings panels, keep Page's width stable across tabs. Constrain
623
+ only the focused panel with `Container maxWidth="md" gutter="none"`; Container
624
+ uses `gutter`, not a `padding` prop. An intentional responsive route width is
625
+ different from changing the header's width on every section selection.
626
+
610
627
  Compose HeaderUserMenu in topbar `slots.headerEnd` or a local toolbar, and
611
628
  SidebarNavigationUser in AppSidebar `slots.footer` when account access belongs
612
629
  in navigation. Use SidebarWorkspaceDropdown for workspace links, or add a
@@ -68,6 +68,7 @@ These base measurements use the shipped roots; spacing scales once through
68
68
  | Independent subject regions | `2xl`, 24px | Page body, TwoColumnLayout, resource, workspace and settings subjects |
69
69
  | Page header/body separation | `3xl`, 32px | Page composition |
70
70
  | Surface header/body/footer | Surface-derived regional gap | Card or overlay anatomy, independent of peer gaps |
71
+ | Live table outer / interior cell insets | Small surface / row inline tiers, 16 / 12px | Table head, body and footer cells; row density changes only block rhythm |
71
72
 
72
73
  Generic Stack and Grid keep their existing defaults; choose their semantic gap
73
74
  for the relationship they host. A Card's regional gap derives from its surface
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Choose the CSS path
4
4
 
5
- **Standalone compiled CSS:** import `themelia-react-ui/style.css` once in the app entry. It includes component styles and the documented public utility vocabulary; components work without a host reset, Tailwind processing or private-source scanning. It deliberately omits global preflight. This path does not generate arbitrary utility classes written in app source.
5
+ **Standalone compiled CSS:** import `themelia-react-ui/style.css` once in the app entry. It includes component styles, the documented public utility vocabulary, and static utility classes used by catalogue examples and shipped recipes/templates; components work without a host reset, Tailwind processing or private-source scanning. It deliberately omits global preflight. This path does not generate arbitrary utility classes written in app source.
6
6
 
7
7
  **Tailwind v4 application utilities:** when the app authors Tailwind classes, process this application stylesheet through its Tailwind v4 build integration:
8
8
 
@@ -14,8 +14,27 @@
14
14
 
15
15
  Tailwind supplies app-generated utilities and its layered preflight; theme.css makes the semantic and structural vocabulary available to that compilation. No package-private source scan is required. The default layer order is `theme, base, components, utilities`. Keep app resets inside `@layer base`; unlayered universal/tag resets outrank layered package styles regardless of import order. Do not blanket-reset `[data-slot]`, which also belongs to third-party and app markup. Put intentional scoped app overrides after these imports. See [integration](integration.md) for an optional app-owned reset and provider setup.
16
16
 
17
+ ## Set the application canvas
17
18
 
18
- Themelia 2.0.5 requires the official `@base-ui/react ^1.9.0` npm peer alongside
19
+ The host owns the document font, page background and inherited text color.
20
+ After importing package styles, set them in the application's stylesheet:
21
+
22
+ ```css
23
+ @layer base {
24
+ html { font-family: var(--font-sans); }
25
+ body { margin: 0; background: var(--background); color: var(--foreground); }
26
+ }
27
+ ```
28
+
29
+ These roles follow the active light/dark theme. They also give app markup and
30
+ intentionally inherited copy a page foreground. Components keep their own
31
+ essential fonts and box model; this host setup is independent of a reset or
32
+ Tailwind build and adds no stylesheet entry or dependency. Painted card and
33
+ popover surfaces still pair their own background/foreground roles.
34
+
35
+ ## Resolve the installed package
36
+
37
+ Themelia 2.0.6 requires the official `@base-ui/react ^1.9.0` npm peer alongside
19
38
  React, React DOM and Lucide. An app already using `^1.9.0` can retain that range.
20
39
  Remove any older private Base UI archive pin or override before refreshing the
21
40
  lockfile; dismissal translations and nested popup focus belong to Themelia's
@@ -107,27 +126,51 @@ each page or surface keeps one.
107
126
 
108
127
  ## Copy the complete skill bundle
109
128
 
110
- The package ships four focused capabilities, one compatibility/shared root and one agent definition. One copy of API/token/contract metadata, scripts and examples is shared by all three. Do not copy only an individual SKILL.md or duplicate the generated indexes into each skill.
129
+ The package ships four focused capabilities, one compatibility/shared root and one agent definition. One copy of API/token/contract metadata, scripts and examples is shared by all four. Do not copy only an individual SKILL.md or duplicate the generated indexes into each skill.
111
130
 
112
- When the user requests installation, run the bundled copy helper with their configured agent skills directory. For Codex the usual destination is `~/.codex/skills`; honor a configured alternative:
131
+ When the user requests installation, run the bundled copy helper with their configured agent skills directory. Codex supports project `.agents/skills` and user `~/.agents/skills`; honor an existing configured alternative:
113
132
 
114
133
  ```sh
115
- node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination "$HOME/.codex/skills"
116
- node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination "$HOME/.codex/skills"
134
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .agents/skills
135
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .agents/skills
117
136
  ```
118
137
 
119
138
  It copies `themelia-components`, `themelia-tokenization`, `themelia-composition`, `themelia-design`, and `themelia-react-ui-consumer` as real sibling directories. Rich templates are copied once under the shared directory. Markdown links are rebased for this installed layout; no symlinks or repository paths are required. Existing canonical/shared destinations are rejected before writing: preserve or move the previous complete bundle before an upgrade, then copy the release together. `--check` compares every expected asset after rebasing, so stale content with an unchanged development version is caught.
120
139
 
121
140
  ### Copy the designer agent
122
141
 
123
- `docs/consumer-skill/agents/themelia-ui-designer.md` is a Claude Code agent definition: a product designer that reads the records, writes a view spec, builds with public owners, renders 390 and 1440 wide in light and dark, scores the critique rubric and fixes. Its body reads skills and scripts through `node_modules/themelia-react-ui/...`, so it works wherever the skills were copied; other agents can follow it as a prompt. When the user requests it, copy it into the project's agents directory with the skills or on its own:
142
+ `docs/consumer-skill/agents/themelia-ui-designer.md` is a Markdown agent definition and portable prompt: a product designer that reads records, writes a view spec, builds with public owners, renders 390 and 1440 wide in light and dark, scores the critique rubric and fixes. `review` mode is read-only. Its body reads skills and scripts through `node_modules/themelia-react-ui/...`, so it works wherever the skills were copied. The copy inside the shared skill is a reference; registering a custom agent depends on the host:
143
+
144
+ | Host | Discoverable custom agent | Installer behavior |
145
+ | --- | --- | --- |
146
+ | Claude Code | `.claude/agents/themelia-ui-designer.md` | A destination ending in `.claude/skills` also copies/checks the sibling agent. `--no-agents` opts out; `--agents <dir>` overrides it. |
147
+ | Antigravity | `.agents/agents/themelia-ui-designer.md` | Pass `--agents .agents/agents` explicitly with `.agents/skills`. |
148
+ | Codex | `.codex/agents/<name>.toml` | The Markdown file remains a prompt/reference; this helper does not generate or register a Codex TOML agent. Follow the prompt directly or pass it to an available subagent. |
149
+
150
+ `.agents/skills` is shared by multiple hosts, so the installer does not infer a Markdown-agent destination from it. See the official [Claude Code subagent](https://code.claude.com/docs/en/sub-agents), [Antigravity subagent](https://antigravity.google/docs/subagents), [Codex subagent](https://learn.chatgpt.com/docs/agent-configuration/subagents) and [skill metadata](https://learn.chatgpt.com/docs/build-skills) documentation. `agents/openai.yaml` is optional skill metadata, separate from custom agent registration.
151
+
152
+ For Claude Code, copy the complete bundle and agent together:
153
+
154
+ ```sh
155
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .claude/skills
156
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .claude/skills
157
+ ```
158
+
159
+ For Antigravity, choose the agent destination explicitly:
160
+
161
+ ```sh
162
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .agents/skills --agents .agents/agents
163
+ node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .agents/skills --agents .agents/agents
164
+ ```
165
+
166
+ An agent-only copy remains supported:
124
167
 
125
168
  ```sh
126
169
  node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --agents .claude/agents
127
170
  node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --agents .claude/agents
128
171
  ```
129
172
 
130
- An existing `themelia-ui-designer.md` is never overwritten; move it before copying a newer release. Other agent files are left untouched.
173
+ An existing `themelia-ui-designer.md` is never overwritten; move it before copying a newer release. Other agent files are left untouched. Combined copies preflight both destinations before writing; a conflict leaves the other destination untouched. Use the same destination/opt-out flags for `--check` that you used for copying.
131
174
 
132
175
  The package retains `docs/consumer-skills/themelia-foundation/SKILL.md` and `themelia-forms/SKILL.md` as compatibility routers. They are not added by fresh copying. Existing legacy or unrelated skills are left untouched; review older agent routing separately when upgrading. Keep app policy outside the copied package bundle.
133
176
 
@@ -68,6 +68,18 @@ icon mode; its search button expands and focuses the field. Current
68
68
  matching chooses the most-specific href and exposes ancestor state separately
69
69
  to custom item renderers.
70
70
 
71
+ Pass the committed route as `currentUrl` so an open AppSidebar drawer closes
72
+ after navigation. SidebarNavigationRail falls back to its controlled `value`
73
+ when no URL is supplied. Use `closeDrawerOnNavigate={false}` on either owner
74
+ to keep its drawer open, or handle the proposal through
75
+ `onMobilePanelChange` when the provider's `mobilePanel` is controlled.
76
+ For SideNav, pass the app's pathname as `currentPath` on the server and
77
+ client and forward `aria-current` from its `renderLink` adapter.
78
+
79
+ `Header` and `HeaderBreadcrumbs` also work in standalone and stacked shells.
80
+ They show the built-in sidebar trigger and divider when a sidebar provider is
81
+ present. `HeaderBreadcrumbs` accepts a custom `triggerSlot` in either layout.
82
+
71
83
  For RTL, pair the native DOM direction with `DirectionProvider` from the same
72
84
  entrypoint. Native `dir` owns text flow and logical CSS geometry; the provider
73
85
  owns Base UI keyboard navigation and popup positioning. It does not set `dir`.
@@ -151,4 +163,15 @@ not evidence of an independent agent choosing the same composition.
151
163
 
152
164
  ## Form transport and router adapters
153
165
 
154
- Use [RHF workflows](rhf-workflows.md#transport-lifecycle) for frontend state with Inertia callback visits or TanStack async mutations. Await the complete transport before resetting dirty state or closing an overlay. The framework stays in the app. `renderLink` on AppSidebar/Page headers adapts the app router: forward href, children, className, accessible/native attributes and onClick; preserve modifier/new-tab behavior and invoke the supplied click handler so mobile navigation can close. Use the [typed shell recipe](../examples/app-layout.tsx) for the exact public renderLink type rather than inventing a router prop. React Router Link, Inertia Link and TanStack Link each need an app adapter matching their own installed version.
166
+ Use [RHF workflows](rhf-workflows.md#transport-lifecycle) for frontend state with Inertia callback visits or TanStack async mutations. Await the complete transport before resetting dirty state or closing an overlay. The framework stays in the app. For a `renderLink` router adapter, forward href, children, className, accessible/native attributes and onClick. Preserve modifier and new-tab behavior. Pass the updated route to AppSidebar after navigation so it can close its open drawer. The [typed shell recipe](../examples/app-layout.tsx) uses the public renderLink type.
167
+
168
+ Wrap compound controls directly in `FormField` to associate the visible
169
+ caption and supporting text. Inline time, dimension, coordinate and key/value
170
+ fields expose a named group. Popover time and upload fields name the picker
171
+ control. RichTextEditor carries the same association into HTML source mode.
172
+
173
+ Use `value`, `defaultValue` and `onValueChange` for Combobox and
174
+ AsyncResourceCombobox. MultiCombobox uses the plural forms. The older
175
+ `selectedValue` and `selectedValues` bindings still work. Use
176
+ `defaultSearchValue` and `defaultOpen` for initial state, or pass
177
+ `searchValue` and `open` to control it.
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "discoveryVersion": 1,
4
4
  "package": "themelia-react-ui",
5
- "version": "2.0.5",
5
+ "version": "2.0.6",
6
6
  "stylesheets": [
7
7
  "themelia-react-ui/style.css",
8
8
  "themelia-react-ui/theme.css",
@@ -2329,14 +2329,14 @@
2329
2329
  "layer": "base",
2330
2330
  "responsibility": "Base family: Card checkbox group; Card radio group; Checkbox; Choice inputs overview; List radio group; Pill radio group; Select; Switch; Switch card; Toggle field.",
2331
2331
  "jobs": [
2332
+ "CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set.",
2333
+ "SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target.",
2332
2334
  "The user picks from a known set of options, including a binary on/off.",
2333
- "Use Card checkbox group in an admin interface.",
2334
2335
  "Use Card radio group in an admin interface.",
2335
2336
  "Use Checkbox in an admin interface.",
2336
2337
  "Use List radio group in an admin interface.",
2337
2338
  "Use Pill radio group in an admin interface.",
2338
2339
  "Use Select in an admin interface.",
2339
- "Use Switch card in an admin interface.",
2340
2340
  "Use Switch in an admin interface.",
2341
2341
  "Use Toggle field in an admin interface."
2342
2342
  ],
@@ -2403,12 +2403,39 @@
2403
2403
  },
2404
2404
  {
2405
2405
  "title": "Card checkbox group",
2406
- "description": "Multi-select visual choices rendered as cards.",
2407
- "chooseWhen": [],
2408
- "avoidWhen": [],
2406
+ "description": "CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set.",
2407
+ "chooseWhen": [
2408
+ "CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set."
2409
+ ],
2410
+ "avoidWhen": [
2411
+ "A single boolean setting needs SwitchCard, ToggleField, Switch or Checkbox.",
2412
+ "Unrelated flags have independent meaning and lifecycle; give each its own boolean control."
2413
+ ],
2409
2414
  "appOwned": [],
2415
+ "composition": {
2416
+ "mappings": [
2417
+ {
2418
+ "symbol": "CardCheckboxGroup",
2419
+ "roles": [
2420
+ "multiple-choice"
2421
+ ],
2422
+ "kind": "content",
2423
+ "placement": "region",
2424
+ "surface": "self"
2425
+ }
2426
+ ],
2427
+ "owns": [
2428
+ "Option-card targets, selection markers and responsive columns",
2429
+ "Selected-values array and controlled/uncontrolled interaction"
2430
+ ],
2431
+ "parentOwns": [
2432
+ "Comparable option records and selected value keys",
2433
+ "onValueChange persistence, validation and domain meaning"
2434
+ ],
2435
+ "embedded": "Choose from the domain value shape and option meaning rather than an arbitrary minimum count. A filtered or permission-limited real choice set can contain one item."
2436
+ },
2410
2437
  "jobs": [
2411
- "Use Card checkbox group in an admin interface."
2438
+ "CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set."
2412
2439
  ],
2413
2440
  "tags": [
2414
2441
  "base",
@@ -2436,7 +2463,9 @@
2436
2463
  ]
2437
2464
  }
2438
2465
  ],
2439
- "alternatives": []
2466
+ "alternatives": [
2467
+ "themelia-react-ui/base/choice-inputs"
2468
+ ]
2440
2469
  },
2441
2470
  {
2442
2471
  "title": "Card radio group",
@@ -2662,12 +2691,39 @@
2662
2691
  },
2663
2692
  {
2664
2693
  "title": "Switch card",
2665
- "description": "Prominent card-shaped boolean setting with supporting copy and icon.",
2666
- "chooseWhen": [],
2667
- "avoidWhen": [],
2694
+ "description": "SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target.",
2695
+ "chooseWhen": [
2696
+ "SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target."
2697
+ ],
2698
+ "avoidWhen": [
2699
+ "A dense form needs a compact Switch, Checkbox or ToggleField.",
2700
+ "The value is a selection of items from a comparable option set; use a choice group."
2701
+ ],
2668
2702
  "appOwned": [],
2703
+ "composition": {
2704
+ "mappings": [
2705
+ {
2706
+ "symbol": "SwitchCard",
2707
+ "roles": [
2708
+ "boolean-setting"
2709
+ ],
2710
+ "kind": "content",
2711
+ "placement": "region",
2712
+ "surface": "self"
2713
+ }
2714
+ ],
2715
+ "owns": [
2716
+ "Framed setting row and accessible control label",
2717
+ "Single-toggle pointer and keyboard interaction"
2718
+ ],
2719
+ "parentOwns": [
2720
+ "Boolean value/defaultValue and onValueChange callback",
2721
+ "Persistence, disabled and validation state"
2722
+ ],
2723
+ "embedded": "Use the boolean value channel directly; no one-element selected-values array or duplicate outer field label is needed."
2724
+ },
2669
2725
  "jobs": [
2670
- "Use Switch card in an admin interface."
2726
+ "SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target."
2671
2727
  ],
2672
2728
  "tags": [
2673
2729
  "base",
@@ -2695,7 +2751,9 @@
2695
2751
  ]
2696
2752
  }
2697
2753
  ],
2698
- "alternatives": []
2754
+ "alternatives": [
2755
+ "themelia-react-ui/base/choice-inputs"
2756
+ ]
2699
2757
  },
2700
2758
  {
2701
2759
  "title": "Toggle field",
@@ -3957,6 +4015,7 @@
3957
4015
  "EmptyTitleProps",
3958
4016
  "ErrorState",
3959
4017
  "ErrorStateProps",
4018
+ "ErrorStateStrings",
3960
4019
  "ErrorStateVariant",
3961
4020
  "LoadingState",
3962
4021
  "LoadingStateProps",
@@ -3974,6 +4033,7 @@
3974
4033
  "ProgressTrackProps",
3975
4034
  "ProgressValue",
3976
4035
  "ProgressValueProps",
4036
+ "defaultErrorStateStrings",
3977
4037
  "defaultProgressStrings"
3978
4038
  ],
3979
4039
  "optionalPeers": [],
@@ -4377,13 +4437,13 @@
4377
4437
  "A label, editable control, and hint or error form one accessible field row.",
4378
4438
  "Build an application-owned validated form with consistent field and action presentation.",
4379
4439
  "Editable values need canonical field controls, field chrome, grouped choices, uploads, or form-state recipes.",
4440
+ "FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor.",
4380
4441
  "Related form fields need one titled section with optional actions and footer.",
4442
+ "SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine.",
4381
4443
  "Use Controlled form field in an admin interface.",
4382
4444
  "Use Dirty state banner in an admin interface.",
4383
4445
  "Use Error summary in an admin interface.",
4384
- "Use Form actions bar in an admin interface.",
4385
- "Use Operation password form in an admin interface.",
4386
- "Use Submit state button in an admin interface."
4446
+ "Use Operation password form in an admin interface."
4387
4447
  ],
4388
4448
  "tags": [
4389
4449
  "base",
@@ -4572,12 +4632,46 @@
4572
4632
  },
4573
4633
  {
4574
4634
  "title": "Form actions bar",
4575
- "description": "Responsive leading and trailing action chrome for form workflows.",
4576
- "chooseWhen": [],
4577
- "avoidWhen": [],
4635
+ "description": "FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor.",
4636
+ "chooseWhen": [
4637
+ "FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor."
4638
+ ],
4639
+ "avoidWhen": [
4640
+ "A padded Card or FormSection footer already owns the inset and divider; pass action buttons directly to that footer.",
4641
+ "A compact form needs only a local SubmitStateButton beside its fields."
4642
+ ],
4578
4643
  "appOwned": [],
4644
+ "composition": {
4645
+ "mappings": [
4646
+ {
4647
+ "symbol": "FormActionsBar",
4648
+ "roles": [
4649
+ "form-actions"
4650
+ ],
4651
+ "kind": "content",
4652
+ "placement": "region",
4653
+ "surface": "self",
4654
+ "slots": [
4655
+ "leading",
4656
+ "trailing",
4657
+ "children"
4658
+ ]
4659
+ }
4660
+ ],
4661
+ "owns": [
4662
+ "Top divider, opaque background and shared surface inset",
4663
+ "Parent-width action wrapping and optional sticky positioning",
4664
+ "Leading status and trailing actions; trailing takes precedence over children"
4665
+ ],
4666
+ "parentOwns": [
4667
+ "Native form, validation and submission lifecycle",
4668
+ "Action buttons and pending, dirty, cancel and accepted state"
4669
+ ],
4670
+ "page": "Place at the end of the form. In Card padding=\"none\", use flat FormSections with ordinary body insets followed by this edge-to-edge bar.",
4671
+ "embedded": "Card.footerSlot and FormSection.footer already own footer geometry. Put SubmitStateButton or an action row directly in those slots; review custom hosts before nesting another bar."
4672
+ },
4579
4673
  "jobs": [
4580
- "Use Form actions bar in an admin interface."
4674
+ "FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor."
4581
4675
  ],
4582
4676
  "tags": [
4583
4677
  "base",
@@ -4609,7 +4703,10 @@
4609
4703
  ]
4610
4704
  }
4611
4705
  ],
4612
- "alternatives": []
4706
+ "alternatives": [
4707
+ "themelia-react-ui/base/cards",
4708
+ "themelia-react-ui/base/forms"
4709
+ ]
4613
4710
  },
4614
4711
  {
4615
4712
  "title": "Form field",
@@ -4694,7 +4791,7 @@
4694
4791
  "Gaps between separate form subjects"
4695
4792
  ],
4696
4793
  "page": "Use ordinary section insets in an unpadded page or layout region.",
4697
- "embedded": "Inside a padded Card, use surface=\"flat\" padding=\"none\" so the parent supplies the single inset."
4794
+ "embedded": "Inside a padded Card, use surface=\"flat\" padding=\"none\" so the parent supplies the single inset. A flat section in a zero-padding Card keeps its ordinary body inset. Choose each section from its own parent; do not flatten independent page sections to match an embedded sibling."
4698
4795
  },
4699
4796
  "jobs": [
4700
4797
  "Related form fields need one titled section with optional actions and footer."
@@ -4769,12 +4866,42 @@
4769
4866
  },
4770
4867
  {
4771
4868
  "title": "Submit state button",
4772
- "description": "Submit control that resolves loading and pristine form states.",
4773
- "chooseWhen": [],
4774
- "avoidWhen": [],
4869
+ "description": "SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine.",
4870
+ "chooseWhen": [
4871
+ "SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine."
4872
+ ],
4873
+ "avoidWhen": [
4874
+ "The command does not submit a form; use Button with an explicit type and callback."
4875
+ ],
4775
4876
  "appOwned": [],
4877
+ "composition": {
4878
+ "mappings": [
4879
+ {
4880
+ "symbol": "SubmitStateButton",
4881
+ "roles": [
4882
+ "form-submit"
4883
+ ],
4884
+ "kind": "content",
4885
+ "placement": "region",
4886
+ "surface": "none",
4887
+ "slots": [
4888
+ "children"
4889
+ ]
4890
+ }
4891
+ ],
4892
+ "owns": [
4893
+ "Button geometry, pending state and default submit type",
4894
+ "Default primary tone and optional pristine disabling"
4895
+ ],
4896
+ "parentOwns": [
4897
+ "Native form association, validation and async transport",
4898
+ "submitting and dirty state; accepted values and error feedback"
4899
+ ],
4900
+ "page": "Keep the submit with its task-local form. Independent forms can each own a primary submit; a single full-page editor can deliberately use one header submit.",
4901
+ "embedded": "Use directly in Card.footerSlot or FormSection.footer, or in FormActionsBar trailing. The pending prop is submitting, not loading."
4902
+ },
4776
4903
  "jobs": [
4777
- "Use Submit state button in an admin interface."
4904
+ "SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine."
4778
4905
  ],
4779
4906
  "tags": [
4780
4907
  "base",
@@ -4802,7 +4929,10 @@
4802
4929
  ]
4803
4930
  }
4804
4931
  ],
4805
- "alternatives": []
4932
+ "alternatives": [
4933
+ "themelia-react-ui/base/buttons",
4934
+ "themelia-react-ui/base/forms"
4935
+ ]
4806
4936
  },
4807
4937
  {
4808
4938
  "title": "Validated form",
@@ -4877,7 +5007,6 @@
4877
5007
  "ControlledFormField",
4878
5008
  "DirtyStateBanner",
4879
5009
  "ErrorSummary",
4880
- "FormActionsBar",
4881
5010
  "SubmitStateButton"
4882
5011
  ],
4883
5012
  "references": [
@@ -11013,6 +11142,9 @@
11013
11142
  "formatMetricValue",
11014
11143
  "resolveTrend"
11015
11144
  ],
11145
+ "deprecated": {
11146
+ "MetricColorScheme": "Use the shared semantic tone through the tone prop."
11147
+ },
11016
11148
  "optionalPeers": [
11017
11149
  "recharts"
11018
11150
  ],
@@ -11252,14 +11384,14 @@
11252
11384
  ],
11253
11385
  "owns": [
11254
11386
  "Chart title and footer anatomy",
11255
- "ChartContainer configuration and content region"
11387
+ "ChartContainer around children with the required config; do not add a duplicate container"
11256
11388
  ],
11257
11389
  "parentOwns": [
11258
11390
  "Surface framing and insets unless explicitly enabled",
11259
- "Page or dashboard placement"
11391
+ "Page/dashboard placement, series, axes and legend or direct labels"
11260
11392
  ],
11261
- "page": "Place chart subjects in a Grid or layout column with deliberate peer gaps.",
11262
- "embedded": "Keep the default card-free presentation inside an existing Card; opt into a surface at the composition boundary."
11393
+ "page": "Place chart subjects in a Grid or layout column with deliberate peer gaps. Bind series to config keys through var(--color-<key>); multi-series charts can use ChartLegend with ChartLegendContent inside the Recharts chart or accessible direct labels.",
11394
+ "embedded": "Keep the default card-free presentation inside an existing Card; opt into a surface at the composition boundary. Footer is supporting caption/actions; substantial tables and disclosures belong in a peer or body region rather than the chart footer."
11263
11395
  },
11264
11396
  "jobs": [
11265
11397
  "A custom chart needs shared title, description, action and footer regions."
@@ -18221,6 +18353,9 @@
18221
18353
  "useMentions",
18222
18354
  "useMentionsSearch"
18223
18355
  ],
18356
+ "deprecated": {
18357
+ "splitHtmlByMentions": "Render mentions within the original HTML tree with MentionContent."
18358
+ },
18224
18359
  "optionalPeers": [],
18225
18360
  "layer": "features",
18226
18361
  "responsibility": "Features family: Mentions.",
@@ -18269,7 +18404,8 @@
18269
18404
  "symbols": [
18270
18405
  "MentionInlineSuggestions",
18271
18406
  "MentionPicker",
18272
- "MentionChip"
18407
+ "MentionChip",
18408
+ "MentionContent"
18273
18409
  ]
18274
18410
  }
18275
18411
  ],
@@ -19517,7 +19653,8 @@
19517
19653
  {
19518
19654
  "title": "API",
19519
19655
  "symbols": [
19520
- "RichTextEditor"
19656
+ "RichTextEditor",
19657
+ "FormRichTextEditor"
19521
19658
  ]
19522
19659
  }
19523
19660
  ],
@@ -19750,6 +19887,7 @@
19750
19887
  "CellValueKind",
19751
19888
  "CellValueProps",
19752
19889
  "CellValueTuple",
19890
+ "ColumnDef",
19753
19891
  "ColumnFiltersHandler",
19754
19892
  "ColumnGroup",
19755
19893
  "ColumnVisibilityHandler",