themelia-react-ui 2.0.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (968) hide show
  1. package/CHANGELOG.md +326 -0
  2. package/MIGRATION.md +858 -0
  3. package/README.md +35 -24
  4. package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
  5. package/dist/accordion-DNVqwEIC.js.map +1 -0
  6. package/dist/action-menu-D5343RwT.js +286 -0
  7. package/dist/action-menu-D5343RwT.js.map +1 -0
  8. package/dist/ai-artifact-otrz9ZwS.js +1214 -0
  9. package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
  10. package/dist/anchored-positioning-1U_eBFNx.js +9 -0
  11. package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
  12. package/dist/app-shell-CPN30Nb1.js +372 -0
  13. package/dist/app-shell-CPN30Nb1.js.map +1 -0
  14. package/dist/{attachment-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
  15. package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
  16. package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
  17. package/dist/auth-g_oUTDDC.js.map +1 -0
  18. package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
  19. package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
  20. package/dist/{badge-xIiV_E7f.js → badge-oGiXblW7.js} +8 -9
  21. package/dist/badge-oGiXblW7.js.map +1 -0
  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 +2 -2
  29. package/dist/base/cards.js +3 -3
  30. package/dist/base/carousel.js +11 -11
  31. package/dist/base/carousel.js.map +1 -1
  32. package/dist/base/cascader.js +1 -1
  33. package/dist/base/chart.js +1 -1
  34. package/dist/base/choice-inputs.js +2 -2
  35. package/dist/base/code-block.js +1 -1
  36. package/dist/base/combobox.js +1 -1
  37. package/dist/base/command.js +1 -1
  38. package/dist/base/copyable.js +1 -1
  39. package/dist/base/date-pickers.js +2 -2
  40. package/dist/base/display.js +7 -7
  41. package/dist/base/feedback.js +4 -4
  42. package/dist/base/forms-numeric.js +2 -2
  43. package/dist/base/forms.js +2 -2
  44. package/dist/base/inline-edit.js +13 -13
  45. package/dist/base/inline-edit.js.map +1 -1
  46. package/dist/base/item.js +1 -1
  47. package/dist/base/media-gallery.js +203 -2
  48. package/dist/base/media-gallery.js.map +1 -0
  49. package/dist/base/metadata-list.js +1 -1
  50. package/dist/base/navigation.js +7 -7
  51. package/dist/base/popover-menu.js +1 -1
  52. package/dist/base/popover.js +1 -1
  53. package/dist/base/qr-code.js +32 -22
  54. package/dist/base/qr-code.js.map +1 -1
  55. package/dist/base/repeaters.js +208 -198
  56. package/dist/base/repeaters.js.map +1 -1
  57. package/dist/base/sidebar.js +2 -2
  58. package/dist/base/signature-pad.js +14 -14
  59. package/dist/base/signature-pad.js.map +1 -1
  60. package/dist/base/skeleton.js +1 -1
  61. package/dist/base/spinner.js +8 -14
  62. package/dist/base/spinner.js.map +1 -1
  63. package/dist/base/structure.js +1 -1
  64. package/dist/base/table.js +1 -1
  65. package/dist/base/text-inputs.js +3 -3
  66. package/dist/base/toaster.js +2 -2
  67. package/dist/base/tree.js +2 -2
  68. package/dist/base/upload-queue.js +303 -2
  69. package/dist/base/upload-queue.js.map +1 -0
  70. package/dist/base/upload.js +3 -4
  71. package/dist/base/value-inputs.js +1 -1
  72. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
  73. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
  74. package/dist/blocks/admin.js +242 -228
  75. package/dist/blocks/admin.js.map +1 -1
  76. package/dist/blocks/ai.js +398 -354
  77. package/dist/blocks/ai.js.map +1 -1
  78. package/dist/blocks/analytics/charts.js +1022 -0
  79. package/dist/blocks/analytics/charts.js.map +1 -0
  80. package/dist/blocks/analytics/usage-card.js +1 -1
  81. package/dist/blocks/analytics.js +173 -1392
  82. package/dist/blocks/analytics.js.map +1 -1
  83. package/dist/blocks/collaboration.js +1 -1
  84. package/dist/blocks/commerce/receipt.js +1 -1
  85. package/dist/blocks/commerce.js +1533 -1399
  86. package/dist/blocks/commerce.js.map +1 -1
  87. package/dist/blocks/data-display.js +2 -3
  88. package/dist/blocks/onboarding.js +91 -82
  89. package/dist/blocks/onboarding.js.map +1 -1
  90. package/dist/blocks/planning.js +25 -25
  91. package/dist/blocks/planning.js.map +1 -1
  92. package/dist/blocks/timelines.js +2 -2
  93. package/dist/breadcrumbs-CQ9JSlez.js +136 -0
  94. package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
  95. package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
  96. package/dist/button-rd6FiHfQ.js.map +1 -0
  97. package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
  98. package/dist/buttons-pZVgPTZn.js.map +1 -0
  99. package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
  100. package/dist/{cards-rNX1M4Xn.js.map → cards-CgWyqvgZ.js.map} +1 -1
  101. package/dist/cascader-Cf05pwaq.js +444 -0
  102. package/dist/cascader-Cf05pwaq.js.map +1 -0
  103. package/dist/{chart-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
  104. package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
  105. package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
  106. package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
  107. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
  108. package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
  109. package/dist/{code-block-BzmM9Eig.js → code-block-BrLD7mCi.js} +44 -60
  110. package/dist/code-block-BrLD7mCi.js.map +1 -0
  111. package/dist/collapsible-CRCCg_bO.js +80 -0
  112. package/dist/collapsible-CRCCg_bO.js.map +1 -0
  113. package/dist/{collection-content-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
  114. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-D7SoDlYd.js.map} +1 -1
  115. package/dist/combobox-Dl6f6kHz.js +362 -0
  116. package/dist/combobox-Dl6f6kHz.js.map +1 -0
  117. package/dist/combobox-DrDXtSSt.js +929 -0
  118. package/dist/combobox-DrDXtSSt.js.map +1 -0
  119. package/dist/command-CjZ2VzKC.js +432 -0
  120. package/dist/command-CjZ2VzKC.js.map +1 -0
  121. package/dist/comments-C2MZyRmh.js +1214 -0
  122. package/dist/comments-C2MZyRmh.js.map +1 -0
  123. package/dist/components/base/accordion/accordion.d.ts +11 -3
  124. package/dist/components/base/action-menu/action-menu.d.ts +11 -3
  125. package/dist/components/base/buttons/button.d.ts +2 -2
  126. package/dist/components/base/buttons/index.d.ts +1 -1
  127. package/dist/components/base/buttons/loader-button.d.ts +6 -15
  128. package/dist/components/base/cards/index.d.ts +1 -1
  129. package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
  130. package/dist/components/base/cards/smart-card.d.ts +0 -2
  131. package/dist/components/base/cards/smart-card.types.d.ts +12 -10
  132. package/dist/components/base/cascader/cascader.d.ts +8 -2
  133. package/dist/components/base/cascader/cascader.types.d.ts +24 -2
  134. package/dist/components/base/cascader/index.d.ts +1 -1
  135. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  136. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  137. package/dist/components/base/choice-inputs/switch.d.ts +1 -1
  138. package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
  139. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  140. package/dist/components/base/command/command.d.ts +1 -1
  141. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  142. package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
  143. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  144. package/dist/components/base/display/dialog.d.ts +3 -9
  145. package/dist/components/base/display/index.d.ts +2 -3
  146. package/dist/components/base/display/separator.d.ts +1 -1
  147. package/dist/components/base/feedback/alert.d.ts +2 -1
  148. package/dist/components/base/feedback/empty.d.ts +10 -2
  149. package/dist/components/base/feedback/state-display.d.ts +5 -1
  150. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  151. package/dist/components/base/forms/form-field.d.ts +7 -2
  152. package/dist/components/base/forms/workflow.d.ts +2 -2
  153. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  154. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  155. package/dist/components/base/forms-numeric/dimensions-input.d.ts +13 -18
  156. package/dist/components/base/forms-numeric/index.d.ts +3 -3
  157. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  158. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  159. package/dist/components/base/item/item.types.d.ts +6 -2
  160. package/dist/components/base/metadata-list/index.d.ts +1 -3
  161. package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
  162. package/dist/components/base/navigation/index.d.ts +2 -2
  163. package/dist/components/base/navigation/language-switcher.d.ts +17 -8
  164. package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
  165. package/dist/components/base/navigation/page-header/index.d.ts +1 -1
  166. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
  167. package/dist/components/base/navigation/pagination.d.ts +5 -5
  168. package/dist/components/base/popover/popover.recipes.d.ts +0 -1
  169. package/dist/components/base/qr-code/qr-code.d.ts +4 -0
  170. package/dist/components/base/repeaters/index.d.ts +1 -1
  171. package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
  172. package/dist/components/base/sheet/sheet.d.ts +6 -15
  173. package/dist/components/base/sidebar/index.d.ts +1 -6
  174. package/dist/components/base/sidebar/sidebar.d.ts +40 -10
  175. package/dist/components/base/skeleton/skeleton.d.ts +1 -1
  176. package/dist/components/base/structure/structure.types.d.ts +11 -2
  177. package/dist/components/base/text-inputs/index.d.ts +1 -1
  178. package/dist/components/base/tree/index.d.ts +1 -0
  179. package/dist/components/base/tree/tree.d.ts +2 -2
  180. package/dist/components/base/tree/tree.types.d.ts +7 -1
  181. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  182. package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
  183. package/dist/components/base/upload/image-upload.d.ts +4 -1
  184. package/dist/components/base/upload/index.d.ts +3 -9
  185. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
  186. package/dist/components/base/value-inputs/slider.d.ts +5 -2
  187. package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
  188. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
  189. package/dist/components/blocks/admin/index.d.ts +1 -1
  190. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
  191. package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
  192. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
  193. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
  194. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
  195. package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
  196. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
  197. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
  198. package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
  199. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
  200. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
  201. package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
  202. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  203. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
  204. package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
  205. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
  206. package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
  207. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
  208. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
  209. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  210. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
  211. package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
  212. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
  213. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
  214. package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
  215. package/dist/components/blocks/analytics/index.d.ts +17 -24
  216. package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
  217. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  218. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  219. package/dist/components/blocks/analytics/types.d.ts +13 -4
  220. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  221. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  222. package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
  223. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
  224. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
  225. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
  226. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  227. package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
  228. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
  229. package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
  230. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
  231. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  232. package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
  233. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  234. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
  235. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
  236. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
  237. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
  238. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
  239. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
  240. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
  241. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
  242. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
  243. package/dist/components/blocks/commerce/index.d.ts +8 -8
  244. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
  245. package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
  246. package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
  247. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
  248. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
  249. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
  250. package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
  251. package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
  252. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
  253. package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
  254. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  255. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
  256. package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
  257. package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
  258. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
  259. package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
  260. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  261. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
  262. package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
  263. package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
  264. package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
  265. package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
  266. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
  267. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
  268. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
  269. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
  270. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
  271. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
  272. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
  273. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
  274. package/dist/components/blocks/content-block-hooks.d.ts +22 -0
  275. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
  276. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
  277. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
  278. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
  279. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
  280. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
  281. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
  282. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
  283. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
  284. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
  285. package/dist/components/blocks/data-display/index.d.ts +0 -1
  286. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
  287. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
  288. package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
  289. package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
  290. package/dist/components/blocks/timelines/index.d.ts +2 -2
  291. package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
  292. package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
  293. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
  294. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
  295. package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
  296. package/dist/components/features/activities/activities.strings.d.ts +5 -3
  297. package/dist/components/features/activities/activities.types.d.ts +46 -22
  298. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
  299. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  300. package/dist/components/features/activities/index.d.ts +1 -1
  301. package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
  302. package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
  303. package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
  304. package/dist/components/features/activities/relative-time.d.ts +18 -0
  305. package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
  306. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
  307. package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
  308. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  309. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
  310. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
  311. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
  312. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
  313. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  314. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
  315. package/dist/components/features/appointment-calendar/index.d.ts +1 -1
  316. package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
  317. package/dist/components/features/async-preview/async-preview.d.ts +2 -2
  318. package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
  319. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
  320. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  321. package/dist/components/features/combobox/combobox.d.ts +12 -3
  322. package/dist/components/features/combobox/components/error-message.d.ts +3 -1
  323. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
  324. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  325. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  326. package/dist/components/features/combobox/index.d.ts +1 -1
  327. package/dist/components/features/combobox/types.d.ts +68 -37
  328. package/dist/components/features/comments/comments.strings.d.ts +6 -5
  329. package/dist/components/features/comments/comments.types.d.ts +40 -26
  330. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
  331. package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
  332. package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
  333. package/dist/components/features/data-view/data-view.types.d.ts +15 -2
  334. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  335. package/dist/components/features/email-composer/http.d.ts +2 -0
  336. package/dist/components/features/email-composer/strings.d.ts +17 -2
  337. package/dist/components/features/email-composer/types.d.ts +19 -2
  338. package/dist/components/features/email-composer/use-composer.d.ts +2 -78
  339. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
  340. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
  341. package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
  342. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
  343. package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
  344. package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
  345. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  346. package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
  347. package/dist/components/features/filters/filter-context.d.ts +9 -0
  348. package/dist/components/features/filters/filters.strings.d.ts +36 -3
  349. package/dist/components/features/filters/filters.types.d.ts +75 -8
  350. package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
  351. package/dist/components/features/filters/index.d.ts +2 -2
  352. package/dist/components/features/filters/operator-options.d.ts +25 -2
  353. package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
  354. package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
  355. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  356. package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
  357. package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
  358. package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
  359. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  360. package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
  361. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  362. package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
  363. package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
  364. package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
  365. package/dist/components/features/global-search/global-search.d.ts +7 -1
  366. package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
  367. package/dist/components/features/global-search/global-search.types.d.ts +30 -6
  368. package/dist/components/features/global-search/index.d.ts +1 -1
  369. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
  370. package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
  371. package/dist/components/features/kanban/index.d.ts +2 -2
  372. package/dist/components/features/kanban/kanban-context.d.ts +4 -0
  373. package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
  374. package/dist/components/features/kanban/kanban.d.ts +10 -1
  375. package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
  376. package/dist/components/features/kanban/kanban.types.d.ts +26 -0
  377. package/dist/components/features/map/map.d.ts +4 -0
  378. package/dist/components/features/map/place-autocomplete.d.ts +10 -1
  379. package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
  380. package/dist/components/features/media-library/media-library.d.ts +1 -1
  381. package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
  382. package/dist/components/features/media-library/media-library.types.d.ts +82 -9
  383. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  384. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
  385. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  386. package/dist/components/features/mentions/index.d.ts +1 -1
  387. package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
  388. package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
  389. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
  390. package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
  391. package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
  392. package/dist/components/features/mentions/utils/index.d.ts +0 -1
  393. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  394. package/dist/components/features/overlays/dialog.d.ts +1 -1
  395. package/dist/components/features/overlays/drawer.d.ts +1 -1
  396. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  397. package/dist/components/features/overlays/index.d.ts +2 -2
  398. package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
  399. package/dist/components/features/overlays/overlays.types.d.ts +27 -10
  400. package/dist/components/features/products/components/index.d.ts +0 -10
  401. package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
  402. package/dist/components/features/products/components/product-details-card.d.ts +1 -1
  403. package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
  404. package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
  405. package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
  406. package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
  407. package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
  408. package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
  409. package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
  410. package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
  411. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  412. package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
  413. package/dist/components/features/products/partials/product-surface.d.ts +15 -0
  414. package/dist/components/features/products/products.strings.d.ts +8 -0
  415. package/dist/components/features/products/products.types.d.ts +26 -8
  416. package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
  417. package/dist/components/features/resource/index.d.ts +2 -3
  418. package/dist/components/features/resource/resource.d.ts +2 -10
  419. package/dist/components/features/resource/resource.types.d.ts +7 -147
  420. package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
  421. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
  422. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
  423. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  424. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
  425. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  426. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
  427. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
  428. package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
  429. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
  430. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
  431. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  432. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +30 -4
  433. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
  434. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  435. package/dist/components/features/schema-form/schema-form.d.ts +1 -1
  436. package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
  437. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  438. package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
  439. package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
  440. package/dist/components/features/table/data-table.d.ts +1 -1
  441. package/dist/components/features/table/filter-bar.d.ts +1 -1
  442. package/dist/components/features/table/index.d.ts +1 -0
  443. package/dist/components/features/table/pagination.d.ts +1 -1
  444. package/dist/components/features/table/partials/cell-value.d.ts +1 -1
  445. package/dist/components/features/table/table-body.d.ts +1 -1
  446. package/dist/components/features/table/table-header.d.ts +1 -1
  447. package/dist/components/features/table/table-helpers.d.ts +37 -12
  448. package/dist/components/features/table/table-region.recipes.d.ts +11 -0
  449. package/dist/components/features/table/table-toolbar.d.ts +1 -1
  450. package/dist/components/features/table/table.strings.d.ts +4 -0
  451. package/dist/components/features/table/table.types.d.ts +91 -49
  452. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
  453. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
  454. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
  455. package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
  456. package/dist/components/layout/app-shell/index.d.ts +2 -2
  457. package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
  458. package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
  459. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  460. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  461. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  462. package/dist/components/layout/auth/auth-shell.d.ts +1 -1
  463. package/dist/components/layout/auth/auth.types.d.ts +0 -5
  464. package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
  465. package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
  466. package/dist/components/layout/header/header.types.d.ts +19 -8
  467. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
  468. package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
  469. package/dist/components/layout/header/partials/header-search.d.ts +1 -1
  470. package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
  471. package/dist/components/layout/layout.types.d.ts +6 -4
  472. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
  473. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
  474. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
  475. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  476. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  477. package/dist/components/layout/page/index.d.ts +2 -3
  478. package/dist/components/layout/page/page.strings.d.ts +12 -0
  479. package/dist/components/layout/page/page.types.d.ts +7 -110
  480. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  481. package/dist/components/layout/settings/index.d.ts +1 -1
  482. package/dist/components/layout/settings/settings.d.ts +4 -6
  483. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  484. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  485. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
  486. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  487. package/dist/components/layout/sidebar/index.d.ts +1 -1
  488. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
  489. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  490. package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
  491. package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
  492. package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
  493. package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
  494. package/dist/components/primitives/date.d.ts +22 -3
  495. package/dist/components/primitives/file-size.d.ts +8 -2
  496. package/dist/components/primitives/index.d.ts +1 -1
  497. package/dist/components/primitives/initials.d.ts +3 -1
  498. package/dist/components/primitives/link.d.ts +11 -3
  499. package/dist/components/primitives/money.d.ts +2 -2
  500. package/dist/components/primitives/number.d.ts +3 -2
  501. package/dist/components/typography/heading.d.ts +9 -3
  502. package/dist/components/typography/index.d.ts +1 -1
  503. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  504. package/dist/components/typography/text-link.d.ts +10 -3
  505. package/dist/components/ui/badge.d.ts +2 -4
  506. package/dist/components/ui/breadcrumb.d.ts +2 -3
  507. package/dist/components/ui/button.d.ts +8 -2
  508. package/dist/components/ui/collapsible.d.ts +1 -4
  509. package/dist/components/ui/command.d.ts +20 -18
  510. package/dist/components/ui/dialog.d.ts +3 -9
  511. package/dist/components/ui/empty.d.ts +2 -2
  512. package/dist/components/ui/input-group.d.ts +3 -3
  513. package/dist/components/ui/item.d.ts +3 -3
  514. package/dist/components/ui/popover.d.ts +3 -7
  515. package/dist/components/ui/sheet.d.ts +4 -12
  516. package/dist/components/ui/sidebar-state.d.ts +6 -1
  517. package/dist/components/ui/sidebar.d.ts +7 -4
  518. package/dist/components/ui/tabs.d.ts +2 -2
  519. package/dist/components/ui/toggle-group.d.ts +3 -3
  520. package/dist/components/ui/toggle.d.ts +2 -2
  521. package/dist/components/ui/tooltip.d.ts +1 -3
  522. package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
  523. package/dist/containers-BdfLTP4w.js.map +1 -0
  524. package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
  525. package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
  526. package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
  527. package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
  528. package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
  529. package/dist/data-display-CWe9SOYh.js.map +1 -0
  530. package/dist/date-3qsCE1ID.js +209 -0
  531. package/dist/date-3qsCE1ID.js.map +1 -0
  532. package/dist/date-picker-D1keJQIG.js +1617 -0
  533. package/dist/date-picker-D1keJQIG.js.map +1 -0
  534. package/dist/date-pickers-D8aJoeHc.js +185 -0
  535. package/dist/date-pickers-D8aJoeHc.js.map +1 -0
  536. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
  537. package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
  538. package/dist/display-VlmP1I0i.js.map +1 -0
  539. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
  540. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
  541. package/dist/dropzone-CHBNK3de.js +116 -0
  542. package/dist/dropzone-CHBNK3de.js.map +1 -0
  543. package/dist/features/activities.js +767 -700
  544. package/dist/features/activities.js.map +1 -1
  545. package/dist/features/ai-chat.js +280 -235
  546. package/dist/features/ai-chat.js.map +1 -1
  547. package/dist/features/appointment-calendar.js +430 -334
  548. package/dist/features/appointment-calendar.js.map +1 -1
  549. package/dist/features/async-preview.js +351 -265
  550. package/dist/features/async-preview.js.map +1 -1
  551. package/dist/features/combobox.js +2 -2
  552. package/dist/features/comments.js +1 -1
  553. package/dist/features/data-view.js +212 -151
  554. package/dist/features/data-view.js.map +1 -1
  555. package/dist/features/email-composer/engine.js +1 -1
  556. package/dist/features/email-composer.js +347 -313
  557. package/dist/features/email-composer.js.map +1 -1
  558. package/dist/features/event-calendar.js +501 -348
  559. package/dist/features/event-calendar.js.map +1 -1
  560. package/dist/features/filters.js +2 -2
  561. package/dist/features/global-search.js +250 -210
  562. package/dist/features/global-search.js.map +1 -1
  563. package/dist/features/kanban.js +280 -210
  564. package/dist/features/kanban.js.map +1 -1
  565. package/dist/features/map/style.css +15 -0
  566. package/dist/features/map.js +435 -404
  567. package/dist/features/map.js.map +1 -1
  568. package/dist/features/media-library.js +1745 -1195
  569. package/dist/features/media-library.js.map +1 -1
  570. package/dist/features/mentions.js +2 -2
  571. package/dist/features/overlays.js +2 -2
  572. package/dist/features/products.js +1862 -1759
  573. package/dist/features/products.js.map +1 -1
  574. package/dist/features/questionnaire.js +188 -168
  575. package/dist/features/questionnaire.js.map +1 -1
  576. package/dist/features/resource-assignment.js +223 -191
  577. package/dist/features/resource-assignment.js.map +1 -1
  578. package/dist/features/resource.js +55 -217
  579. package/dist/features/resource.js.map +1 -1
  580. package/dist/features/rich-text-editor.js +28 -19
  581. package/dist/features/rich-text-editor.js.map +1 -1
  582. package/dist/features/schema-form.js +380 -287
  583. package/dist/features/schema-form.js.map +1 -1
  584. package/dist/features/suggestions.js +90 -74
  585. package/dist/features/suggestions.js.map +1 -1
  586. package/dist/features/table.js +2 -2
  587. package/dist/features/theme-tweaker.js +718 -627
  588. package/dist/features/theme-tweaker.js.map +1 -1
  589. package/dist/feedback-DmqmXKLn.js +254 -0
  590. package/dist/feedback-DmqmXKLn.js.map +1 -0
  591. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
  592. package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
  593. package/dist/field-control-attributes-B6i335wr.js +18 -0
  594. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  595. package/dist/field-state-recipes-EtCxpEy3.js +18 -0
  596. package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
  597. package/dist/filters-BviMRMLS.js +2692 -0
  598. package/dist/filters-BviMRMLS.js.map +1 -0
  599. package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
  600. package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
  601. package/dist/form-field-BdfCwSoQ.js +74 -0
  602. package/dist/form-field-BdfCwSoQ.js.map +1 -0
  603. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
  604. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
  605. package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
  606. package/dist/forms-B8DzJnBN.js.map +1 -0
  607. package/dist/forms-numeric-DOBswjKj.js +992 -0
  608. package/dist/forms-numeric-DOBswjKj.js.map +1 -0
  609. package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
  610. package/dist/header-Cq3G0ZRP.js.map +1 -0
  611. package/dist/hooks/use-files.d.ts +2 -0
  612. package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
  613. package/dist/hooks-DHfeSMAO.js.map +1 -0
  614. package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
  615. package/dist/http-Cu-GPpss.js.map +1 -0
  616. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
  617. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
  618. package/dist/index.js +6 -6
  619. package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
  620. package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
  621. package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
  622. package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
  623. package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
  624. package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
  625. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
  626. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
  627. package/dist/item-GJ9mvCcg.js +279 -0
  628. package/dist/item-GJ9mvCcg.js.map +1 -0
  629. package/dist/layout/app-shell.js +1 -1
  630. package/dist/layout/auth.js +1 -1
  631. package/dist/layout/containers.js +1 -1
  632. package/dist/layout/header.js +1 -1
  633. package/dist/layout/hooks.js +1 -1
  634. package/dist/layout/navigation.js +1 -1
  635. package/dist/layout/page.js +2 -2
  636. package/dist/layout/settings.js +2 -2
  637. package/dist/layout/sidebar.js +3 -3
  638. package/dist/layout/workspace.js +1 -1
  639. package/dist/layout.js +12 -12
  640. package/dist/layout.types-DbtnyAtd.js +33 -0
  641. package/dist/layout.types-DbtnyAtd.js.map +1 -0
  642. package/dist/lib/anchored-positioning.d.ts +11 -0
  643. package/dist/lib/field-affordance-recipes.d.ts +10 -0
  644. package/dist/lib/field-control-attributes.d.ts +11 -0
  645. package/dist/lib/field-state-recipes.d.ts +8 -0
  646. package/dist/lib/focus-recipes.d.ts +7 -0
  647. package/dist/lib/format.d.ts +26 -0
  648. package/dist/lib/money-format.d.ts +6 -0
  649. package/dist/lib/motion-recipes.d.ts +6 -0
  650. package/dist/lib/surface-recipes.d.ts +33 -3
  651. package/dist/lib/theme-scope.d.ts +17 -1
  652. package/dist/lib/token-merge.generated.d.ts +19 -25
  653. package/dist/lib/ui-provider/index.d.ts +1 -1
  654. package/dist/lib/ui-provider/types.d.ts +5 -0
  655. package/dist/lib/use-controllable-state.d.ts +16 -0
  656. package/dist/lib/use-copy-feedback.d.ts +15 -0
  657. package/dist/lib/utils.js +1 -1
  658. package/dist/lib/variant-props.d.ts +9 -0
  659. package/dist/main-landmark-context-BAsyqp2I.js +11 -0
  660. package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
  661. package/dist/mentions-zz0ewNIq.js +670 -0
  662. package/dist/mentions-zz0ewNIq.js.map +1 -0
  663. package/dist/message-BiiVrRrm.js +138 -0
  664. package/dist/message-BiiVrRrm.js.map +1 -0
  665. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
  666. package/dist/metadata-list-G85roWjS.js.map +1 -0
  667. package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
  668. package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
  669. package/dist/navigation-C0Be5C3i.js +304 -0
  670. package/dist/navigation-C0Be5C3i.js.map +1 -0
  671. package/dist/navigation-CmqaQR_G.js +257 -0
  672. package/dist/navigation-CmqaQR_G.js.map +1 -0
  673. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  674. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  675. package/dist/number-NFWKIoiK.js +340 -0
  676. package/dist/number-NFWKIoiK.js.map +1 -0
  677. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
  678. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
  679. package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
  680. package/dist/overlays-D-gAIfPF.js.map +1 -0
  681. package/dist/page-D4pQhgSq.js +216 -0
  682. package/dist/page-D4pQhgSq.js.map +1 -0
  683. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
  684. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
  685. package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
  686. package/dist/pagination-BuSWw1US.js.map +1 -0
  687. package/dist/popover-BpMxbqEK.js +205 -0
  688. package/dist/popover-BpMxbqEK.js.map +1 -0
  689. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
  690. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
  691. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
  692. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
  693. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
  694. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
  695. package/dist/primitives-BlC1lXBr.js +447 -0
  696. package/dist/primitives-BlC1lXBr.js.map +1 -0
  697. package/dist/primitives.js +4 -4
  698. package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
  699. package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
  700. package/dist/receipt-CUf2Vegp.js +114 -0
  701. package/dist/receipt-CUf2Vegp.js.map +1 -0
  702. package/dist/rich-text-Cypm9__d.js +44 -0
  703. package/dist/rich-text-Cypm9__d.js.map +1 -0
  704. package/dist/rich-text-editor-Z6cQepsA.js +919 -0
  705. package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
  706. package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
  707. package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
  708. package/dist/rich-text-tree-DdKHIJx4.js +154 -0
  709. package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
  710. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
  711. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
  712. package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
  713. package/dist/separator-DaDe26sf.js.map +1 -0
  714. package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
  715. package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
  716. package/dist/services/actions/action-adapters.d.ts +5 -2
  717. package/dist/services/actions/index.d.ts +1 -1
  718. package/dist/services/actions.js +2 -2
  719. package/dist/services/actions.js.map +1 -1
  720. package/dist/settings-D5j_RJvT.js +160 -0
  721. package/dist/settings-D5j_RJvT.js.map +1 -0
  722. package/dist/sheet-B6j_BE9O.js +241 -0
  723. package/dist/sheet-B6j_BE9O.js.map +1 -0
  724. package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
  725. package/dist/sidebar-C-iQ_TJP.js.map +1 -0
  726. package/dist/sidebar-D5VO2W8S.js +715 -0
  727. package/dist/sidebar-D5VO2W8S.js.map +1 -0
  728. package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
  729. package/dist/skeleton-Cab_KgVo.js.map +1 -0
  730. package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
  731. package/dist/smart-card-C59z6KFO.js.map +1 -0
  732. package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
  733. package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
  734. package/dist/style.css +1 -1
  735. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
  736. package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
  737. package/dist/table-CSRUgpdK.js +180 -0
  738. package/dist/table-CSRUgpdK.js.map +1 -0
  739. package/dist/table-DdXDBsR_.js +1657 -0
  740. package/dist/table-DdXDBsR_.js.map +1 -0
  741. package/dist/tabs-WnHfV2pM.js +192 -0
  742. package/dist/tabs-WnHfV2pM.js.map +1 -0
  743. package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
  744. package/dist/text-inputs-ljyBYaCd.js.map +1 -0
  745. package/dist/theme.css +21 -5
  746. package/dist/timelines-mOmS9Eh3.js +479 -0
  747. package/dist/timelines-mOmS9Eh3.js.map +1 -0
  748. package/dist/tooltip-yjX-Uv-p.js +112 -0
  749. package/dist/tooltip-yjX-Uv-p.js.map +1 -0
  750. package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
  751. package/dist/tree-YpkxUG2Z.js.map +1 -0
  752. package/dist/typography/rich-text.js +1 -1
  753. package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
  754. package/dist/typography-C0dELqYV.js.map +1 -0
  755. package/dist/typography.js +1 -1
  756. package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
  757. package/dist/ui-provider-Bu1S-o96.js.map +1 -0
  758. package/dist/ui-provider.js +2 -2
  759. package/dist/upload-DMuMYJFT.js +875 -0
  760. package/dist/upload-DMuMYJFT.js.map +1 -0
  761. package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
  762. package/dist/usage-card-DDPki5P1.js.map +1 -0
  763. package/dist/use-controllable-state-BlP8SyBI.js +13 -0
  764. package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
  765. package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
  766. package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
  767. package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
  768. package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
  769. package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
  770. package/dist/utils-BVbAG2J6.js.map +1 -0
  771. package/dist/value-inputs-h5MwjGCo.js +982 -0
  772. package/dist/value-inputs-h5MwjGCo.js.map +1 -0
  773. package/dist/value-typography-D15uwfj-.js +154 -0
  774. package/dist/value-typography-D15uwfj-.js.map +1 -0
  775. package/dist/workspace-DIryPqBt.js +400 -0
  776. package/dist/workspace-DIryPqBt.js.map +1 -0
  777. package/docs/consumer-skill/SKILL.md +7 -0
  778. package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
  779. package/docs/consumer-skill/examples/analytics.tsx +1 -1
  780. package/docs/consumer-skill/examples/app-layout.tsx +3 -3
  781. package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
  782. package/docs/consumer-skill/examples/detail.tsx +3 -2
  783. package/docs/consumer-skill/examples/edit.tsx +3 -3
  784. package/docs/consumer-skill/examples/email-composer.tsx +1 -1
  785. package/docs/consumer-skill/examples/index-table.tsx +2 -2
  786. package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
  787. package/docs/consumer-skill/references/agents-md.md +27 -23
  788. package/docs/consumer-skill/references/analytics.md +33 -4
  789. package/docs/consumer-skill/references/building-views.md +213 -0
  790. package/docs/consumer-skill/references/catalogue.md +617 -0
  791. package/docs/consumer-skill/references/component-contracts.json +25852 -32067
  792. package/docs/consumer-skill/references/composition.md +42 -21
  793. package/docs/consumer-skill/references/design-contract.md +1 -0
  794. package/docs/consumer-skill/references/discovery.md +8 -5
  795. package/docs/consumer-skill/references/installation.md +59 -10
  796. package/docs/consumer-skill/references/integration.md +28 -5
  797. package/docs/consumer-skill/references/product-composition.md +2 -2
  798. package/docs/consumer-skill/references/public-api.json +726 -641
  799. package/docs/consumer-skill/references/review.md +57 -15
  800. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  801. package/docs/consumer-skill/references/screen-archetypes.md +2 -2
  802. package/docs/consumer-skill/references/theming.md +8 -3
  803. package/docs/consumer-skill/references/tokens.json +4 -4
  804. package/docs/consumer-skill/references/workflows.md +7 -7
  805. package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
  806. package/docs/consumer-skill/scripts/composition.mjs +4 -1
  807. package/docs/consumer-skill/scripts/discovery.mjs +3 -1
  808. package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
  809. package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
  810. package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
  811. package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
  812. package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
  813. package/package.json +12 -13
  814. package/templates/README.md +3 -2
  815. package/templates/admin-shell-template.tsx +50 -11
  816. package/templates/analytics-operations-template.tsx +20 -24
  817. package/templates/customers-template.tsx +30 -25
  818. package/templates/index.ts +2 -8
  819. package/templates/orders-template.tsx +28 -24
  820. package/templates/products-template.tsx +14 -4
  821. package/templates/user-permissions-template.tsx +11 -14
  822. package/dist/accordion-B9MHG0cT.js.map +0 -1
  823. package/dist/action-menu-Dr8K-ghE.js +0 -284
  824. package/dist/action-menu-Dr8K-ghE.js.map +0 -1
  825. package/dist/ai-artifact-C58tQcBy.js +0 -1185
  826. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  827. package/dist/anchored-positioning-DPnKTvNs.js +0 -6
  828. package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
  829. package/dist/app-shell-B_IuNWOo.js +0 -321
  830. package/dist/app-shell-B_IuNWOo.js.map +0 -1
  831. package/dist/auth-DTkkshS8.js.map +0 -1
  832. package/dist/badge-xIiV_E7f.js.map +0 -1
  833. package/dist/base/sheet.js +0 -3
  834. package/dist/breadcrumbs-J-K2kl4c.js +0 -129
  835. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  836. package/dist/button-S2Cubiiz.js.map +0 -1
  837. package/dist/buttons-BedGfygC.js.map +0 -1
  838. package/dist/cascader-B1MiqkBq.js +0 -439
  839. package/dist/cascader-B1MiqkBq.js.map +0 -1
  840. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  841. package/dist/code-block-BzmM9Eig.js.map +0 -1
  842. package/dist/collapsible-BkAI_XD4.js +0 -81
  843. package/dist/collapsible-BkAI_XD4.js.map +0 -1
  844. package/dist/combobox-BEx0vJgF.js +0 -362
  845. package/dist/combobox-BEx0vJgF.js.map +0 -1
  846. package/dist/combobox-BwzoXFSG.js +0 -884
  847. package/dist/combobox-BwzoXFSG.js.map +0 -1
  848. package/dist/command-CrlPIL6m.js +0 -425
  849. package/dist/command-CrlPIL6m.js.map +0 -1
  850. package/dist/comments-Dmpp0YIc.js +0 -1169
  851. package/dist/comments-Dmpp0YIc.js.map +0 -1
  852. package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
  853. package/dist/components/base/display/content-block.d.ts +0 -75
  854. package/dist/components/base/display/content-block.strings.d.ts +0 -5
  855. package/dist/components/base/sheet/index.d.ts +0 -29
  856. package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
  857. package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
  858. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
  859. package/dist/components/features/resource/resource.strings.d.ts +0 -12
  860. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
  861. package/dist/components/features/sync/index.d.ts +0 -26
  862. package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
  863. package/dist/components/features/sync/sync.strings.d.ts +0 -18
  864. package/dist/components/features/sync/sync.types.d.ts +0 -44
  865. package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
  866. package/dist/components/ui/slot.d.ts +0 -6
  867. package/dist/containers-CIxwbZt5.js.map +0 -1
  868. package/dist/data-display-BdgCAw8T.js.map +0 -1
  869. package/dist/date-Cq8ioE4o.js +0 -144
  870. package/dist/date-Cq8ioE4o.js.map +0 -1
  871. package/dist/date-picker-RlIzKom_.js +0 -1551
  872. package/dist/date-picker-RlIzKom_.js.map +0 -1
  873. package/dist/date-pickers-DY-CpXS1.js +0 -179
  874. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  875. package/dist/display-KsZLw9Ov.js.map +0 -1
  876. package/dist/features/sync.js +0 -142
  877. package/dist/features/sync.js.map +0 -1
  878. package/dist/feedback-Dm4izqFn.js +0 -240
  879. package/dist/feedback-Dm4izqFn.js.map +0 -1
  880. package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
  881. package/dist/field-state-recipes-BVA2CWHo.js +0 -12
  882. package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
  883. package/dist/filters-DzgSJpMK.js +0 -2257
  884. package/dist/filters-DzgSJpMK.js.map +0 -1
  885. package/dist/focus-recipes-B653VaLq.js.map +0 -1
  886. package/dist/form-field-BriWAXyg.js +0 -63
  887. package/dist/form-field-BriWAXyg.js.map +0 -1
  888. package/dist/forms-C0RGnJTe.js.map +0 -1
  889. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  890. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  891. package/dist/header-DMMxG__r.js.map +0 -1
  892. package/dist/hooks-DB6CJ4MR.js.map +0 -1
  893. package/dist/http-D_6rOnzU.js.map +0 -1
  894. package/dist/item-DjCcM18E.js +0 -277
  895. package/dist/item-DjCcM18E.js.map +0 -1
  896. package/dist/layout.types-Cn7aUzJp.js +0 -20
  897. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  898. package/dist/media-gallery-C-vChPmE.js +0 -203
  899. package/dist/media-gallery-C-vChPmE.js.map +0 -1
  900. package/dist/mentions-0_4nWuI-.js +0 -570
  901. package/dist/mentions-0_4nWuI-.js.map +0 -1
  902. package/dist/message-g8p7eVtN.js +0 -128
  903. package/dist/message-g8p7eVtN.js.map +0 -1
  904. package/dist/metadata-list-C3MkU-Om.js.map +0 -1
  905. package/dist/motion-recipes-DitYv6P2.js.map +0 -1
  906. package/dist/navigation-C90-oQFq.js +0 -255
  907. package/dist/navigation-C90-oQFq.js.map +0 -1
  908. package/dist/navigation-DaRjthVk.js +0 -288
  909. package/dist/navigation-DaRjthVk.js.map +0 -1
  910. package/dist/number-CRU3kGuk.js +0 -354
  911. package/dist/number-CRU3kGuk.js.map +0 -1
  912. package/dist/overlays-BSgCtM2v.js.map +0 -1
  913. package/dist/page-DUUKDAjo.js +0 -331
  914. package/dist/page-DUUKDAjo.js.map +0 -1
  915. package/dist/pagination-CgCjElfu.js.map +0 -1
  916. package/dist/popover-B85RenIl.js +0 -201
  917. package/dist/popover-B85RenIl.js.map +0 -1
  918. package/dist/primitives-ByWgGUgt.js +0 -380
  919. package/dist/primitives-ByWgGUgt.js.map +0 -1
  920. package/dist/receipt-tOc7B3hw.js +0 -116
  921. package/dist/receipt-tOc7B3hw.js.map +0 -1
  922. package/dist/rich-text-Dth5E882.js +0 -78
  923. package/dist/rich-text-Dth5E882.js.map +0 -1
  924. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  925. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  926. package/dist/rich-text-editor-toolbar-laT3tpBT.js +0 -98
  927. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  928. package/dist/sanitize-html-DsQmI48u.js +0 -92
  929. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  930. package/dist/separator-Ct_WSWTJ.js.map +0 -1
  931. package/dist/settings-Bar5wiSo.js +0 -167
  932. package/dist/settings-Bar5wiSo.js.map +0 -1
  933. package/dist/sheet-BGPERY55.js +0 -250
  934. package/dist/sheet-BGPERY55.js.map +0 -1
  935. package/dist/sidebar-D-JYMMbY.js +0 -686
  936. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  937. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  938. package/dist/skeleton-BapcJd9C.js.map +0 -1
  939. package/dist/slot-CLF9kLrS.js +0 -16
  940. package/dist/slot-CLF9kLrS.js.map +0 -1
  941. package/dist/smart-card-CW0hjetE.js.map +0 -1
  942. package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
  943. package/dist/table-B4TE7iOV.js +0 -175
  944. package/dist/table-B4TE7iOV.js.map +0 -1
  945. package/dist/table-CFOWY9pQ.js +0 -1536
  946. package/dist/table-CFOWY9pQ.js.map +0 -1
  947. package/dist/tabs-e7ko9S2o.js +0 -191
  948. package/dist/tabs-e7ko9S2o.js.map +0 -1
  949. package/dist/text-inputs-B1culiSK.js.map +0 -1
  950. package/dist/timelines-D3Sl9ueq.js +0 -458
  951. package/dist/timelines-D3Sl9ueq.js.map +0 -1
  952. package/dist/tooltip-8wz5S_Zr.js +0 -113
  953. package/dist/tooltip-8wz5S_Zr.js.map +0 -1
  954. package/dist/tree-CzUJHnFs.js.map +0 -1
  955. package/dist/typography-BQnine1k.js.map +0 -1
  956. package/dist/ui-provider-C-74NVLc.js.map +0 -1
  957. package/dist/upload-BOW6U2tI.js +0 -855
  958. package/dist/upload-BOW6U2tI.js.map +0 -1
  959. package/dist/upload-queue-qUXn1ykN.js +0 -409
  960. package/dist/upload-queue-qUXn1ykN.js.map +0 -1
  961. package/dist/usage-card-BeSLY0i0.js.map +0 -1
  962. package/dist/utils-B6kKb8jB.js.map +0 -1
  963. package/dist/value-inputs-skdVB2zh.js +0 -980
  964. package/dist/value-inputs-skdVB2zh.js.map +0 -1
  965. package/dist/value-typography-uAmWUAL1.js +0 -116
  966. package/dist/value-typography-uAmWUAL1.js.map +0 -1
  967. package/dist/workspace-DHeHv0qw.js +0 -411
  968. package/dist/workspace-DHeHv0qw.js.map +0 -1
package/MIGRATION.md ADDED
@@ -0,0 +1,858 @@
1
+ # Migration guide
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
+ This file covers two moves:
6
+
7
+ - [Upgrading from 2.x to 3.0](#upgrading-from-2x-to-30), for applications
8
+ already on `themelia-react-ui` 2.x.
9
+ - [From admin-ui-starter-kit 3.x](#from-admin-ui-starter-kit-3x), for
10
+ applications moving from the earlier package.
11
+
12
+ ## Upgrading from 2.x to 3.0
13
+
14
+ 3.0 removes the deprecated and legacy API that 2.x kept for compatibility:
15
+ second names for one component, re-exports from an old path, props and string
16
+ keys that had no effect, and the `asChild` composition form. It also removes
17
+ props that duplicated another prop: a label prop beside a `strings` key, a
18
+ flat prop beside a `slots` key, a boolean beside the option that already
19
+ implies it. Each such row names the one form that remains. Two package
20
+ entries are gone, the chart blocks have their own entry, a few types are
21
+ narrower, and the default control size and table edge inset changed.
22
+
23
+ Work in this order:
24
+
25
+ 1. Install `themelia-react-ui` 3.0.0.
26
+ 2. Update imports of moved and removed entries: the
27
+ [chart blocks](#chart-blocks-moved) and the two
28
+ [removed entries](#removed-entries).
29
+ 3. Replace removed API layer by layer, using the tables in
30
+ [Removed API](#removed-api): base and lower layers first, then layouts and
31
+ templates, blocks, data features and content features.
32
+ 4. Convert `asChild` to `render` ([Composition form](#composition-form)).
33
+ 5. Fix the narrower types listed under [Breaking changes](#breaking-changes).
34
+ 6. Review the [changed defaults](#changed-defaults) and the
35
+ [changed behaviour](#changed-behaviour).
36
+
37
+ Removed exports, types and props are type errors, so a type check after each
38
+ step shows what is left. A few removals are not reported by the compiler and
39
+ need a search of your own code: the snake case `content_type` field on
40
+ comments, a RANGE filter URL that carries one bare value, and CSS or test
41
+ selectors that target ContentBlock or PageHeader hooks. Their rows say what
42
+ changed.
43
+
44
+ ### Breaking changes
45
+
46
+ - **Chart blocks moved.** `Metric`, `MetricBar`, `MetricGrid`,
47
+ `MetricMicroGrid`, `MetricGradient`, `MetricSparkline` and `ChartCard` (with
48
+ their types) are now imported from
49
+ `themelia-react-ui/blocks/analytics/charts`.
50
+ `themelia-react-ui/blocks/analytics` no longer loads the optional `recharts`
51
+ peer. The symbol table is in [Chart blocks moved](#chart-blocks-moved).
52
+ - **Variant props no longer accept `null`.** Affects `variant`, `size`, `tone`
53
+ and `align` on Alert, EmptyMedia, SidebarMenuButton, SidebarTrigger,
54
+ TabsList, Toggle, ToggleGroup, InputGroupAddon, InputGroupButton, Item and
55
+ ItemMedia. Pass `undefined` or omit the prop.
56
+ - **Cascader and Accordion value types are narrower.** Cascader is typed by
57
+ mode: single takes `string | null`, `multiple` takes and emits string arrays
58
+ (`CascaderSingleProps`, `CascaderMultipleProps`). `Accordion` is generic over
59
+ its value type instead of `any[]`.
60
+ - **Deprecated and legacy API removed.** Two entries
61
+ ([Removed entries](#removed-entries)) and the exports, types, props, string
62
+ keys and values listed in [Removed API](#removed-api).
63
+
64
+ #### Changed defaults
65
+
66
+ **Control sizes.** `--height-action` and `--height-control` default to
67
+ 2.125rem (were 2rem) and `--control-x` to 0.875rem (was 0.75rem), so default
68
+ buttons and fields are 34px tall with a 14px inline inset.
69
+
70
+ | Root | 2.x default | 3.0 default |
71
+ | --- | --- | --- |
72
+ | `--height-action` | 2rem | 2.125rem |
73
+ | `--height-control` | 2rem | 2.125rem |
74
+ | `--control-x` | 0.75rem | 0.875rem |
75
+
76
+ To keep the previous sizes, set the three roots back to the old values at the
77
+ root or at a scoped theme boundary:
78
+
79
+ ```css
80
+ :root {
81
+ --height-action: 2rem;
82
+ --height-control: 2rem;
83
+ --control-x: 0.75rem;
84
+ }
85
+ ```
86
+
87
+ **Table edges.** The first and last columns of every table use the default
88
+ surface inset (24px, following `--surface-x` and `--space-scale`) instead of
89
+ 16px, so a table lines up with the card title, toolbar and footer around it. A
90
+ table inside a padded Card body sits flush with that body. DataTable and
91
+ DataView regions (topbar, selection bar, filter bar, footer, pagination) share
92
+ the same edge, and row checkboxes start on it. The table edge has no root of
93
+ its own: it follows `--surface-x` and `--space-scale`, which also set the
94
+ inset of the surfaces around the table, so changing those roots moves every
95
+ surface inset with it.
96
+
97
+ ### Removed entries
98
+
99
+ | Removed entry | Use instead |
100
+ | --- | --- |
101
+ | `themelia-react-ui/features/sync` | `SchemaForm` from `themelia-react-ui/features/schema-form`, with a `radio-cards` field for the window and a `checkbox-cards` field for the options. Wrap it in `ActionDialog` from `themelia-react-ui/features/overlays` for a dialog. The symbol rows are under [`features/sync`](#featuressync). |
102
+ | `themelia-react-ui/base/sheet` | `ActionDrawer` from `themelia-react-ui/features/overlays`; for an external control use `useOverlayVisibility` from the same entry. The part-by-part mapping is under [`base/sheet`](#basesheet). |
103
+
104
+ ### Removed API
105
+
106
+ Every table has the same columns. "Kind" is `export`, `type`, `prop`,
107
+ `string` (a key of a strings object) or `value` (a prop value, a data field or
108
+ a call shape). Import paths are the public package entries.
109
+
110
+ #### Base and lower layers
111
+
112
+ ##### `base/upload`
113
+
114
+ These names were re-exports. They moved to their own entries.
115
+
116
+ | Removed | Kind | Import path | Use instead | Notes |
117
+ | --- | --- | --- | --- | --- |
118
+ | `MediaGallery` | export | `themelia-react-ui/base/upload` | `MediaGallery` from `themelia-react-ui/base/media-gallery` | Same component; only the import path changes. |
119
+ | `defaultMediaGalleryStrings` | export | `themelia-react-ui/base/upload` | `defaultMediaGalleryStrings` from `themelia-react-ui/base/media-gallery` | |
120
+ | `MediaGalleryProps` | type | `themelia-react-ui/base/upload` | `MediaGalleryProps` from `themelia-react-ui/base/media-gallery` | |
121
+ | `MediaGalleryStrings` | type | `themelia-react-ui/base/upload` | `MediaGalleryStrings` from `themelia-react-ui/base/media-gallery` | |
122
+ | `UploadProgressList` | export | `themelia-react-ui/base/upload` | `UploadProgressList` from `themelia-react-ui/base/upload-queue` | Same component; only the import path changes. |
123
+ | `defaultUploadProgressListStrings` | export | `themelia-react-ui/base/upload` | `defaultUploadProgressListStrings` from `themelia-react-ui/base/upload-queue` | |
124
+ | `UploadProgressListProps` | type | `themelia-react-ui/base/upload` | `UploadProgressListProps` from `themelia-react-ui/base/upload-queue` | |
125
+ | `UploadProgressListStrings` | type | `themelia-react-ui/base/upload` | `UploadProgressListStrings` from `themelia-react-ui/base/upload-queue` | |
126
+ | `UploadItem` | type | `themelia-react-ui/base/upload` | `UploadItem` from `themelia-react-ui/base/upload-queue` | |
127
+ | `UploadStatus` | type | `themelia-react-ui/base/upload` | `UploadStatus` from `themelia-react-ui/base/upload-queue` | |
128
+ | `UploadTray` | export | `themelia-react-ui/base/upload` | `UploadTray` from `themelia-react-ui/base/upload-queue` | Same component; only the import path changes. |
129
+ | `defaultUploadTrayStrings` | export | `themelia-react-ui/base/upload` | `defaultUploadTrayStrings` from `themelia-react-ui/base/upload-queue` | |
130
+ | `UploadTrayProps` | type | `themelia-react-ui/base/upload` | `UploadTrayProps` from `themelia-react-ui/base/upload-queue` | |
131
+ | `UploadTrayStrings` | type | `themelia-react-ui/base/upload` | `UploadTrayStrings` from `themelia-react-ui/base/upload-queue` | |
132
+
133
+ ##### `base/sheet`
134
+
135
+ The `themelia-react-ui/base/sheet` entry no longer exists. Nothing public is
136
+ left in it. `ActionDrawer` and `useOverlayVisibility` come from
137
+ `themelia-react-ui/features/overlays`.
138
+
139
+ | Removed | Kind | Import path | Use instead | Notes |
140
+ | --- | --- | --- | --- | --- |
141
+ | `Sheet` | export | `themelia-react-ui/base/sheet` | `ActionDrawer` from `themelia-react-ui/features/overlays` | Open state: `open`/`onOpenChange`, or the `trigger` prop. |
142
+ | `SheetTrigger` | export | `themelia-react-ui/base/sheet` | `ActionDrawer trigger={…}` | For an external control use `useOverlayVisibility` from `themelia-react-ui/features/overlays`. |
143
+ | `SheetClose` | export | `themelia-react-ui/base/sheet` | `ActionDrawer showCloseButton` and its cancel action | ActionDrawer renders its own dismiss control. |
144
+ | `SheetContent` | export | `themelia-react-ui/base/sheet` | `ActionDrawer` (`direction`, `width`, `modal`) | |
145
+ | `SheetHeader` | export | `themelia-react-ui/base/sheet` | `ActionDrawer title` / `description` | |
146
+ | `SheetBody` | export | `themelia-react-ui/base/sheet` | `children` of `ActionDrawer` | ActionDrawer owns the scrolling body. |
147
+ | `SheetFooter` | export | `themelia-react-ui/base/sheet` | The generated actions or the `footer` prop of `ActionDrawer` | |
148
+ | `SheetTitle` | export | `themelia-react-ui/base/sheet` | `ActionDrawer title` | |
149
+ | `SheetDescription` | export | `themelia-react-ui/base/sheet` | `ActionDrawer description` | |
150
+
151
+ ##### `base/cards`
152
+
153
+ The `SmartCard*` names were second names for `Card`.
154
+
155
+ | Removed | Kind | Import path | Use instead | Notes |
156
+ | --- | --- | --- | --- | --- |
157
+ | `SmartCard` | export | `themelia-react-ui/base/cards` | `Card` | Same component and props; rename only. |
158
+ | `SmartCardSkeleton` | export | `themelia-react-ui/base/cards` | `CardSkeleton` | Rename only. |
159
+ | `defaultSmartCardStrings` | export | `themelia-react-ui/base/cards` | `defaultCardStrings` | Rename only. |
160
+ | `SmartCardProps` | type | `themelia-react-ui/base/cards` | `CardProps` | Rename only. |
161
+ | `SmartCardSkeletonProps` | type | `themelia-react-ui/base/cards` | `CardSkeletonProps` | Rename only. |
162
+ | `SmartCardAction` | type | `themelia-react-ui/base/cards` | `CardAction` | Rename only. |
163
+ | `SmartCardStrings` | type | `themelia-react-ui/base/cards` | `CardStrings` | Rename only. |
164
+ | `SmartCardSurface` | type | `themelia-react-ui/base/cards` | `CardSurface` | Rename only. |
165
+ | `Card` `tooltipAriaLabel` | prop | `themelia-react-ui/base/cards` | `strings={{ tooltipLabel: '…' }}` | Same accessible name on the info trigger. |
166
+ | `Card` `actionsLabel` | prop | `themelia-react-ui/base/cards` | `strings={{ actionsLabel: '…' }}` | Same accessible name on the overflow trigger. An `undefined` value keeps the default. |
167
+ | `Card` `footerText` | prop | `themelia-react-ui/base/cards` | `footerSlot` | A string or number in `footerSlot` is now the footnote: small, secondary, at the end of the footer, exactly as `footerText` drew it. A node fills the footer width, as before. For a footnote above a command, pass both in one `footerSlot` node. |
168
+
169
+ ##### `base/display`
170
+
171
+ The ContentBlock adapter is removed. The `asChild` rows are explained in
172
+ [Composition form](#composition-form).
173
+
174
+ | Removed | Kind | Import path | Use instead | Notes |
175
+ | --- | --- | --- | --- | --- |
176
+ | `ContentBlock` | export | `themelia-react-ui/base/display` | `Card` from `themelia-react-ui/base/cards` with `surface="flat" padding="none"` | Every ContentBlock prop exists on Card under the same name. ContentBlock defaulted to `surface="flat"`; its `padding` defaulted to `none`, or to `md` when a `surface` other than `flat` was given. Pass those two props explicitly. Card no longer adds `content-block--component`, `content-block--header`, `content-block--content`, `content-block--footer`, `data-component="content-block"`, `data-slot="content-block"` or `data-padding` on the root; if your CSS or tests select them, add the classes through `className`, `headerClassName`, `contentClassName` and `footerClassName`, or select `card--component`, `card--header`, `card--content`, `card--footer`. |
177
+ | `ContentBlockProps` | type | `themelia-react-ui/base/display` | `CardProps` from `themelia-react-ui/base/cards` | |
178
+ | `ContentBlockPadding` | type | `themelia-react-ui/base/display` | `CardProps['padding']` | ContentBlock accepted `sm`, `md`, `lg`; Card also accepts `none`. |
179
+ | `ContentBlockSurface` | type | `themelia-react-ui/base/display` | `CardSurface` from `themelia-react-ui/base/cards` | |
180
+ | `ContentBlockTitleSize` | type | `themelia-react-ui/base/display` | `CardProps['titleSize']` | |
181
+ | `ContentBlockStrings` | type | `themelia-react-ui/base/display` | `CardStrings` from `themelia-react-ui/base/cards` | Same keys: `actionsLabel`, `tooltipLabel`. |
182
+ | `defaultContentBlockStrings` | export | `themelia-react-ui/base/display` | `defaultCardStrings` from `themelia-react-ui/base/cards` | |
183
+ | `TooltipTrigger` `asChild` | prop | `themelia-react-ui/base/display` | `render={<Button … />}` | |
184
+ | `CollapsibleTrigger` `asChild` | prop | `themelia-react-ui/base/display` | `render={<Button … />}` | `nativeButton` is now inferred from the `render` element (a `button`, or a component without `href`, is native). Pass `nativeButton` to override. |
185
+
186
+ ##### `base/popover`
187
+
188
+ | Removed | Kind | Import path | Use instead | Notes |
189
+ | --- | --- | --- | --- | --- |
190
+ | `PopoverTrigger` `asChild` | prop | `themelia-react-ui/base/popover` | `render={<Button … />}` | Same `nativeButton` inference as `CollapsibleTrigger`: it is inferred from the `render` element (a `button`, or a component without `href`, is native). Pass `nativeButton` to override. |
191
+ | `PopoverAnchor` `asChild` | prop | `themelia-react-ui/base/popover` | `render={<div … />}` | Without `render` it is still a `span`. |
192
+
193
+ ##### `base/command`
194
+
195
+ | Removed | Kind | Import path | Use instead | Notes |
196
+ | --- | --- | --- | --- | --- |
197
+ | `Command` `asChild` | prop | `themelia-react-ui/base/command` | `render={<section />}` with the content as `children` | `render` takes an element. |
198
+ | `CommandInput` `asChild` | prop | `themelia-react-ui/base/command` | `render={<input … />}` | Without `render` the shared `Input` is used, as before. |
199
+ | `CommandList` `asChild` | prop | `themelia-react-ui/base/command` | `render={<ul />}` with items as `children` | |
200
+ | `CommandGroup` `asChild` | prop | `themelia-react-ui/base/command` | `render={<section />}` with items as `children` | The `heading` is rendered inside the composed element, before the children. |
201
+ | `CommandItem` `asChild` | prop | `themelia-react-ui/base/command` | `render={<a href="…" />}` with the label as `children` | The item's `id` is still applied to the composed element. |
202
+ | `CommandSeparator` `asChild` | prop | `themelia-react-ui/base/command` | `render={<hr />}` | |
203
+
204
+ ##### `base/sidebar`
205
+
206
+ | Removed | Kind | Import path | Use instead | Notes |
207
+ | --- | --- | --- | --- | --- |
208
+ | `useSidebar` | export | `themelia-react-ui/base/sidebar` | `useLayoutSidebar` from `themelia-react-ui/layout/sidebar` | |
209
+ | `SidebarTrigger` `variant` | prop | `themelia-react-ui/base/sidebar` | Nothing; the trigger is always the ghost icon button | It exposed the raw primitive's variants (`default`, `destructive`, `ghost`, `link`, `outline`, `secondary`). Style a different trigger through `className`, or render your own button and drive `SidebarProvider` through `open` / `onOpenChange`. |
210
+ | `SidebarTrigger` `size` values `default`, `xs`, `icon`, `icon-xs`, `icon-sm`, `icon-lg` | value | `themelia-react-ui/base/sidebar` | `size="sm" \| "md" \| "lg"` | `icon-sm` → `sm`, `icon` or `default` → `md`, `icon-lg` → `lg`; `xs` and `icon-xs` have no equivalent. `sm` and `lg` now name the icon-button scale (they were the raw text-button sizes). Default is `md`. |
211
+
212
+ ##### `base/navigation`
213
+
214
+ | Removed | Kind | Import path | Use instead | Notes |
215
+ | --- | --- | --- | --- | --- |
216
+ | `PaginationPrimitive` | export | `themelia-react-ui/base/navigation` | `PaginationRoot` | Same component; rename only. |
217
+ | `PaginationPrevious` `children` | prop | `themelia-react-ui/base/navigation` | `text` | The children were accepted and ignored. |
218
+ | `PaginationNext` `children` | prop | `themelia-react-ui/base/navigation` | `text` | The children were accepted and ignored. |
219
+ | `LanguageSwitcher` `onRenderLabel` | prop | `themelia-react-ui/base/navigation` | `renderLabel` | Same signature: `(locale: LocaleOption) => string`. |
220
+ | `LanguageSwitcher` `onSelect` | prop | `themelia-react-ui/base/navigation` | `onValueChange` | Same payload: the chosen locale's `value`. `onSelect` is now a type error rather than the native text-selection event. |
221
+ | `PageHeading` `badge` | prop | `themelia-react-ui/base/navigation` | `titleSuffix={<Badge tone="secondary">Beta</Badge>}` with `Badge` from `base/badge` | Same position, directly after the title on the title line. |
222
+ | `PageHeading` `badges` | prop | `themelia-react-ui/base/navigation` | `titleSuffix` with one `Badge` per entry; wrap several in `<Stack direction="horizontal" gap="sm" wrap>` | The separate `page-header--badges` row is no longer rendered; status, count and version badges sit after the title. |
223
+ | `PageHeading` `moreActionsLabel` | prop | `themelia-react-ui/base/navigation` | `strings={{ moreActions: '…' }}` | New `PageHeadingStrings` / `defaultPageHeadingStrings`. Same accessible name on the More actions trigger. |
224
+
225
+ ##### `base/action-menu`
226
+
227
+ | Removed | Kind | Import path | Use instead | Notes |
228
+ | --- | --- | --- | --- | --- |
229
+ | `ActionMenu` `density="table"` (`ActionMenuDensity` member `'table'`) | value | `themelia-react-ui/base/action-menu` | `density="compact"` | `table` gave menu rows a `min-height` one step below compact; the popup already rendered compact rows for it. |
230
+
231
+ ##### `primitives`
232
+
233
+ | Removed | Kind | Import path | Use instead | Notes |
234
+ | --- | --- | --- | --- | --- |
235
+ | `formatFileSize(value, 'en-US')` (locale as a string second argument) | value | `themelia-react-ui/primitives` | `formatFileSize(value, { locale: 'en-US' })` | The second argument is `FileSizeFormatOptions` only: `{ from, locale, unitLabels }`. |
236
+
237
+ ##### `services/actions`
238
+
239
+ | Removed | Kind | Import path | Use instead | Notes |
240
+ | --- | --- | --- | --- | --- |
241
+ | `toPageAction` | export | `themelia-react-ui/services/actions` | `toButtonAction` for `ActionButtons`; `toPageHeaderAction` for a page header's `primaryAction` and `secondaryActions` | Renamed: it adapted a resolved action for the removed `PageActions` ribbon. The returned shape is unchanged. |
242
+
243
+ ##### `base/forms-numeric`
244
+
245
+ | Removed | Kind | Import path | Use instead | Notes |
246
+ | --- | --- | --- | --- | --- |
247
+ | `DimensionsInput` `widthLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ width: '…' }}` | |
248
+ | `DimensionsInput` `heightLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ height: '…' }}` | |
249
+ | `DimensionsInput` `depthLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ depth: '…' }}` | |
250
+ | `DimensionsInput` `unitLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ unitLabel: '…' }}` | New string key, empty by default. As before, a non-empty value shows the unit sub-label in the vertical layout and names the unit selector. Same key as `WeightInput`. |
251
+ | `DimensionsInput` `unitPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ unitPlaceholder: '…' }}` | New string key, empty by default; empty falls back to `strings.unit`, as before. |
252
+ | `DimensionsInput` `widthPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ widthPlaceholder: '…' }}` | |
253
+ | `DimensionsInput` `heightPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ heightPlaceholder: '…' }}` | |
254
+ | `DimensionsInput` `depthPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ depthPlaceholder: '…' }}` | |
255
+
256
+ ##### `base/date-pickers`
257
+
258
+ | Removed | Kind | Import path | Use instead | Notes |
259
+ | --- | --- | --- | --- | --- |
260
+ | `DatePicker` `enableYearDropdown` | prop | `themelia-react-ui/base/date-pickers` | `yearSelection={{ enabled: true }}` | Same dropdown caption; `fromYear`/`toYear` bound it. |
261
+
262
+ #### Layouts and templates
263
+
264
+ Every layout import path below is also re-exported from the aggregate
265
+ `themelia-react-ui/layout`, so each removal applies to both paths.
266
+
267
+ ##### `layout/page`
268
+
269
+ | Removed | Kind | Import path | Use instead | Notes |
270
+ | --- | --- | --- | --- | --- |
271
+ | `PageActions` | export (component) | `themelia-react-ui/layout/page` | Pass page commands as `primaryAction` and `secondaryActions` on `Page` `header` or `PageHeader`. For a row of commands that is not a page header, use `ActionButtons` (and `ActionMenu` for overflow) from `themelia-react-ui/base/action-menu`. | The header owns treatment, overflow and narrow-width collapse, so `display`, `breakpoint`, `maxInlineActions`, `renderAction` and per-action `placement` have no replacement. `display="auto"` is gone with it: PageHeader collapses commands into More actions below 40rem of its own width. |
272
+ | `PageActionsProps` | type | `themelia-react-ui/layout/page` | `PageHeaderProps` (`primaryAction`, `secondaryActions`, `maxVisibleSecondaryActions`) | |
273
+ | `PageAction` | type | `themelia-react-ui/layout/page` | `PageHeaderAction` | `tone`, `buttonStyle`, `size`, `group`, `placement` and `element` have no equivalent: a command states its role (`primaryAction`, an ordered secondary action, or `destructive: true`). `visible`, `disabled`, `loading`, `icon`, `href`, `target`, `rel`, `external` and `onClick` carry over. |
274
+ | `PageActionsDisplay` | type | `themelia-react-ui/layout/page` | Nothing | Only typed `PageActions` `display`. |
275
+ | `PageActionContext` | type | `themelia-react-ui/layout/page` | Nothing | Only typed `PageActions` `renderAction`. |
276
+ | `PageActionsStrings` | type | `themelia-react-ui/layout/page` | `PageHeaderStrings` (`moreActions`) | |
277
+ | `defaultPageActionsStrings` | export | `themelia-react-ui/layout/page` | `defaultPageHeaderStrings` | `menuLabel` becomes `moreActions`. |
278
+ | `titleBadges` on `PageHeaderProps` (and `Page` `header`) | prop | `themelia-react-ui/layout/page` | `slots.titleSuffix` with `Badge` from `themelia-react-ui/base/badge`: `slots: { titleSuffix: <Badge tone="success">Paid</Badge> }`. Wrap several in `<Stack direction="horizontal" gap="sm" wrap>`. | A badge that set no `tone` rendered `secondary`; pass `tone="secondary"` to keep it. The `page-header--badges` wrapper is no longer rendered. |
279
+ | `PageTitleBadge` | type | `themelia-react-ui/layout/page` (declared, not exported by name) | `BadgeProps` from `themelia-react-ui/base/badge` | Only typed `titleBadges`. |
280
+ | `titleIcon` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Put the glyph in a React-node `title`, or in `slots.beforeTitle` / `slots.titleSuffix`. | Title icons were decorative by default; ordinary titles need none. The `page-header--title-icon` element is no longer rendered. |
281
+ | `titleIconHref` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | A link composed in a slot callback through its `renderLink` argument: `slots: { titleSuffix: ({ renderLink }) => renderLink({ href, children }) }`. | The `page-header--title-icon-link` element is no longer rendered. |
282
+ | `onTitleIconClick` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | A command: `primaryAction` or an entry in `secondaryActions`; or a control in `slots.actions`. | The `page-header--title-icon-button` element is no longer rendered. |
283
+ | `titleIconLabel` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Nothing | Named the removed title-icon control. |
284
+ | `titleIconClassName` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Nothing | Styled the removed title-icon control. |
285
+ | `actions` on `PageHeaderProps` (and `Page` `header`) | prop | `themelia-react-ui/layout/page` | Controls that are not commands (a period select, a scope switcher): the `Page` `toolbar` prop. To add something beside the command row: `slots.actions` as a callback, `({ defaultContent }) => <>{control}{defaultContent}</>`. | With a callback the region is yours: the header no longer end-aligns it for you. `actions` on `AsideNavShell` and `WorkspaceRecordHeader` is unchanged. |
286
+ | `back` on `PageHeaderSlots` | prop | `themelia-react-ui/layout/page` | `backHref` (a link through `renderLink`) or `onBack` (a button), with `strings.back` for its name. | A fully custom back control can go in `slots.beforeTitle`. |
287
+ | `afterHeader` on `PageProps` | prop | `themelia-react-ui/layout/page` | `toolbar` | Same region and position; it was only read when `toolbar` was absent. |
288
+ | `PageHeader` `backLabel` (and `Page` `header.backLabel`) | prop | `themelia-react-ui/layout/page` | `strings={{ back: '…' }}` (`header: { strings: { back: '…' } }` on `Page`) | Same accessible name on the back link or button. |
289
+ | `PageHeader` `moreActionsLabel` | prop | `themelia-react-ui/layout/page` | `strings={{ moreActions: '…' }}` | — |
290
+ | `PageHeaderTabs` `label` (`tabs.label`) | prop | `themelia-react-ui/layout/page` | `strings={{ sections: '…' }}` on the header | Names the tab list. `strings` sits beside `tabs`, not inside it. |
291
+ | `PageHeaderTabs` `moreLabel` (`tabs.moreLabel`) | prop | `themelia-react-ui/layout/page` | `strings={{ moreSections: '…' }}` on the header | Names the More menu that holds tabs that do not fit. |
292
+ | `Page` `slots.aside` | prop | `themelia-react-ui/layout/page` | `aside` | The slot only took precedence over the prop; same region. |
293
+ | `Page` `slots.toolbar` | prop | `themelia-react-ui/layout/page` | `toolbar` | Same region, above the body and aside. |
294
+ | `Page` `slots.empty` | prop | `themelia-react-ui/layout/page` | `emptySlot` | Same replacement of the default empty state. |
295
+
296
+ ##### `layout/settings`
297
+
298
+ | Removed | Kind | Import path | Use instead | Notes |
299
+ | --- | --- | --- | --- | --- |
300
+ | `SettingsShell` | export (component) | `themelia-react-ui/layout/settings` | `AsideNavShell` | The same component under its one name; props, strings and the `aside-nav-shell--*` hooks are unchanged. |
301
+ | `SettingsShellProps` | type | `themelia-react-ui/layout/settings` | `AsideNavShellProps` | |
302
+
303
+ ##### `layout/workspace`
304
+
305
+ | Removed | Kind | Import path | Use instead | Notes |
306
+ | --- | --- | --- | --- | --- |
307
+ | `ariaLabel` on `WorkspaceLayoutProps` | prop | `themelia-react-ui/layout/workspace` | The native `aria-label` attribute | Same effect: it names the workspace as a group, or the content region when `mainAs="section"`. |
308
+ | Rendered elements as `secondaryActions` on `WorkspaceRecordHeaderProps` | value | `themelia-react-ui/layout/workspace` | Command objects: `secondaryActions={[{ label: 'Preview', onClick }]}` (`readonly PageHeaderAction[]`). For controls that are not commands, use `actions`. | The prop type is now `readonly PageHeaderAction[]` only. The separate "Secondary actions" cluster is no longer rendered. |
309
+ | `secondaryActionsLabel` in `WorkspaceRecordHeaderStrings` (and `defaultWorkspaceRecordHeaderStrings`) | string | `themelia-react-ui/layout/workspace` | Nothing | Named the removed element cluster. `actionsLabel` still names the `actions` cluster. |
310
+ | `currentLabel` in `WorkspaceNavStrings` (and `defaultWorkspaceNavStrings`) | string | `themelia-react-ui/layout/workspace` | Nothing | The current entry carries `aria-current` (`page` on a link, `true` on a callback row), which assistive technology announces in the reader's language. Delete the key from any `strings` override. |
311
+
312
+ ##### `layout/sidebar`
313
+
314
+ | Removed | Kind | Import path | Use instead | Notes |
315
+ | --- | --- | --- | --- | --- |
316
+ | `handle` as the identity of a `SidebarNavigationRailItem` | value | `themelia-react-ui/layout/sidebar` | `id` on every rail item | `id` is required. `value` and `onValueChange` on `SidebarNavigationRail` report it. An item that had only `handle` needs `id` set to the same string. |
317
+ | `showBadges` on `AppSidebar`, `SidebarNavigation`, `SidebarGroupedNavigation`, `SidebarNavigationFooter` | prop | `themelia-react-ui/layout/sidebar` | Leave `badge` off the items and omit `liveBadges` | Counts come from the navigation data only. |
318
+ | `AppSidebar` `logoClassName` | prop | `themelia-react-ui/layout/sidebar` | Style the node passed as `logo` / `collapsedLogo`; for the wrapper itself, compose `<SidebarLogo className="…" />` in `slots.header` | It only reached the wrapper around that node. No caller in the repository. |
319
+
320
+ ##### Templates
321
+
322
+ The templates are source assets shipped in the package's `templates` folder,
323
+ not an import entry.
324
+
325
+ | Removed | Kind | Import path | Use instead | Notes |
326
+ | --- | --- | --- | --- | --- |
327
+ | `UserPermissionsAdminTemplate` | export (alias) | `templates/index.ts` in `themelia-react-ui/templates` | `UserPermissionsTemplate` | Same component. |
328
+ | `AnalyticsOperationsAdminTemplate` | export (alias) | `templates/index.ts` in `themelia-react-ui/templates` | `AnalyticsOperationsTemplate` | Same component. The props type in the template file keeps its name. |
329
+
330
+ The templates themselves changed to the current API, so a copy taken from 2.x
331
+ needs the same edits: `useLayoutSidebar` from
332
+ `themelia-react-ui/layout/sidebar` replaces `useSidebar` from
333
+ `themelia-react-ui/base/sidebar`; title badges are `Badge`s in
334
+ `slots.titleSuffix`; the analytics period select moved from the header's
335
+ `actions` to the Page `toolbar`.
336
+
337
+ ##### `layout/app-shell`
338
+
339
+ | Removed | Kind | Import path | Use instead | Notes |
340
+ | --- | --- | --- | --- | --- |
341
+ | `TopbarSidebarLayout` / `AppLayout` `slots.logo`, `slots.sidebar`, `slots.sidebarTrigger`, `slots.headerActions` | prop | `themelia-react-ui/layout/app-shell` | The direct props `logo`, `sidebar`, `sidebarTrigger`, `headerActions` | `slots` keeps the regions with no direct prop: `header`, `headerStart`, `headerCenter`, `headerEnd`, `secondarySidebar`, `aside`. |
342
+ | `SidebarInsetLayout` / `AppLayout` (`sidebar`, `inset`) `slots.sidebar`, `slots.sidebarTrigger` | prop | `themelia-react-ui/layout/app-shell` | `sidebar`, `sidebarTrigger` | `slots` keeps `toolbar`, `toolbarStart`, `toolbarEnd`, `secondarySidebar`, `aside`. |
343
+ | `StackedLayout` / `AppLayout` (`stacked`) `slots.logo`, `slots.nav` | prop | `themelia-react-ui/layout/app-shell` | `logo`, `nav` | `slots` keeps `header`, `headerEnd`, `subheader`, `aside`. |
344
+ | `slots.content` on all three shells | prop | `themelia-react-ui/layout/app-shell` | `children` | It only replaced `children`. |
345
+ | `TopbarSidebarLayout` / `StackedLayout` `headerHeight` | prop | `themelia-react-ui/layout/app-shell` | `style={{ '--shell-header-height': '5rem' }}` | The prop only set this root on the shell. Set it at `:root` or a theme scope to size every shell. |
346
+ | `TopbarSidebarLayout` / `SidebarInsetLayout` `sidebarWidth` | prop | `themelia-react-ui/layout/app-shell` | `style={{ '--shell-sidebar-width': '18rem' }}` | The prop only set this root on the shell. `secondarySidebarWidth` and `asideWidth` stay: no root sizes those regions alone. |
347
+
348
+ ##### `layout/auth`
349
+
350
+ | Removed | Kind | Import path | Use instead | Notes |
351
+ | --- | --- | --- | --- | --- |
352
+ | `AuthShell` `socialDivider` | prop | `themelia-react-ui/layout/auth` | `strings={{ socialDivider: '…' }}` | Text only; the divider is a label between two rules. |
353
+ | `AuthShell` `cardClassName`, `cardContentClassName`, `footerClassName` | prop | `themelia-react-ui/layout/auth` | `variant` for the card surface; style the content passed as `children`, `cardFooter` and `postCard` | They reached the card's own frame and inset and the row under the card. No caller in the repository. `AuthCard` keeps its class slots for a composed layout. |
354
+
355
+ ##### `layout/settings`, `layout/workspace`
356
+
357
+ | Removed | Kind | Import path | Use instead | Notes |
358
+ | --- | --- | --- | --- | --- |
359
+ | `AsideNavShell` `moreActionsLabel` | prop | `themelia-react-ui/layout/settings` | `strings={{ moreActionsLabel: '…' }}` | Same accessible name. |
360
+ | `WorkspaceRecordHeader` `moreActionsLabel` | prop | `themelia-react-ui/layout/workspace` | `strings={{ moreActionsLabel: '…' }}` | Same accessible name. |
361
+
362
+ #### Blocks
363
+
364
+ ##### `blocks/data-display`
365
+
366
+ The metadata names were re-exports of the base family.
367
+
368
+ | Removed | Kind | Import path | Use instead | Notes |
369
+ | --- | --- | --- | --- | --- |
370
+ | `MetadataList` | export | `themelia-react-ui/blocks/data-display` | `MetadataList` from `themelia-react-ui/base/metadata-list` | Same component; only the import path changes. |
371
+ | `MetadataValue` | export | `themelia-react-ui/blocks/data-display` | `MetadataValue` from `themelia-react-ui/base/metadata-list` | Same component; only the import path changes. |
372
+ | `MetadataDensity` | type | `themelia-react-ui/blocks/data-display` | `MetadataDensity` from `themelia-react-ui/base/metadata-list` | |
373
+ | `MetadataInlineListItem` | type | `themelia-react-ui/blocks/data-display` | `MetadataInlineListItem` from `themelia-react-ui/base/metadata-list` | |
374
+ | `MetadataLayout` | type | `themelia-react-ui/blocks/data-display` | `MetadataLayout` from `themelia-react-ui/base/metadata-list` | |
375
+ | `MetadataListItem` | type | `themelia-react-ui/blocks/data-display` | `MetadataListItem` from `themelia-react-ui/base/metadata-list` | |
376
+ | `MetadataListProps` | type | `themelia-react-ui/blocks/data-display` | `MetadataListProps` from `themelia-react-ui/base/metadata-list` | |
377
+ | `MetadataValueDescriptor` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueDescriptor` from `themelia-react-ui/base/metadata-list` | |
378
+ | `MetadataValueKind` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueKind` from `themelia-react-ui/base/metadata-list` | |
379
+ | `MetadataValueProps` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueProps` from `themelia-react-ui/base/metadata-list` | |
380
+
381
+ ##### `blocks/analytics` and `blocks/analytics/charts`
382
+
383
+ | Removed | Kind | Import path | Use instead | Notes |
384
+ | --- | --- | --- | --- | --- |
385
+ | `Metric` prop `colorScheme` | prop | `themelia-react-ui/blocks/analytics/charts` | `tone` | Map the value: `default` → omit the prop (or `tone="neutral"`), `primary` → `primary`, `success` → `success`, `warning` → `warning`, `info` → `info`, `danger` → `destructive`. Without `tone`, bordered metrics stay neutral and the `colored` variant keeps primary progress, as before. |
386
+ | `MetricGrid` prop `colorScheme` | prop | `themelia-react-ui/blocks/analytics/charts` | `tone` | Same value mapping as `Metric`. |
387
+ | `MetricColorScheme` | type | `themelia-react-ui/blocks/analytics` and `themelia-react-ui/blocks/analytics/charts` | `SemanticTone` from `themelia-react-ui/component-vocabulary` | `danger` is spelled `destructive` in `SemanticTone`; `default` is `neutral`. |
388
+
389
+ ##### `blocks/commerce`
390
+
391
+ | Removed | Kind | Import path | Use instead | Notes |
392
+ | --- | --- | --- | --- | --- |
393
+ | `CartSummary` | export | `themelia-react-ui/blocks/commerce` | `CartSummaryCard` | Alias of the same component. |
394
+ | `CartSummaryProps` | type | `themelia-react-ui/blocks/commerce` | `CartSummaryCardProps` | Alias of the same type. |
395
+ | `DiscountStack` | export | `themelia-react-ui/blocks/commerce` | `DiscountStackPreview` | Alias of the same component. |
396
+ | `DiscountStackProps` | type | `themelia-react-ui/blocks/commerce` | `DiscountStackPreviewProps` | Alias of the same type. |
397
+ | `RefundStatus` | export | `themelia-react-ui/blocks/commerce` | `RefundStatusCard` | Alias of the same component. |
398
+ | `RefundStatusProps` | type | `themelia-react-ui/blocks/commerce` | `RefundStatusCardProps` | Alias of the same type. |
399
+ | `PaymentMethodCard` | export | `themelia-react-ui/blocks/commerce` | `<PaymentMethod variant="row" … />` | It was `PaymentMethod` with `variant` defaulting to `row`. Pass `variant="row"` explicitly; an explicit `variant="card"` on the old name becomes plain `PaymentMethod`. |
400
+ | `PaymentMethodCardProps` | type | `themelia-react-ui/blocks/commerce` | `PaymentMethodProps` | Alias of the same type. |
401
+ | `Discount.type` | value | `themelia-react-ui/blocks/commerce` (`DiscountStackPreview` `discounts[]`) | `kind` | `kind` takes the same text (or a node). `badge` still draws it as a chip. The fallback row key is now the label and position. |
402
+ | `CartLineItem.name` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `title` | `title` is now required. A line without any name used to show its `id`; pass the text you want. |
403
+ | `CartLineItem.productTitle` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `title` | It used to win over `title` and `name` when several were set. |
404
+ | `CartLineItem.imageUrl` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
405
+ | `CartLineItem.src` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
406
+ | `CartLineItem.url` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
407
+ | `InventorySectionMetric.tone` | value | `themelia-react-ui/blocks/commerce` | Nothing: delete it | It was never rendered. The title badge states the stock status. |
408
+ | `OrderStatusStrings.statusLabel` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the title badge states the status (`strings.status`). |
409
+ | `OrderStatusStrings.latestEvent` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the timeline lists the events. |
410
+ | `OrderStatusStrings.currentStep` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the current step is marked with `aria-current`. Completed and upcoming steps use `completedStep` and `upcomingStep`. |
411
+ | `LoyaltyPointsStrings.tier` | string | `themelia-react-ui/blocks/commerce` (`LoyaltyPoints` `strings`) | The `tier` prop | `<LoyaltyPoints tier="Gold" />`. No tier, no chip. |
412
+ | `AddressCard` `name` | prop | `themelia-react-ui/blocks/commerce` | `address={{ name, … }}` | `address` is the exported `OrderAddress`, the shape `OrderCustomer` takes. `name` is optional there. |
413
+ | `AddressCard` `line1` | prop | `themelia-react-ui/blocks/commerce` | `address={{ line1, … }}` | |
414
+ | `AddressCard` `line2` | prop | `themelia-react-ui/blocks/commerce` | `address={{ line2, … }}` | |
415
+ | `AddressCard` `city` | prop | `themelia-react-ui/blocks/commerce` | `address={{ city, … }}` | |
416
+ | `AddressCard` `region` | prop | `themelia-react-ui/blocks/commerce` | `address={{ region, … }}` | |
417
+ | `AddressCard` `postalCode` | prop | `themelia-react-ui/blocks/commerce` | `address={{ postalCode, … }}` | |
418
+ | `AddressCard` `country` | prop | `themelia-react-ui/blocks/commerce` | `address={{ country, … }}` | |
419
+ | `AddressCard` `phone` | prop | `themelia-react-ui/blocks/commerce` | `address={{ phone, … }}` | Still one click-to-call link under the lines. |
420
+
421
+ ##### `blocks/timelines`
422
+
423
+ | Removed | Kind | Import path | Use instead | Notes |
424
+ | --- | --- | --- | --- | --- |
425
+ | `ChangelogTimelineStrings.title` | string | `themelia-react-ui/blocks/timelines` (`ChangelogTimeline` `strings`) | Nothing: delete it | Not rendered; the composing surface supplies the title. |
426
+ | `MilestonesTimelineStrings.title` | string | `themelia-react-ui/blocks/timelines` (`MilestonesTimeline` `strings`) | Nothing: delete it | Not rendered; the composing surface supplies the title. |
427
+
428
+ ##### `blocks/ai`
429
+
430
+ | Removed | Kind | Import path | Use instead | Notes |
431
+ | --- | --- | --- | --- | --- |
432
+ | `AiArtifactStrings.expandAria` | string | `themelia-react-ui/blocks/ai` (`AiArtifact` `strings`) | Nothing: delete it | Not rendered; the artifact header has no expand control. |
433
+ | `AiSourcesStrings.title` | string | `themelia-react-ui/blocks/ai` (`AiSources` `strings`) | `formatTitle: (count) => string` | The `'{{count}} sources'` template becomes a function, for example `` formatTitle: (count) => `${count} fuentes` ``. The default writes "1 source" and "N sources". |
434
+
435
+ #### Data features
436
+
437
+ ##### `features/table`
438
+
439
+ | Removed | Kind | Import path | Use instead | Notes |
440
+ | --- | --- | --- | --- | --- |
441
+ | `DataTable` `enablePagination` | prop | `themelia-react-ui/features/table` | Delete the prop | It had no effect. The pagination footer renders when `pagination` reports more than one page. |
442
+ | `DataTable` `manualPagination` | prop | `themelia-react-ui/features/table` | Delete the prop; pass `pagination` and `onPageChange` | It had no effect. The table never slices `data`; paging is always the app's. |
443
+ | `DataTable` `debugMode` | prop | `themelia-react-ui/features/table` | Delete the prop | It had no effect. |
444
+ | `DataTable` `initialState.pagination` | prop | `themelia-react-ui/features/table` | Delete the key; pass `pagination` | It had no effect. `initialState.sorting`, `rowSelection`, `columnVisibility` and `columnFilters` are unchanged. |
445
+ | `DataTableHeader` `headerClassName` | prop | `themelia-react-ui/features/table` | `className` | Only on the standalone `DataTableHeader` part. `DataTable`'s own `headerClassName` slot prop is unchanged. |
446
+ | `DataTable` `defaultSorting` | prop | `themelia-react-ui/features/table` | `initialState={{ sorting: [...] }}` | Same value, read once on mount. A controlled `sorting` prop still wins. |
447
+ | `DataTable` `defaultColumnVisibility` | prop | `themelia-react-ui/features/table` | `initialState={{ columnVisibility: {...} }}` | Same value. With `storageKey`, `columnVisibilityPrecedence` now compares the stored value against `initialState.columnVisibility`. |
448
+ | `DataTable` `enableFiltering` | prop | `themelia-react-ui/features/table` | `filterColumn` | Naming the column shows the search input and filters the loaded rows. Delete `enableFiltering`. Without `filterColumn` the table filters nothing itself, so `initialState.columnFilters` only takes effect once `filterColumn` is set. |
449
+ | `DataTable` `filterPlaceholder` | prop | `themelia-react-ui/features/table` | `strings={{ filter: { searchPlaceholder: '…' } }}` | The same string also names the input for assistive technology. |
450
+ | `DataTableFilterBar` `filterPlaceholder` | prop | `themelia-react-ui/features/table` | `strings.filter.searchPlaceholder` | `DataTableFilterBar` takes a complete `DataTableStrings` object: spread `defaultDataTableStrings` and override `filter.searchPlaceholder`. |
451
+ | `DataTable` `emptyStateMessage` | prop | `themelia-react-ui/features/table` | `strings={{ emptyState: { message: '…' } }}` | `emptyStateAction` is unchanged. In `DataView`, pass it inside `table={{ strings: { emptyState: { message } } }}`. |
452
+ | `DataTableBody` `emptyStateMessage` | prop | `themelia-react-ui/features/table` | `strings.emptyState.message` | Only for apps that compose `DataTableBody` themselves. |
453
+ | `DataTable` `rowActionsMenuLabel` as a string | value | `themelia-react-ui/features/table` | `strings={{ actions: { menuLabel: '…' } }}` | The function form stays: `rowActionsMenuLabel={(row) => \`Actions for ${row.name}\`}` names each row's menu from its record, which a single string cannot. |
454
+ | `DataTable` `enableSubRowSelection` | prop | `themelia-react-ui/features/table` | Delete the prop | `DataTable` has no sub-row or expansion props, so nothing acted on it. |
455
+
456
+ ##### `features/filters`
457
+
458
+ | Removed | Kind | Import path | Use instead | Notes |
459
+ | --- | --- | --- | --- | --- |
460
+ | `FilterStrings.calendar.dateSelected` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. A complete `FilterStrings` object that still sets it is a type error. |
461
+ | `FilterStrings.calendar.selectedEndDate` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. |
462
+ | `FilterStrings.calendar.customRange` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. |
463
+ | `FilterConfig.datePickerConfig.fullWidth` | prop | `themelia-react-ui/features/filters` | Delete the key | It had no effect; the date editor always fills its region. |
464
+ | `FilterOperatorSelect` `segmentResetClass` | prop | `themelia-react-ui/features/filters` | `segmentResetClassName` | Same value, new name. |
465
+ | RANGE filter: a single query value read as an exact match | value | `themelia-react-ui/features/filters` (`parseFiltersFromQuery`) | Send both bounds (`?price=150&price=150`), or add the operator (`?price=150&price__op=equals`) | `?price=150` on a RANGE filter with no configured operator used to parse as `{ operator: 'equals', value: ['150', '150'] }`. It now parses as the lower bound of the filter's own operator: `{ operator: 'between', value: ['150', ''] }`. Saved URLs with one bare value change meaning. |
466
+
467
+ ##### `features/combobox`
468
+
469
+ | Removed | Kind | Import path | Use instead | Notes |
470
+ | --- | --- | --- | --- | --- |
471
+ | `Combobox` `selectedValue` | prop | `themelia-react-ui/features/combobox` | `value` | Same type (`T \| null`). `defaultValue` seeds an uncontrolled field. |
472
+ | `Combobox` `onSelectedValueChange` | prop | `themelia-react-ui/features/combobox` | `onValueChange` | Same signature. |
473
+ | `MultiCombobox` `selectedValues` | prop | `themelia-react-ui/features/combobox` | `values` | Same type (`T[]`). `defaultValues` seeds an uncontrolled field. |
474
+ | `MultiCombobox` `onSelectedValuesChange` | prop | `themelia-react-ui/features/combobox` | `onValuesChange` | Same signature. With `applyButton` it still fires on Apply only. |
475
+ | `AsyncResourceCombobox` `hasMore` | prop | `themelia-react-ui/features/combobox` | Raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | The component owns its list and replaces it on each request, so a page could never be appended. |
476
+ | `AsyncResourceCombobox` `onLoadMore` | prop | `themelia-react-ui/features/combobox` | As for `hasMore`: raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | |
477
+ | `AsyncResourceCombobox` `loadingMore` | prop | `themelia-react-ui/features/combobox` | As for `hasMore`: raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | `Combobox` and `MultiCombobox` keep all three props. |
478
+ | `Combobox` / `AsyncResourceCombobox` `closeOnSelect` | prop | `themelia-react-ui/features/combobox` | Delete the prop | The single combobox never read it; it always closes on selection. `MultiCombobox` keeps `closeOnSelect`. |
479
+ | `Combobox` / `AsyncResourceCombobox` `applyButton`, `onApply`, `onCancel` | prop | `themelia-react-ui/features/combobox` | Delete the props | Only `MultiCombobox` renders the Apply and Cancel footer; the props are now on `MultiComboboxProps` only. |
480
+ | `MultiCombobox` `clearable` | prop | `themelia-react-ui/features/combobox` | Delete the prop | `MultiCombobox` ignored it; each chip has its own remove control. `Combobox` and `AsyncResourceCombobox` keep `clearable`. |
481
+ | `Combobox` / `MultiCombobox` `showListContent` | prop | `themelia-react-ui/features/combobox` | Nothing for the components; `useComboboxCore({ showListContent })` for a headless build | It was a seam for this package's async wrappers. `AsyncResourceCombobox` and `SuggestionsCombobox` still use it internally. |
482
+ | `closeOnSelect`, `applyButton`, `onApply`, `onCancel`, `clearable`, `showListContent` on `ComboboxSharedProps` | type | `themelia-react-ui/features/combobox` | `MultiComboboxProps` for the first four, `ComboboxProps` for `clearable`, `ComboboxListControl` for `showListContent` | `ComboboxSharedProps` now holds only what both components and the headless hook share. `UseComboboxCoreOptions` extends `ComboboxSharedProps` and the new `ComboboxListControl`. |
483
+
484
+ ##### `features/questionnaire`
485
+
486
+ | Removed | Kind | Import path | Use instead | Notes |
487
+ | --- | --- | --- | --- | --- |
488
+ | `Questionnaire` `onQuestionChange` | prop | `themelia-react-ui/features/questionnaire` | `onQuestionIdChange` | Same signature (`(id: string) => void`). |
489
+
490
+ ##### `features/products`
491
+
492
+ The eight overview regions and the two row menus are no longer exported;
493
+ `ProductOverview` and the variant and option surfaces render them. Their props
494
+ types (`ProductDetailsCardProps`, `ProductVariantActionMenuStrings` and so on)
495
+ are still exported, because the public props are typed with them.
496
+
497
+ | Removed | Kind | Import path | Use instead | Notes |
498
+ | --- | --- | --- | --- | --- |
499
+ | `ProductContractOverview` | export | `themelia-react-ui/features/products` | `<ProductOverview contract={…} />` | Pass the same props object. Add custom content through `ProductOverview` `slots`. |
500
+ | `ProductDetailsCard` | export | `themelia-react-ui/features/products` | `<ProductOverview details={…} />` | |
501
+ | `ProductOperationsCard` | export | `themelia-react-ui/features/products` | `<ProductOverview operations={…} />` | |
502
+ | `ProductOptionsSummary` | export | `themelia-react-ui/features/products` | `<ProductOverview options={…} />` | |
503
+ | `ProductPoliciesCard` | export | `themelia-react-ui/features/products` | `<ProductOverview policies={…} />` | |
504
+ | `ProductQuotePreviewCard` | export | `themelia-react-ui/features/products` | `<ProductOverview quote={…} />` | |
505
+ | `ProductReadinessCard` | export | `themelia-react-ui/features/products` | `<ProductOverview readiness={…} />` | |
506
+ | `ProductStructureCard` | export | `themelia-react-ui/features/products` | `<ProductOverview structure={…} />` | |
507
+ | `ProductOptionActionMenu` | export | `themelia-react-ui/features/products` | `renderOptionActions` on `ProductOptionsMatrix`, or on `ProductOverview` `options`, composing `ActionMenu` from `themelia-react-ui/base/action-menu` | The default menu still renders when `renderOptionActions` is not set. |
508
+ | `ProductVariantActionMenu` | export | `themelia-react-ui/features/products` | `renderVariantActions` on `ProductVariantsTable`, `ProductVariantsBulkTable`, `ProductVariantsManager` or `ProductVariantDetails`, composing `ActionMenu` from `themelia-react-ui/base/action-menu` | The default menu still renders when `renderVariantActions` is not set. |
509
+ | `ProductVariantOptionField.value` | prop | `themelia-react-ui/features/products` | `defaultValue.options` or `value.options` on `ProductVariantEditor` | `optionFields={[{ id: 'size', label: 'Size', value: 'M' }]}` becomes `optionFields={[{ id: 'size', label: 'Size' }]}` with `defaultValue={{ options: { size: 'M' } }}`. The field value is no longer added to the submitted value. |
510
+
511
+ ##### `features/resource`
512
+
513
+ Route shells are `Page` from `themelia-react-ui/layout/page`. The family keeps
514
+ `ResourceActionBar`, `ResourceDetailsSection` and `ResourceEmptyState`.
515
+
516
+ | Removed | Kind | Import path | Use instead | Notes |
517
+ | --- | --- | --- | --- | --- |
518
+ | `ResourceHeader` | export | `themelia-react-ui/features/resource` | `Page` `header` (`PageHeaderProps`), or `PageHeader` for an embedded header, from `themelia-react-ui/layout/page` | `title`, `description`, `primaryAction`, `secondaryActions`, `maxVisibleSecondaryActions`, `moreActionsLabel` keep their names. `badges` moves to `header.slots.titleSuffix`; `metadata` to `header.slots.afterDescription`; `eyebrow` to `header.slots.beforeTitle`. |
519
+ | `ResourceIndexShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` | `title`, `description` and commands move into `header`. `toolbar`, `loading`, `error`, `onRetry`, `emptySlot` and `slots.loading` / `empty` / `error` have the same names on `Page`. |
520
+ | `ResourceShowShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` with `aside` | `slots.aside` becomes the `aside` prop. |
521
+ | `TabbedResourceShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` with `header.tabs` | `tabs`, `activeTab`, `defaultActiveTab` and `onTabChange` move into `header.tabs`; check `PageHeaderTabs` for the exact field names. |
522
+ | `ResourceHeaderProps` | type | `themelia-react-ui/features/resource` | `PageHeaderProps` from `themelia-react-ui/layout/page` | |
523
+ | `ResourceIndexShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` | |
524
+ | `ResourceShowShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` | |
525
+ | `TabbedResourceShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` with `PageHeaderTabs` | |
526
+ | `ResourceHeaderCommandProps` | type | `themelia-react-ui/features/resource` | The command fields of `PageHeaderProps` | Existed only for the removed header and shells. |
527
+ | `ResourceShellSlots` | type | `themelia-react-ui/features/resource` | `PageSlots` from `themelia-react-ui/layout/page` | Existed only for the removed shells. |
528
+ | `defaultResourceStrings` | export | `themelia-react-ui/features/resource` | `Page` `strings` | Loading, empty, error, retry and tab copy now belongs to `Page`. |
529
+ | `ResourceStrings` | type | `themelia-react-ui/features/resource` | `PageStrings` from `themelia-react-ui/layout/page` | |
530
+ | `ResourceEmptyState` `ariaLabel` | prop | `themelia-react-ui/features/resource` | `aria-label` | Same value, native attribute name. |
531
+
532
+ ##### `features/resource-assignment`
533
+
534
+ | Removed | Kind | Import path | Use instead | Notes |
535
+ | --- | --- | --- | --- | --- |
536
+ | `SharedResourceCardStrings.changeAction` | string | `themelia-react-ui/features/resource-assignment` | `assignAction` for the empty-state action; `selector.actionLabel` for the action on an assigned resource | An overridden `changeAction` used to name the empty-state action when `assignAction` was not set. That fallback is gone, and nothing else read the key. |
537
+
538
+ ##### `features/sync`
539
+
540
+ The `themelia-react-ui/features/sync` entry no longer exists.
541
+
542
+ | Removed | Kind | Import path | Use instead | Notes |
543
+ | --- | --- | --- | --- | --- |
544
+ | `SyncRangeDialogForm` | export | `themelia-react-ui/features/sync` | `SchemaForm` from `themelia-react-ui/features/schema-form`, with a `radio-cards` field for the window and a `checkbox-cards` field for the options | Map the values in `onSubmit`, for example `{ hours: Number(values.hours), options: values.options }`. Wrap it in `ActionDialog` for a dialog. The schema-form catalogue page has the full schema. |
545
+ | `SyncRangeDialogFormProps` | type | `themelia-react-ui/features/sync` | `SchemaFormProps` from `themelia-react-ui/features/schema-form` | |
546
+ | `SyncRangeDialogFormSubmit` | type | `themelia-react-ui/features/sync` | Your own payload type, built in `onSubmit` | |
547
+ | `SyncRangeDialogFormValues` | type | `themelia-react-ui/features/sync` | `SchemaFormValues` from `themelia-react-ui/features/schema-form` | |
548
+ | `defaultSyncRangeDialogFormStrings` | export | `themelia-react-ui/features/sync` | Labels and descriptions on the `SchemaForm` field definitions | |
549
+ | `SyncRangeDialogFormStrings` | type | `themelia-react-ui/features/sync` | Labels and descriptions on the `SchemaForm` field definitions | |
550
+
551
+ ##### `features/schema-form`
552
+
553
+ | Removed | Kind | Import path | Use instead | Notes |
554
+ | --- | --- | --- | --- | --- |
555
+ | `SchemaForm` `submitLabel` | prop | `themelia-react-ui/features/schema-form` | `strings={{ submitLabel: '…' }}` | Same key name inside `strings`. |
556
+ | `SchemaForm` `resetLabel` | prop | `themelia-react-ui/features/schema-form` | `strings={{ resetLabel: '…' }}` | Same key name inside `strings`. |
557
+
558
+ #### Content features
559
+
560
+ Type-level effect of the string removals: a dictionary typed as the full
561
+ strings interface (not `strings={{ … }}` inline) that still carries a removed
562
+ key fails to compile with an excess-property error. Delete the key.
563
+
564
+ ##### `features/overlays`
565
+
566
+ | Removed | Kind | Import path | Use instead | Notes |
567
+ | --- | --- | --- | --- | --- |
568
+ | `defaultAlertDialogStrings` | export | `themelia-react-ui/features/overlays` | `defaultConfirmDialogStrings` | Same object, renamed to the `default<Component>Strings` convention. |
569
+ | `ConfirmDialogProps.closeOnBackdropClick` | prop | `themelia-react-ui/features/overlays` | Nothing; delete the prop | It never had an effect: a confirmation ignores outside presses. Passing it is now a type error. `ActionDialog` and `ActionDrawer` keep it. |
570
+ | `ConfirmDialogProps.showCloseButton` | prop | `themelia-react-ui/features/overlays` | Nothing; delete the prop | It never had an effect: a confirmation has no corner close control. `ActionDialog` and `ActionDrawer` keep it. |
571
+
572
+ ##### `features/mentions`
573
+
574
+ | Removed | Kind | Import path | Use instead | Notes |
575
+ | --- | --- | --- | --- | --- |
576
+ | `splitHtmlByMentions` | export | `themelia-react-ui/features/mentions` | `MentionContent` to render HTML with mentions; `parseMentionsFromHtml` to read the mentions out of HTML | The splitter cut serialized HTML with a regex and broke paragraphs and lists around a mention. `MentionContent` renders the sanitized tree and keeps each chip inside its paragraph. |
577
+ | `MentionHtmlSegment` | type | `themelia-react-ui/features/mentions` | Nothing | Return type of `splitHtmlByMentions`. |
578
+
579
+ ##### `features/comments`
580
+
581
+ | Removed | Kind | Import path | Use instead | Notes |
582
+ | --- | --- | --- | --- | --- |
583
+ | `CommentData.content_type` (snake case, read as a fallback) | value | `themelia-react-ui/features/comments` | `contentType` | The field was never in the type; it was read at runtime when `contentType` was absent. A comment that only sets `content_type` now renders as plain text. Map it when you build `CommentData`. Also applies to comments passed to `ActivityLog`. |
584
+ | `CommentsProps.avatarComponent` (declared on `CommentsSlots`) | prop | `themelia-react-ui/features/comments` | Nothing; for a custom avatar use `renderItem` | Declared but never read: it had no effect. |
585
+ | `CommentsStrings.moreActionsLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
586
+ | `CommentsStrings.showRepliesLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
587
+ | `CommentsStrings.hideRepliesLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
588
+ | `CommentsProps.maxAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, maxFiles: n }}` | Same cap on the draft. The default stays 5 when `maxFiles` is unset. `attachments.maxFiles` already won when both were set. |
589
+ | `CommentsProps.allowAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, disabled: true }}` to turn uploads off; nothing to turn them on | The attach control only ever appeared with `attachments.onUpload`; `allowAttachments={false}` did what `attachments.disabled` does. Without `attachments` there is no control, so a read-only thread just drops the prop. |
590
+ | `CommentComposerProps.maxAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, maxFiles: n }}` | Same as on `Comments`. |
591
+ | `CommentComposerProps.allowAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, disabled: true }}` | Same as on `Comments`. |
592
+ | `CommentsProps.bare` | prop | `themelia-react-ui/features/comments` | `title={false}` | Renders the thread with no heading. Two differences from `bare`, both intended: the root `section` (`comments--component`, `className`) stays around the thread, and the delete confirmation works (with `bare` the confirmation dialog was never mounted, so a confirmed delete did nothing unless `confirmDelete={false}`). |
593
+
594
+ ##### `features/activities`
595
+
596
+ | Removed | Kind | Import path | Use instead | Notes |
597
+ | --- | --- | --- | --- | --- |
598
+ | `ActivityLogProps.avatarComponent` | prop | `themelia-react-ui/features/activities` | Nothing; for custom rows use `renderers` | Declared but never read: it had no effect. |
599
+ | `ActivityRowProps.moreLabel` | prop | `themelia-react-ui/features/activities` | Nothing; delete the prop | It was a required prop with no effect since collapsed rows stopped previewing metadata. Code that renders `ActivityRow` directly must stop passing it. |
600
+ | `ActivitiesStrings.moreLabel` | string | `themelia-react-ui/features/activities` | Nothing; delete the key | Fed the `ActivityRowProps.moreLabel` prop. Applies to `ActivityFeed strings` and `ActivityLog activityStrings`. |
601
+ | `ActivityLogProps.bare` | prop | `themelia-react-ui/features/activities` | `title={false}` | Renders the log with no heading, for a log inside a titled Card or section. The root `section` (`activity-log--component`, `data-slot="activity-log"`) now stays around the feed, and `className` lands on that section instead of on the feed. A missing `title` still shows `activityStrings.title` ("Activity"), as before. With `bare`, a `title` passed alongside was ignored; remove it or keep it and drop `title={false}`. |
602
+ | `ActivityRowProps.youLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ you: '…' }}` | One optional `strings` prop (`StringsProp<ActivitiesStrings>`) replaces the four label props; unset keys take the `defaultActivitiesStrings` values. |
603
+ | `ActivityRowProps.showChangesLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ showChanges: '…' }}` | As above. |
604
+ | `ActivityRowProps.hideChangesLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ hideChanges: '…' }}` | As above. |
605
+ | `ActivityRowProps.actionsLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ actionsLabel: '…' }}` | As above. All four were required; code that renders `ActivityRow` directly can now omit them. `ActivityFeed` and `ActivityLog` callers are unaffected: they already pass `strings` / `activityStrings`. |
606
+
607
+ ##### `features/email-composer`
608
+
609
+ | Removed | Kind | Import path | Use instead | Notes |
610
+ | --- | --- | --- | --- | --- |
611
+ | `EmailComposerProps.onChange` | prop | `themelia-react-ui/features/email-composer` | `onValueChange` | Same payload (a detached draft proposal). `onChange` was only called when `onValueChange` was missing. |
612
+
613
+ ##### `features/appointment-calendar`
614
+
615
+ | Removed | Kind | Import path | Use instead | Notes |
616
+ | --- | --- | --- | --- | --- |
617
+ | `AppointmentCalendarProps.onStaffChange` | prop | `themelia-react-ui/features/appointment-calendar` | `onStaffIdChange` | Same payload (the staff id, or `'all'`). |
618
+
619
+ ##### `features/ai-chat`
620
+
621
+ | Removed | Kind | Import path | Use instead | Notes |
622
+ | --- | --- | --- | --- | --- |
623
+ | `AiChatPromptInputStrings.modelPickerAria` | string | `themelia-react-ui/features/ai-chat` | Nothing; delete the key | Never rendered: the prompt has no model picker. Applies to `AiChat strings.prompt` too. |
624
+
625
+ ##### `features/media-library`
626
+
627
+ | Removed | Kind | Import path | Use instead | Notes |
628
+ | --- | --- | --- | --- | --- |
629
+ | `MediaLibraryStrings.privateLabel` | string | `themelia-react-ui/features/media-library` | Nothing; delete the key | Never rendered. Visibility copy is `strings.detail.*` and `strings.upload.*`. |
630
+ | `MediaLibraryStrings.publicLabel` | string | `themelia-react-ui/features/media-library` | Nothing; delete the key | Never rendered. |
631
+ | `MediaLibraryState.error` (returned by `useMediaLibrary`) | value | `themelia-react-ui/features/media-library` | `loadError` for a failed fetch, `mutationError` for a failed update or delete (`{ itemId, operation, cause }`), `uploadError` for a failed upload request, `loadMoreError` for a failed next page | The single field mixed every failure. The `MediaLibrary` component already used the specific fields. |
632
+
633
+ ##### `features/theme-tweaker`
634
+
635
+ | Removed | Kind | Import path | Use instead | Notes |
636
+ | --- | --- | --- | --- | --- |
637
+ | `ThemeTweakerStrings.groupNavigationTitle` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
638
+ | `ThemeTweakerStrings.groupNavigationDescription` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
639
+ | `ThemeTweakerStrings.copyOverrides` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered: the export dialog has one CSS output. |
640
+ | `ThemeTweakerStrings.exportProvider` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
641
+ | `ThemeTweakerStrings.exportOptions` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
642
+ | `ThemeTweakerStrings.overrideOutputLabel` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
643
+ | `ThemeTweakerStrings.overrideOutputDescription` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
644
+
645
+ ##### `features/event-calendar`
646
+
647
+ | Removed | Kind | Import path | Use instead | Notes |
648
+ | --- | --- | --- | --- | --- |
649
+ | `EventCalendarProps.emptyStateMessage` | prop | `themelia-react-ui/features/event-calendar` | `strings={{ emptyState: '…' }}` | New optional key `EventCalendarStrings.emptyState`. Same behaviour: it is opt-in (no default), and when set it replaces the day grid while the visible period has no events after the category and runtime filters. Merge it into an existing `strings` object rather than passing `strings` twice. |
650
+
651
+ ### Composition form
652
+
653
+ There is one composition form: `render`. Every part below took `asChild` and
654
+ rendered its single child in place of its own element. Pass that element to
655
+ `render` instead.
656
+
657
+ ```tsx
658
+ // 2.x
659
+ <PopoverTrigger asChild>
660
+ <Button>Open</Button>
661
+ </PopoverTrigger>
662
+
663
+ // 3.0
664
+ <PopoverTrigger render={<Button>Open</Button>} />
665
+ ```
666
+
667
+ A function form is also accepted where the part is a Base UI primitive:
668
+ `render={(props) => <Button {...props}>Open</Button>}`. The Command parts take
669
+ an element in `render` and keep their content as `children`, for example
670
+ `<CommandList render={<ul />}>{items}</CommandList>`.
671
+
672
+ `asChild` is removed from these parts:
673
+
674
+ - `themelia-react-ui/base/display`: `TooltipTrigger`, `CollapsibleTrigger`
675
+ - `themelia-react-ui/base/popover`: `PopoverTrigger`, `PopoverAnchor`
676
+ - `themelia-react-ui/base/command`: `Command`, `CommandInput`, `CommandList`,
677
+ `CommandGroup`, `CommandItem`, `CommandSeparator`
678
+
679
+ `CollapsibleTrigger` and `PopoverTrigger` now infer `nativeButton` from the
680
+ `render` element: a `button`, or a component without `href`, is native. Pass
681
+ `nativeButton` to override. The per-part replacement element and notes are in
682
+ the [`base/display`](#basedisplay), [`base/popover`](#basepopover) and
683
+ [`base/command`](#basecommand) tables.
684
+
685
+ ### Changed behaviour
686
+
687
+ Some behaviour changed without an API change: value formatting, focus and
688
+ keyboard handling, default copy, ARIA roles and shared geometry. These are
689
+ listed under "Changed behaviour" in the 3.0.0 entry of the
690
+ [changelog](CHANGELOG.md#changed-behaviour). Review that list after the code
691
+ compiles, and check tests that match rendered text, roles or element names.
692
+
693
+ Three changes follow from the removed props:
694
+
695
+ - **Card footers.** `footerText` is gone, so a string or number passed to
696
+ `footerSlot` renders as the footnote (small, secondary, end-aligned); a node
697
+ still fills the footer width. OrderTimeline, StepsCard and
698
+ SharedResourceCard keep their own `footerText`: a string renders as before,
699
+ a node now fills the width.
700
+ - **ActivityLog without a title.** `title={false}` drops the heading and keeps
701
+ the root section, so `className` lands on the section rather than on the
702
+ feed.
703
+ - **DataTable search.** The built-in search input appears when `filterColumn`
704
+ is set. `initialState.columnFilters` without `filterColumn` no longer
705
+ filters invisibly.
706
+
707
+ ## From admin-ui-starter-kit 3.x
708
+
709
+ The `themelia-react-ui` 2.x line is the migration destination for
710
+ `admin-ui-starter-kit` 3.x applications. This section describes that move and
711
+ was written for 2.x. When you install 3.0, the names it calls deprecated
712
+ (`SmartCard`, `ContentBlock`, base `Sheet`, the resource shells and the sync
713
+ form) no longer exist: use their replacements directly, then follow
714
+ [Upgrading from 2.x to 3.0](#upgrading-from-2x-to-30).
715
+
716
+ ### Imports and installation
717
+
718
+ 1. Use the [consumer setup](README.md#consumer-setup) to install the new package
719
+ and its required peers. React and React DOM use 19.x, Lucide uses 1.x, and
720
+ `@base-ui/react` is required. The old `cmdk`, Tailwind, Tailwind Vite plugin,
721
+ `tw-animate-css` and Inter font peers can be removed if the application has
722
+ no independent use for them. Keep the optional peers used by your families.
723
+ 2. Replace `admin-ui-starter-kit/<family>` with `themelia-react-ui/<family>`.
724
+ For `composed/admin`, `ai`, `analytics`, `commerce`, `data-display`,
725
+ `onboarding` and `timelines`, use `themelia-react-ui/blocks/<family>`.
726
+ For example, `admin-ui-starter-kit/composed/commerce` becomes
727
+ `themelia-react-ui/blocks/commerce`. Move CommonJS `require()` consumers to
728
+ ESM imports or asynchronous `import()`.
729
+ 3. Import `themelia-react-ui/style.css` once. Add
730
+ `themelia-react-ui/features/map/style.css` when using the map family.
731
+ The [theme guide](docs/consumer-skill/references/theming.md) covers the
732
+ optional green brand, structural roots and scoped portals.
733
+
734
+ #### Host CSS
735
+
736
+ The compiled stylesheet leaves global preflight and the page canvas to the app.
737
+ If the previous stylesheet supplied these values, put them in your app's lower
738
+ priority base layer. Keep an app-owned reset for native margins, lists and form
739
+ controls where you used Tailwind preflight.
740
+
741
+ ```css
742
+ @layer base {
743
+ * {
744
+ border-color: var(--border);
745
+ outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
746
+ }
747
+ html { font-family: var(--font-sans); }
748
+ body { background-color: var(--background); color: var(--foreground); }
749
+ code, kbd, samp, pre { font-family: var(--font-mono); }
750
+ }
751
+ ```
752
+
753
+ For app-generated Tailwind utilities, follow the [Tailwind setup](docs/consumer-skill/references/installation.md).
754
+ The editable `theme.css` entry is processed by the application's Tailwind v4
755
+ build. The compiled `style.css` already includes package utilities.
756
+
757
+ #### Tools
758
+
759
+ | Former bin | Workflow in this package |
760
+ | --- | --- |
761
+ | `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. |
762
+ | `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). |
763
+ | `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. |
764
+ | `admin-ui-starter-kit-showcase` | Use the component catalogue or render the shipped examples in your application. |
765
+
766
+ ### Defaults to review
767
+
768
+ | Owner | Earlier default | Current default or migration |
769
+ | --- | --- | --- |
770
+ | Untoned Button | Primary solid | Secondary outline. Set provider button defaults or make the primary command explicit. |
771
+ | Badge | Primary | Neutral. Set an explicit status tone where relevant. |
772
+ | Card and SmartCard | Framed, footer divider off | Card surface, header divider off, footer divider on. Explicit props win over provider booleans. |
773
+ | PageHeader | `h3` | `h1` for route titles. Use `headingTag="h3"` when the page already owns its heading, or supply a custom title element. |
774
+ | PageHeading | Separator on | Pass `withSeparator` to restore it. |
775
+ | ConfirmDialog | Start-aligned with an icon | Centered. Set `overlay.defaultConfirmAlign: 'start'` and pass `showIcon` on dialogs that need the icon. |
776
+ | DateCell and DateMetaCell | Icon on | Pass `showIcon` for the date glyph. |
777
+ | LoyaltyPoints | Warning tier | Neutral. Set `tierTone="warning"` where it conveys meaning. |
778
+ | Command | Default inset | Compact. Pass `inset="default"` for the wider inset. |
779
+ | 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. |
780
+ | DataTable | Inline selection bar | Floating selection bar. Use `selectionToolbarPlacement="inline"` for inline placement. |
781
+ | MediaLibrary | Activation selects | Activation opens details. Use `defaultSelecting` to start in selection mode. |
782
+ | 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. |
783
+ | Date range presets | Title case | Sentence case, such as “This week” and “Last 30 days”. |
784
+
785
+ To keep the earlier button, badge and card choices while moving the
786
+ imports, supply the old defaults explicitly.
787
+
788
+ ```tsx
789
+ import { UIProvider } from 'themelia-react-ui/ui-provider';
790
+
791
+ <UIProvider config={{
792
+ button: { defaultTone: 'primary', defaultButtonStyle: 'solid' },
793
+ badge: { defaultTone: 'primary' },
794
+ card: { defaultSurface: 'framed', defaultHeaderDivider: false, defaultFooterDivider: false },
795
+ overlay: { defaultConfirmAlign: 'start' },
796
+ }}>
797
+ <App />
798
+ </UIProvider>
799
+ ```
800
+
801
+ ### Behavior, selectors and deprecated entry points
802
+
803
+ - Check the query policy of async filters. Options are cached within a mounted
804
+ editor and refetch after a remount. Chip labels stay within their filter
805
+ provider. Reuse stable fetcher and mapper references. If the app needs caching
806
+ across editor mounts, keep it inside an app-owned fetcher keyed by the complete
807
+ query and authorization scope.
808
+ - For selectors targeting legacy ContentBlock element hooks, move styling and
809
+ queries to the owning Card regions, slots and accessible names. The
810
+ ContentBlock adapter keeps its root, header, content and footer hooks.
811
+ DataTable still exposes the selection-toolbar root class, and
812
+ `batch-action-bar--summary` and `batch-action-bar--actions` identify the new
813
+ bar regions. Query the actual status or action for ShipmentTracking and
814
+ product option rows whose decorative dot and drag hooks were removed.
815
+ Tree owns AiFileTree rows through `tree--item` and `tree--group`.
816
+ - For new code, use Card in place of SmartCard and ContentBlock,
817
+ `ActionDrawer` from `features/overlays` in place of base Sheet,
818
+ `Page` from `layout/page` in place of the resource shell, and
819
+ `SchemaForm` from `features/schema-form` for the sync form. Pass standalone
820
+ product-card content to `ProductOverview` through its typed region props.
821
+ - Check Command compositions that used inherited cmdk props. Base UI owns
822
+ Command's keyboard and filtering behavior. Supply an explicit `filter`
823
+ for application-specific ranking and use the current public parts when
824
+ composing empty and group content.
825
+
826
+ ## Chart blocks moved
827
+
828
+ `recharts` is an optional peer. The analytics blocks that draw with it now
829
+ have their own exact entry, so `themelia-react-ui/blocks/analytics` no longer
830
+ loads it. Change the import path of each moved symbol; names, props and
831
+ behaviour are unchanged. `Metric`, `MetricBar` and `MetricGrid` move with the
832
+ chart blocks because every `Metric` can draw a sparkline.
833
+
834
+ | Symbol | Before | After |
835
+ | --- | --- | --- |
836
+ | `Metric`, `MetricProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
837
+ | `MetricBar`, `MetricBarProps`, `MetricBarVariant` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
838
+ | `MetricGrid`, `MetricGridProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
839
+ | `MetricMicroGrid`, `MetricMicroGridProps`, `MicroChartKind`, `MicroMetricCell` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
840
+ | `MetricGradient`, `MetricGradientProps`, `MetricGradientTheme` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
841
+ | `MetricSparkline`, `MetricSparklineProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
842
+ | `ChartCard`, `ChartCardProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
843
+
844
+ ```diff
845
+ - import { MetricGrid, ChartCard, type MetricData } from 'themelia-react-ui/blocks/analytics';
846
+ + import { MetricGrid, ChartCard, type MetricData } from 'themelia-react-ui/blocks/analytics/charts';
847
+ ```
848
+
849
+ Nothing else moves. `MetricComparison`, `ActivityHeatmap`,
850
+ `TimeDistributionRuler`, `MetricTrendChip`, `MetricSkeleton`, `UsageCard`,
851
+ `formatMetricValue`, `resolveTrend` and the analytics strings stay in
852
+ `themelia-react-ui/blocks/analytics`. The shared metric types (`MetricData`,
853
+ `MetricChange`, `MetricSize`, `MetricVariant` and the rest) stay there too and
854
+ are also exported from the charts entry, so one import covers a metric and its
855
+ data.
856
+
857
+ The [changelog](CHANGELOG.md) and [consumer composition guide](docs/consumer-skill/references/composition.md)
858
+ describe the current roles and the version-specific changes.