themelia-react-ui 2.0.4 → 2.0.5

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 (588) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +113 -18
  3. package/dist/{accordion-96o0pN62.js → accordion-B9MHG0cT.js} +11 -11
  4. package/dist/accordion-B9MHG0cT.js.map +1 -0
  5. package/dist/{action-menu-CHgs8vmj.js → action-menu-Dr8K-ghE.js} +48 -45
  6. package/dist/action-menu-Dr8K-ghE.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  8. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  9. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-C58tQcBy.js} +210 -174
  10. package/dist/ai-artifact-C58tQcBy.js.map +1 -0
  11. package/dist/app-shell-B_IuNWOo.js +321 -0
  12. package/dist/app-shell-B_IuNWOo.js.map +1 -0
  13. package/dist/{attachment-DkoqHPPl.js → attachment-Dg_69lPS.js} +9 -9
  14. package/dist/{attachment-DkoqHPPl.js.map → attachment-Dg_69lPS.js.map} +1 -1
  15. package/dist/{auth-D2FVZ1MH.js → auth-DTkkshS8.js} +43 -46
  16. package/dist/auth-DTkkshS8.js.map +1 -0
  17. package/dist/{avatar-DWO_HHhB.js → avatar-CeZaFmNH.js} +8 -8
  18. package/dist/avatar-CeZaFmNH.js.map +1 -0
  19. package/dist/{badge-DErMA7ul.js → badge-xIiV_E7f.js} +5 -5
  20. package/dist/{badge-DErMA7ul.js.map → badge-xIiV_E7f.js.map} +1 -1
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +1 -1
  27. package/dist/base/buttons.js +1 -1
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +3 -3
  30. package/dist/base/cascader.js +2 -372
  31. package/dist/base/chart.js +1 -1
  32. package/dist/base/choice-inputs.js +2 -2
  33. package/dist/base/code-block.js +1 -1
  34. package/dist/base/combobox.js +2 -2
  35. package/dist/base/command.js +1 -1
  36. package/dist/base/copyable.js +1 -1
  37. package/dist/base/date-pickers.js +2 -2
  38. package/dist/base/display.js +6 -6
  39. package/dist/base/feedback.js +3 -3
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +2 -2
  42. package/dist/base/inline-edit.js +10 -10
  43. package/dist/base/item.js +1 -1
  44. package/dist/base/media-gallery.js +1 -1
  45. package/dist/base/metadata-list.js +1 -1
  46. package/dist/base/navigation.js +7 -7
  47. package/dist/base/popover-menu.js +1 -1
  48. package/dist/base/popover.js +1 -1
  49. package/dist/base/qr-code.js +1 -1
  50. package/dist/base/repeaters.js +12 -12
  51. package/dist/base/repeaters.js.map +1 -1
  52. package/dist/base/sheet.js +1 -1
  53. package/dist/base/sidebar.js +2 -2
  54. package/dist/base/signature-pad.js +7 -7
  55. package/dist/base/signature-pad.js.map +1 -1
  56. package/dist/base/skeleton.js +1 -1
  57. package/dist/base/spinner.js +4 -4
  58. package/dist/base/structure.js +1 -1
  59. package/dist/base/table.js +1 -1
  60. package/dist/base/text-inputs.js +2 -2
  61. package/dist/base/toaster.js +36 -36
  62. package/dist/base/toaster.js.map +1 -1
  63. package/dist/base/tree.js +1 -1
  64. package/dist/base/upload-queue.js +1 -1
  65. package/dist/base/upload.js +3 -3
  66. package/dist/base/value-inputs.js +1 -1
  67. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-Cb8cuvyy.js} +6 -6
  68. package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
  69. package/dist/blocks/admin.js +21 -21
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +230 -216
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +325 -306
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +1 -1
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1259 -1184
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +2 -2
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +11 -11
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-J-K2kl4c.js} +6 -6
  86. package/dist/{breadcrumbs-B-WFKecD.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
  87. package/dist/{button-DkmK-z8E.js → button-S2Cubiiz.js} +3 -3
  88. package/dist/button-S2Cubiiz.js.map +1 -0
  89. package/dist/{buttons-BbfzgczK.js → buttons-BedGfygC.js} +16 -16
  90. package/dist/buttons-BedGfygC.js.map +1 -0
  91. package/dist/cards-rNX1M4Xn.js +69 -0
  92. package/dist/cards-rNX1M4Xn.js.map +1 -0
  93. package/dist/cascader-B1MiqkBq.js +439 -0
  94. package/dist/cascader-B1MiqkBq.js.map +1 -0
  95. package/dist/chart-Darg_0Kv.js +162 -0
  96. package/dist/chart-Darg_0Kv.js.map +1 -0
  97. package/dist/{checkbox-CzYUTPeJ.js → checkbox-fflqmODR.js} +2 -2
  98. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-fflqmODR.js.map} +1 -1
  99. package/dist/{choice-inputs-JLtij2y4.js → choice-inputs-zUgBZfE4.js} +258 -257
  100. package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
  101. package/dist/{code-block-CGNaUtAE.js → code-block-BzmM9Eig.js} +8 -8
  102. package/dist/code-block-BzmM9Eig.js.map +1 -0
  103. package/dist/{collapsible-Do4G0zcC.js → collapsible-BkAI_XD4.js} +5 -5
  104. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BkAI_XD4.js.map} +1 -1
  105. package/dist/{collection-content-C0e8SsTm.js → collection-content-gDh1v6O4.js} +3 -3
  106. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-gDh1v6O4.js.map} +1 -1
  107. package/dist/combobox-BEx0vJgF.js +362 -0
  108. package/dist/combobox-BEx0vJgF.js.map +1 -0
  109. package/dist/{combobox-CBJDs6w_.js → combobox-BwzoXFSG.js} +254 -247
  110. package/dist/combobox-BwzoXFSG.js.map +1 -0
  111. package/dist/{command-D8NrBj-b.js → command-CrlPIL6m.js} +11 -11
  112. package/dist/command-CrlPIL6m.js.map +1 -0
  113. package/dist/{comments-Di4w0H_S.js → comments-Dmpp0YIc.js} +29 -29
  114. package/dist/{comments-Di4w0H_S.js.map → comments-Dmpp0YIc.js.map} +1 -1
  115. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  116. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  117. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  118. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  119. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  120. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  121. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  122. package/dist/components/base/chart/chart.d.ts +6 -1
  123. package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
  124. package/dist/components/base/combobox/index.d.ts +4 -2
  125. package/dist/components/base/feedback/alert.d.ts +1 -1
  126. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  127. package/dist/components/base/forms/workflow.d.ts +7 -1
  128. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
  129. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  130. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  131. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  132. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  133. package/dist/components/base/popover/popover.d.ts +3 -3
  134. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  135. package/dist/components/base/sheet/sheet.d.ts +2 -0
  136. package/dist/components/base/sidebar/index.d.ts +1 -1
  137. package/dist/components/base/sidebar/sidebar.d.ts +27 -5
  138. package/dist/components/base/toaster/index.d.ts +1 -0
  139. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  140. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
  141. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  142. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  143. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  144. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  145. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  146. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  147. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  148. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  149. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  150. package/dist/components/blocks/commerce/index.d.ts +7 -6
  151. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  152. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  153. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  154. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  155. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  156. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  157. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  158. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  159. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  160. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  161. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  162. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  163. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  164. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  165. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  166. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  167. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  168. package/dist/components/features/activities/activities.types.d.ts +8 -2
  169. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  170. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  171. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  172. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  173. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  174. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  175. package/dist/components/features/filters/filters.types.d.ts +3 -0
  176. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  177. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  178. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  179. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  180. package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
  181. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  182. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  183. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  184. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  185. package/dist/components/features/media-library/media-library.types.d.ts +14 -4
  186. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  187. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  188. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  189. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  190. package/dist/components/features/products/products.strings.d.ts +9 -1
  191. package/dist/components/features/products/products.types.d.ts +43 -6
  192. package/dist/components/features/resource/resource.d.ts +5 -1
  193. package/dist/components/features/resource/resource.types.d.ts +12 -1
  194. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  195. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  196. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  197. package/dist/components/features/table/table.types.d.ts +1 -1
  198. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  199. package/dist/components/layout/app-shell/index.d.ts +1 -1
  200. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  201. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  202. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  203. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  204. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  205. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  206. package/dist/components/layout/header/header.types.d.ts +6 -6
  207. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  208. package/dist/components/layout/page/index.d.ts +2 -1
  209. package/dist/components/layout/page/page.d.ts +1 -0
  210. package/dist/components/layout/page/page.strings.d.ts +11 -0
  211. package/dist/components/layout/page/page.types.d.ts +69 -17
  212. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  213. package/dist/components/layout/settings/settings.d.ts +9 -2
  214. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  215. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  216. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  217. package/dist/components/layout/sidebar/index.d.ts +2 -1
  218. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
  219. package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
  220. package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
  221. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  222. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  223. package/dist/components/ui/alert-dialog.d.ts +2 -2
  224. package/dist/components/ui/combobox.d.ts +1 -1
  225. package/dist/components/ui/dialog.d.ts +2 -2
  226. package/dist/components/ui/overlay-layer.d.ts +18 -0
  227. package/dist/components/ui/sheet.d.ts +5 -1
  228. package/dist/components/ui/sidebar-state.d.ts +82 -0
  229. package/dist/components/ui/sidebar.d.ts +5 -17
  230. package/dist/{containers-CRmHf7GP.js → containers-CIxwbZt5.js} +26 -18
  231. package/dist/containers-CIxwbZt5.js.map +1 -0
  232. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  233. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  234. package/dist/{copyable-CnGCZdX4.js → copyable-DIznBqiT.js} +7 -7
  235. package/dist/{copyable-CnGCZdX4.js.map → copyable-DIznBqiT.js.map} +1 -1
  236. package/dist/{data-display-D4oujtx0.js → data-display-BdgCAw8T.js} +268 -277
  237. package/dist/data-display-BdgCAw8T.js.map +1 -0
  238. package/dist/{date-Q7jnXxpk.js → date-Cq8ioE4o.js} +5 -5
  239. package/dist/{date-Q7jnXxpk.js.map → date-Cq8ioE4o.js.map} +1 -1
  240. package/dist/{date-picker-zOt1oNss.js → date-picker-RlIzKom_.js} +446 -437
  241. package/dist/date-picker-RlIzKom_.js.map +1 -0
  242. package/dist/{date-pickers-cj8IXbDC.js → date-pickers-DY-CpXS1.js} +12 -12
  243. package/dist/{date-pickers-cj8IXbDC.js.map → date-pickers-DY-CpXS1.js.map} +1 -1
  244. package/dist/{display-BB4BL_-K.js → display-KsZLw9Ov.js} +9 -9
  245. package/dist/{display-BB4BL_-K.js.map → display-KsZLw9Ov.js.map} +1 -1
  246. package/dist/dropdown-menu-CLs8Lihj.js +194 -0
  247. package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
  248. package/dist/features/activities.js +302 -253
  249. package/dist/features/activities.js.map +1 -1
  250. package/dist/features/ai-chat.js +15 -14
  251. package/dist/features/ai-chat.js.map +1 -1
  252. package/dist/features/appointment-calendar.js +22 -22
  253. package/dist/features/appointment-calendar.js.map +1 -1
  254. package/dist/features/async-preview.js +11 -10
  255. package/dist/features/async-preview.js.map +1 -1
  256. package/dist/features/combobox.js +1 -1
  257. package/dist/features/comments.js +1 -1
  258. package/dist/features/data-view.js +13 -13
  259. package/dist/features/data-view.js.map +1 -1
  260. package/dist/features/email-composer.js +237 -238
  261. package/dist/features/email-composer.js.map +1 -1
  262. package/dist/features/event-calendar.js +140 -146
  263. package/dist/features/event-calendar.js.map +1 -1
  264. package/dist/features/filters.js +1 -1
  265. package/dist/features/global-search.js +167 -138
  266. package/dist/features/global-search.js.map +1 -1
  267. package/dist/features/kanban.js +6 -7
  268. package/dist/features/kanban.js.map +1 -1
  269. package/dist/features/map.js +269 -260
  270. package/dist/features/map.js.map +1 -1
  271. package/dist/features/media-library.js +375 -326
  272. package/dist/features/media-library.js.map +1 -1
  273. package/dist/features/mentions.js +1 -1
  274. package/dist/features/overlays.js +1 -1
  275. package/dist/features/products.js +1266 -1193
  276. package/dist/features/products.js.map +1 -1
  277. package/dist/features/questionnaire.js +13 -13
  278. package/dist/features/questionnaire.js.map +1 -1
  279. package/dist/features/resource-assignment.js +8 -8
  280. package/dist/features/resource.js +69 -66
  281. package/dist/features/resource.js.map +1 -1
  282. package/dist/features/rich-text-editor.js +2 -2
  283. package/dist/features/schema-form.js +13 -13
  284. package/dist/features/suggestions.js +3 -3
  285. package/dist/features/sync.js +3 -3
  286. package/dist/features/table.js +1 -1
  287. package/dist/features/theme-tweaker.js +94 -95
  288. package/dist/features/theme-tweaker.js.map +1 -1
  289. package/dist/{feedback-DZNL5Lg1.js → feedback-Dm4izqFn.js} +80 -79
  290. package/dist/feedback-Dm4izqFn.js.map +1 -0
  291. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
  292. package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
  293. package/dist/{filters-BcT-uoFy.js → filters-DzgSJpMK.js} +693 -645
  294. package/dist/filters-DzgSJpMK.js.map +1 -0
  295. package/dist/{form-field-CsgRmdit.js → form-field-BriWAXyg.js} +6 -6
  296. package/dist/{form-field-CsgRmdit.js.map → form-field-BriWAXyg.js.map} +1 -1
  297. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-Bs2qFUeE.js} +4 -4
  298. package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
  299. package/dist/{forms-BV5m5aQF.js → forms-C0RGnJTe.js} +17 -13
  300. package/dist/forms-C0RGnJTe.js.map +1 -0
  301. package/dist/{forms-numeric-Cd33AKbD.js → forms-numeric-DIhghX1Q.js} +86 -82
  302. package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
  303. package/dist/{header-BA697l4a.js → header-DMMxG__r.js} +67 -63
  304. package/dist/header-DMMxG__r.js.map +1 -0
  305. package/dist/header.recipes-BigdJjw1.js +6 -0
  306. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  307. package/dist/{hooks-BQ-L7Uu2.js → hooks-DB6CJ4MR.js} +26 -14
  308. package/dist/hooks-DB6CJ4MR.js.map +1 -0
  309. package/dist/{icon-badge-COWbCCWu.js → icon-badge-DZF-YjQp.js} +4 -4
  310. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
  311. package/dist/index.js +4 -5
  312. package/dist/{input-Cdw4k0fb.js → input-CvyDQlY7.js} +8 -8
  313. package/dist/{input-Cdw4k0fb.js.map → input-CvyDQlY7.js.map} +1 -1
  314. package/dist/input-DMBwAZmr.js +21 -0
  315. package/dist/input-DMBwAZmr.js.map +1 -0
  316. package/dist/{item-BvZ2DR_x.js → item-DjCcM18E.js} +16 -16
  317. package/dist/item-DjCcM18E.js.map +1 -0
  318. package/dist/layout/app-shell.js +1 -1
  319. package/dist/layout/auth.js +1 -1
  320. package/dist/layout/containers.js +1 -1
  321. package/dist/layout/header.js +1 -1
  322. package/dist/layout/hooks.js +1 -1
  323. package/dist/layout/navigation.js +1 -1
  324. package/dist/layout/page.js +2 -2
  325. package/dist/layout/settings.js +1 -1
  326. package/dist/layout/sidebar.js +3 -3
  327. package/dist/layout/workspace.js +1 -1
  328. package/dist/layout.js +11 -11
  329. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  330. package/dist/lib/control-group-recipes.d.ts +5 -5
  331. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  332. package/dist/lib/motion-recipes.d.ts +3 -0
  333. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  334. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  335. package/dist/lib/portal-recipes.d.ts +3 -0
  336. package/dist/lib/token-merge.generated.d.ts +13 -10
  337. package/dist/lib/utils.js +1 -1
  338. package/dist/map-demo-tile.svg +1 -1
  339. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C-vChPmE.js} +6 -6
  340. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C-vChPmE.js.map} +1 -1
  341. package/dist/{mentions-RKOQaaIB.js → mentions-0_4nWuI-.js} +10 -10
  342. package/dist/{mentions-RKOQaaIB.js.map → mentions-0_4nWuI-.js.map} +1 -1
  343. package/dist/{message-INU2xsxu.js → message-g8p7eVtN.js} +7 -7
  344. package/dist/message-g8p7eVtN.js.map +1 -0
  345. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-C3MkU-Om.js} +64 -64
  346. package/dist/metadata-list-C3MkU-Om.js.map +1 -0
  347. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  348. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  349. package/dist/navigation-C90-oQFq.js +255 -0
  350. package/dist/navigation-C90-oQFq.js.map +1 -0
  351. package/dist/{navigation-BQNcg1jT.js → navigation-DaRjthVk.js} +101 -82
  352. package/dist/navigation-DaRjthVk.js.map +1 -0
  353. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  354. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  355. package/dist/{number-E_OiIfJz.js → number-CRU3kGuk.js} +5 -5
  356. package/dist/{number-E_OiIfJz.js.map → number-CRU3kGuk.js.map} +1 -1
  357. package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
  358. package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
  359. package/dist/overlays-BSgCtM2v.js +1013 -0
  360. package/dist/overlays-BSgCtM2v.js.map +1 -0
  361. package/dist/page-DUUKDAjo.js +331 -0
  362. package/dist/page-DUUKDAjo.js.map +1 -0
  363. package/dist/page-header-commands-7P3sfE9u.js +193 -0
  364. package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
  365. package/dist/{pagination-Ch8X_47u.js → pagination-CgCjElfu.js} +7 -7
  366. package/dist/{pagination-Ch8X_47u.js.map → pagination-CgCjElfu.js.map} +1 -1
  367. package/dist/popover-B85RenIl.js +201 -0
  368. package/dist/popover-B85RenIl.js.map +1 -0
  369. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-DlnQ2zlR.js} +7 -7
  370. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
  371. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
  372. package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
  373. package/dist/portal-recipes-BpsV_iRw.js +9 -0
  374. package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
  375. package/dist/{primitives-Du64iDbb.js → primitives-ByWgGUgt.js} +5 -5
  376. package/dist/{primitives-Du64iDbb.js.map → primitives-ByWgGUgt.js.map} +1 -1
  377. package/dist/primitives.js +4 -4
  378. package/dist/{progress-BvF2oCdV.js → progress-BJhQP9WX.js} +9 -9
  379. package/dist/{progress-BvF2oCdV.js.map → progress-BJhQP9WX.js.map} +1 -1
  380. package/dist/{receipt-D789Jwyy.js → receipt-tOc7B3hw.js} +7 -7
  381. package/dist/receipt-tOc7B3hw.js.map +1 -0
  382. package/dist/{rich-text-CLJEf76s.js → rich-text-Dth5E882.js} +3 -3
  383. package/dist/{rich-text-CLJEf76s.js.map → rich-text-Dth5E882.js.map} +1 -1
  384. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-C1fOjBTd.js} +429 -430
  385. package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
  386. package/dist/{rich-text-editor-toolbar-L__e4x47.js → rich-text-editor-toolbar-laT3tpBT.js} +32 -28
  387. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
  388. package/dist/{scroll-area-La5RXsEk.js → scroll-area-B0dB2cBi.js} +2 -2
  389. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
  390. package/dist/{separator-DAEV0w65.js → separator-Bb17I4pu.js} +2 -2
  391. package/dist/{separator-DAEV0w65.js.map → separator-Bb17I4pu.js.map} +1 -1
  392. package/dist/{separator-GNfPG-90.js → separator-Ct_WSWTJ.js} +3 -3
  393. package/dist/{separator-GNfPG-90.js.map → separator-Ct_WSWTJ.js.map} +1 -1
  394. package/dist/services/actions.js +1 -1
  395. package/dist/{settings-BA2iboic.js → settings-Bar5wiSo.js} +31 -38
  396. package/dist/settings-Bar5wiSo.js.map +1 -0
  397. package/dist/sheet-BGPERY55.js +250 -0
  398. package/dist/sheet-BGPERY55.js.map +1 -0
  399. package/dist/sidebar-D-JYMMbY.js +686 -0
  400. package/dist/sidebar-D-JYMMbY.js.map +1 -0
  401. package/dist/sidebar-f9gRWXIR.js +1001 -0
  402. package/dist/sidebar-f9gRWXIR.js.map +1 -0
  403. package/dist/skeleton-BapcJd9C.js +265 -0
  404. package/dist/skeleton-BapcJd9C.js.map +1 -0
  405. package/dist/smart-card-CW0hjetE.js +617 -0
  406. package/dist/smart-card-CW0hjetE.js.map +1 -0
  407. package/dist/{structure-C0V0_Fyf.js → structure-DuxKl954.js} +2 -2
  408. package/dist/{structure-C0V0_Fyf.js.map → structure-DuxKl954.js.map} +1 -1
  409. package/dist/style.css +1 -1
  410. package/dist/{table-CpvnzJn9.js → table-B4TE7iOV.js} +3 -3
  411. package/dist/{table-CpvnzJn9.js.map → table-B4TE7iOV.js.map} +1 -1
  412. package/dist/{table-DH7rozUv.js → table-CFOWY9pQ.js} +394 -388
  413. package/dist/table-CFOWY9pQ.js.map +1 -0
  414. package/dist/{tabs-eqVsJZWO.js → tabs-e7ko9S2o.js} +11 -11
  415. package/dist/tabs-e7ko9S2o.js.map +1 -0
  416. package/dist/{text-inputs-DXItiR0O.js → text-inputs-B1culiSK.js} +17 -17
  417. package/dist/text-inputs-B1culiSK.js.map +1 -0
  418. package/dist/theme.css +40 -37
  419. package/dist/{timelines-DmtztAY_.js → timelines-D3Sl9ueq.js} +13 -12
  420. package/dist/timelines-D3Sl9ueq.js.map +1 -0
  421. package/dist/tooltip-8wz5S_Zr.js +113 -0
  422. package/dist/tooltip-8wz5S_Zr.js.map +1 -0
  423. package/dist/{tree-CV11PURP.js → tree-CzUJHnFs.js} +8 -8
  424. package/dist/{tree-CV11PURP.js.map → tree-CzUJHnFs.js.map} +1 -1
  425. package/dist/typography/rich-text.js +1 -1
  426. package/dist/{typography-CSyJrh28.js → typography-BQnine1k.js} +12 -12
  427. package/dist/{typography-CSyJrh28.js.map → typography-BQnine1k.js.map} +1 -1
  428. package/dist/typography.js +1 -1
  429. package/dist/ui-provider-C-74NVLc.js +178 -0
  430. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  431. package/dist/ui-provider.js +2 -3
  432. package/dist/{upload-C9SA0X-8.js → upload-BOW6U2tI.js} +25 -24
  433. package/dist/upload-BOW6U2tI.js.map +1 -0
  434. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-qUXn1ykN.js} +16 -14
  435. package/dist/upload-queue-qUXn1ykN.js.map +1 -0
  436. package/dist/{usage-card-DVTRDmGz.js → usage-card-BeSLY0i0.js} +24 -17
  437. package/dist/usage-card-BeSLY0i0.js.map +1 -0
  438. package/dist/{utils-CF3c95Io.js → utils-B6kKb8jB.js} +237 -141
  439. package/dist/utils-B6kKb8jB.js.map +1 -0
  440. package/dist/value-inputs-skdVB2zh.js +980 -0
  441. package/dist/value-inputs-skdVB2zh.js.map +1 -0
  442. package/dist/{value-typography-ClupF0Gz.js → value-typography-uAmWUAL1.js} +2 -2
  443. package/dist/{value-typography-ClupF0Gz.js.map → value-typography-uAmWUAL1.js.map} +1 -1
  444. package/dist/{workspace-9EFVXUyk.js → workspace-DHeHv0qw.js} +50 -49
  445. package/dist/workspace-DHeHv0qw.js.map +1 -0
  446. package/docs/consumer-skill/SKILL.md +4 -3
  447. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  448. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  449. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  450. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  451. package/docs/consumer-skill/examples/detail.tsx +5 -4
  452. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  453. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  454. package/docs/consumer-skill/examples/manifest.json +38 -1
  455. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  456. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  457. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  458. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  459. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  460. package/docs/consumer-skill/references/agents-md.md +19 -17
  461. package/docs/consumer-skill/references/analytics.md +18 -1
  462. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  463. package/docs/consumer-skill/references/component-contracts.json +7131 -1754
  464. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  465. package/docs/consumer-skill/references/composition.md +159 -31
  466. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  467. package/docs/consumer-skill/references/custom-composition.md +261 -0
  468. package/docs/consumer-skill/references/data-reading.md +79 -0
  469. package/docs/consumer-skill/references/design-contract.md +11 -9
  470. package/docs/consumer-skill/references/discovery.md +27 -3
  471. package/docs/consumer-skill/references/domain-structures.md +124 -0
  472. package/docs/consumer-skill/references/installation.md +15 -4
  473. package/docs/consumer-skill/references/integration.md +35 -0
  474. package/docs/consumer-skill/references/product-composition.md +94 -0
  475. package/docs/consumer-skill/references/public-api.json +2881 -420
  476. package/docs/consumer-skill/references/review.md +39 -2
  477. package/docs/consumer-skill/references/rhf-workflows.md +7 -0
  478. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  479. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  480. package/docs/consumer-skill/references/theming.md +17 -18
  481. package/docs/consumer-skill/references/tokens.json +9 -9
  482. package/docs/consumer-skill/references/view-craft.md +153 -0
  483. package/docs/consumer-skill/references/view-spec.md +73 -0
  484. package/docs/consumer-skill/references/workflows.md +7 -1
  485. package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
  486. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  487. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  488. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  489. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  490. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  491. package/docs/consumer-skill/scripts/setup-skills.mjs +41 -6
  492. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  493. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  494. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  495. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  496. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  497. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  498. package/package.json +1 -1
  499. package/dist/accordion-96o0pN62.js.map +0 -1
  500. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  501. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  502. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  503. package/dist/app-shell-D63ATkIK.js +0 -237
  504. package/dist/app-shell-D63ATkIK.js.map +0 -1
  505. package/dist/auth-D2FVZ1MH.js.map +0 -1
  506. package/dist/avatar-DWO_HHhB.js.map +0 -1
  507. package/dist/base/cascader.js.map +0 -1
  508. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  509. package/dist/button-DkmK-z8E.js.map +0 -1
  510. package/dist/buttons-BbfzgczK.js.map +0 -1
  511. package/dist/cards-4JTWqvVe.js +0 -68
  512. package/dist/cards-4JTWqvVe.js.map +0 -1
  513. package/dist/chart-C19flDQb.js +0 -155
  514. package/dist/chart-C19flDQb.js.map +0 -1
  515. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  516. package/dist/code-block-CGNaUtAE.js.map +0 -1
  517. package/dist/combobox-CBJDs6w_.js.map +0 -1
  518. package/dist/combobox-hbhSS18O.js +0 -355
  519. package/dist/combobox-hbhSS18O.js.map +0 -1
  520. package/dist/command-D8NrBj-b.js.map +0 -1
  521. package/dist/containers-CRmHf7GP.js.map +0 -1
  522. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  523. package/dist/data-display-D4oujtx0.js.map +0 -1
  524. package/dist/date-picker-zOt1oNss.js.map +0 -1
  525. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  526. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  527. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  528. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  529. package/dist/filters-BcT-uoFy.js.map +0 -1
  530. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  531. package/dist/forms-BV5m5aQF.js.map +0 -1
  532. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  533. package/dist/header-BA697l4a.js.map +0 -1
  534. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  535. package/dist/input-DOPL5_QE.js +0 -21
  536. package/dist/input-DOPL5_QE.js.map +0 -1
  537. package/dist/item-BvZ2DR_x.js.map +0 -1
  538. package/dist/message-INU2xsxu.js.map +0 -1
  539. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  540. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  541. package/dist/navigation-BQNcg1jT.js.map +0 -1
  542. package/dist/navigation-DLF3E1IC.js +0 -145
  543. package/dist/navigation-DLF3E1IC.js.map +0 -1
  544. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  545. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  546. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  547. package/dist/overlays-BlKynmde.js +0 -1004
  548. package/dist/overlays-BlKynmde.js.map +0 -1
  549. package/dist/page-CIwNUtGr.js +0 -227
  550. package/dist/page-CIwNUtGr.js.map +0 -1
  551. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  552. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  553. package/dist/popover-uwzX2vo7.js +0 -198
  554. package/dist/popover-uwzX2vo7.js.map +0 -1
  555. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  556. package/dist/receipt-D789Jwyy.js.map +0 -1
  557. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  558. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  559. package/dist/settings-BA2iboic.js.map +0 -1
  560. package/dist/sheet-DoAxTb2J.js +0 -213
  561. package/dist/sheet-DoAxTb2J.js.map +0 -1
  562. package/dist/sidebar-ByqKR_W5.js +0 -512
  563. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  564. package/dist/sidebar-D2iSnGJ7.js +0 -619
  565. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  566. package/dist/skeleton-CUj8O5Bd.js +0 -264
  567. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  568. package/dist/smart-card-CqkzQsK-.js +0 -614
  569. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  570. package/dist/table-DH7rozUv.js.map +0 -1
  571. package/dist/tabs-eqVsJZWO.js.map +0 -1
  572. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  573. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  574. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  575. package/dist/timelines-DmtztAY_.js.map +0 -1
  576. package/dist/tooltip-B4hjKtoV.js +0 -111
  577. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  578. package/dist/ui-provider-CQCuCBcy.js +0 -136
  579. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  580. package/dist/upload-C9SA0X-8.js.map +0 -1
  581. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  582. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  583. package/dist/use-mobile-vaLKwgyf.js +0 -15
  584. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  585. package/dist/utils-CF3c95Io.js.map +0 -1
  586. package/dist/value-inputs-C0o70p-U.js +0 -980
  587. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  588. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -63,6 +63,10 @@ export interface FilterStrings {
63
63
  activeFilters: string;
64
64
  clearSearch: string;
65
65
  backToFilters: string;
66
+ /** Returns from a nested option level to its parent level. */
67
+ previousLevel: string;
68
+ /** Chooses the nested option level being viewed, when branches are selectable. */
69
+ selectCurrentLevel: string;
66
70
  select: string;
67
71
  options: string;
68
72
  operator: string;
@@ -64,6 +64,7 @@ export interface FilterOption {
64
64
  value: string;
65
65
  /** Leading glyph. */
66
66
  icon: ReactNode;
67
+ /** Nested options. SELECT and MULTI_SELECT editors show them level by level, and a chosen option reads as its path. */
67
68
  children?: FilterOption[];
68
69
  /** Renders the entry as unselectable. */
69
70
  disabled?: boolean;
@@ -167,6 +168,8 @@ export interface FilterConfig {
167
168
  validation?: ValidationConfig;
168
169
  dependencies?: FilterDependency[];
169
170
  multiple?: boolean;
171
+ /** For nested options: only leaves can be chosen (default), or any option, including a branch. */
172
+ selectableOptions?: 'leaf' | 'any';
170
173
  closeOnSelect?: boolean;
171
174
  maxSelected?: number;
172
175
  /** Async option loading config for ASYNC_SELECT filters. */
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ interface FilterEditorHeaderProps {
3
+ /** The filter label shown as the editor title. */
4
+ title: ReactNode;
5
+ /** Optional supporting line under the title. */
6
+ description?: ReactNode;
7
+ /** Returns to the filter list; the back button shows only when this is set. */
8
+ onBack?: () => void;
9
+ }
10
+ /**
11
+ * The one header every value editor uses — list, date and tag editors alike:
12
+ * an optional back button and the filter label as the popover title, set in
13
+ * the compact editor surface so every editor starts on the same band.
14
+ */
15
+ export declare function FilterEditorHeader({ title, description, onBack }: FilterEditorHeaderProps): import("react").JSX.Element;
16
+ export {};
@@ -1,4 +1,4 @@
1
- import type { ComponentProps } from 'react';
1
+ import { type ComponentProps } from 'react';
2
2
  import { PopoverContent } from '../../../base/popover';
3
3
  import { type FilterConfig, type FilterTriggerSource } from '../filters.types';
4
4
  export interface FilterPopoverContentProps {
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { FilterConfig } from '../filters.types';
3
+ interface NestedFilterOptionsProps {
4
+ /** Definition of the filter this control edits; its options nest `children`. */
5
+ filter: FilterConfig;
6
+ /** Current draft value. */
7
+ value: string[];
8
+ /** Whether several options can be chosen. */
9
+ multiple: boolean;
10
+ /** Receives the next draft value. */
11
+ onChange: (value: string[]) => void;
12
+ /** The editor's header, shown at the root level; a drilled level shows its own header and path instead. */
13
+ header: ReactNode;
14
+ }
15
+ /**
16
+ * NestedFilterOptions — the SELECT / MULTI_SELECT editor body for options with
17
+ * `children`. It shows one level at a time through the shared cascader panel,
18
+ * with path search across every level, inside the filter's own popover.
19
+ */
20
+ export declare function NestedFilterOptions({ filter, value, multiple, onChange, header }: NestedFilterOptionsProps): import("react").JSX.Element;
21
+ export {};
@@ -22,7 +22,8 @@ interface RegularFilterContentProps {
22
22
  * the trailing edge — only rendered when the user has changed selection.
23
23
  *
24
24
  * Sizes are tuned to feel like a native menu, not a card. Popover width
25
- * stays at ~260-300px so labels read at one glance.
25
+ * stays at ~260-300px so labels read at one glance. Options with `children`
26
+ * replace the flat list with one level at a time (NestedFilterOptions).
26
27
  */
27
28
  export declare function RegularFilterContent({ filter, value, onFilterChange, onBackToFilterList, onClose, triggerSource, }: RegularFilterContentProps): import("react").JSX.Element;
28
29
  export {};
@@ -1,9 +1,27 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { FilterConfig, FilterDependency } from '../filters.types';
2
+ import type { CascaderNode } from '../../../base/cascader';
3
+ import type { FilterConfig, FilterDependency, FilterOption } from '../filters.types';
3
4
  /**
4
- * Gets the label for a filter option
5
+ * The option for a value and its ancestors, searching nested options.
5
6
  */
6
- export declare function getFilterOptionLabel(filter: FilterConfig, value: string): string | undefined;
7
+ export declare function findFilterOptionPath(options: readonly FilterOption[] | undefined, value: string): FilterOption[];
8
+ /**
9
+ * A sentence-case label inside running text, such as a footer count:
10
+ * "Created date" reads "created date", while acronyms such as "SKU" stay.
11
+ */
12
+ export declare function labelInRunningText(label: string): string;
13
+ /**
14
+ * Whether any option nests children, so the editor shows them level by level.
15
+ */
16
+ export declare function hasNestedFilterOptions(options?: readonly FilterOption[]): boolean;
17
+ /**
18
+ * Nested filter options as cascader nodes.
19
+ */
20
+ export declare function toCascaderNodes(options: readonly FilterOption[]): CascaderNode[];
21
+ /**
22
+ * Gets the label for a filter option; a nested option reads as its path, such as "Europe / Greece".
23
+ */
24
+ export declare function getFilterOptionLabel(filter: FilterConfig, value: string, separator?: string): string | undefined;
7
25
  /**
8
26
  * Gets the icon for a filter option
9
27
  */
@@ -85,6 +85,8 @@ export interface GlobalSearchRenderResultContext {
85
85
  query: string;
86
86
  /** Fired when an entry is activated. */
87
87
  onSelect: () => void;
88
+ /** Id of the option wrapping this row, which the search field names as its active descendant. */
89
+ optionId?: string;
88
90
  }
89
91
  /** Slot map — every consumer-overridable surface. */
90
92
  export interface GlobalSearchSlots<TGroup extends string = string> {
@@ -13,5 +13,15 @@ export interface GlobalSearchInputProps {
13
13
  loading?: boolean;
14
14
  /** Focuses the control on mount. */
15
15
  autoFocus?: boolean;
16
+ /**
17
+ * Whether the results list is showing. Setting it makes the field a
18
+ * combobox (`role="combobox"`, `aria-expanded`), the pattern for a search
19
+ * whose results are navigated with the arrow keys while focus stays here.
20
+ */
21
+ expanded?: boolean;
22
+ /** Id(s) of the results listbox(es) the combobox controls, while expanded. */
23
+ controls?: string;
24
+ /** Id of the highlighted result, announced as the active option. */
25
+ activeDescendant?: string;
16
26
  }
17
27
  export declare const GlobalSearchInput: React.ForwardRefExoticComponent<GlobalSearchInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -10,7 +10,13 @@ export interface GlobalSearchResultRowProps<TGroup extends string = string> {
10
10
  /** Fired when an entry is activated. */
11
11
  onSelect?: () => void;
12
12
  onMouseEnter?: () => void;
13
+ /**
14
+ * Id of this row as an option of a results listbox. When set, the row is a
15
+ * `role="option"` reached through the search field's active descendant
16
+ * rather than by Tab; standalone rows stay plain buttons.
17
+ */
18
+ optionId?: string;
13
19
  /** Merged onto the outermost node. */
14
20
  className?: string;
15
21
  }
16
- export declare function GlobalSearchResultRow<TGroup extends string = string>({ result, active, query, onSelect, onMouseEnter, className, }: GlobalSearchResultRowProps<TGroup>): React.JSX.Element;
22
+ export declare function GlobalSearchResultRow<TGroup extends string = string>({ result, active, query, onSelect, onMouseEnter, optionId, className, }: GlobalSearchResultRowProps<TGroup>): React.JSX.Element;
@@ -39,6 +39,8 @@ export interface MediaLibraryStrings {
39
39
  loading: string;
40
40
  errorTitle: string;
41
41
  errorDescription: string;
42
+ /** Retry action in the load error state. Defaults to "Try again". */
43
+ retry?: string;
42
44
  cardDetails: string;
43
45
  /** Toolbar toggle that turns selection mode on or off. */
44
46
  selectMode: string;
@@ -201,6 +201,8 @@ export interface MediaLibraryState<TItem = MediaLibraryItem> {
201
201
  clearFilters: () => void;
202
202
  loading: boolean;
203
203
  error: unknown;
204
+ /** Runs the fetcher again for the current query after a failure; does nothing in local mode. */
205
+ retry: () => void;
204
206
  hasFilters: boolean;
205
207
  totalCount: number;
206
208
  filteredCount: number;
@@ -419,14 +421,18 @@ export interface MediaResourceGalleryItemRenderContext<TItem = MediaLibraryItem>
419
421
  id: string;
420
422
  /** Zero-based position of the entry in its list. */
421
423
  index: number;
422
- /** Total number of records across all pages. */
424
+ /** Number of attached items in this gallery. */
423
425
  total: number;
424
426
  primary: boolean;
425
427
  /** Reads id, name, URL, type, and size off your own asset shape. */
426
428
  accessors: ResolvedMediaLibraryAccessors<TItem>;
429
+ /** Whether reordering is supported, writable, and an earlier position exists. */
427
430
  canMovePrevious: boolean;
431
+ /** Whether reordering is supported, writable, and a later position exists. */
428
432
  canMoveNext: boolean;
433
+ /** Keeps its callable shape; does nothing in read-only mode or without its handler. */
429
434
  setPrimary: () => void;
435
+ /** Keeps its callable shape; does nothing in read-only mode or without its handler. */
430
436
  remove: () => void;
431
437
  movePrevious: () => void;
432
438
  moveNext: () => void;
@@ -442,11 +448,11 @@ export interface MediaResourceGalleryProps<TItem = MediaLibraryItem> extends Omi
442
448
  description?: ReactNode;
443
449
  /** Id of the asset marked primary — the resource's cover image. */
444
450
  primaryId?: string;
445
- /** Fired when a different asset is promoted to primary. */
451
+ /** Fired when a different asset is promoted to primary. Omit to hide the default primary command. */
446
452
  onPrimaryChange?: (id: string, item: TItem) => void;
447
- /** Fired when an asset is detached from the resource. */
453
+ /** Fired when an asset is detached from the resource. Omit to hide the default remove command. */
448
454
  onRemove?: (id: string, item: TItem) => void;
449
- /** Fired with the next order after a drag. */
455
+ /** Fired with the next order from a move command. Omit to hide default reorder commands. */
450
456
  onReorder?: (ids: string[], items: TItem[]) => void;
451
457
  /** Fired when the user asks to attach more assets — usually opens the library dialog. */
452
458
  onAdd?: () => void;
@@ -583,6 +589,10 @@ export interface MediaLibraryToolbarProps {
583
589
  selecting?: boolean;
584
590
  /** Renders the Select toggle, which turns selection mode on or off. */
585
591
  onSelectingChange?: (selecting: boolean) => void;
592
+ /** Result summary, such as the item count; it sits with the view controls. */
593
+ summary?: ReactNode;
594
+ /** Disables every control, for example while the collection failed to load. */
595
+ disabled?: boolean;
586
596
  }
587
597
  export interface MediaLibraryFooterSummaryProps {
588
598
  /** Which tab is showing — browse or upload. */
@@ -1,6 +1,6 @@
1
1
  import type { MediaLibraryCardProps, MediaLibraryDetailPanelProps, MediaLibraryEmptyStateProps, MediaLibraryFooterActionsProps, MediaLibraryFooterProps, MediaLibraryFooterSummaryProps, MediaLibraryListProps, MediaLibraryToolbarProps, MediaLibraryUploadPanelProps } from '../media-library.types';
2
2
  export declare function MediaLibraryEmptyState({ icon, title, description, action, className, }: MediaLibraryEmptyStateProps): import("react").JSX.Element;
3
- export declare function MediaLibraryToolbar({ query, type, typeFilters, collection, sort, view, collections, strings, onQueryChange, onTypeChange, onCollectionChange, onSortChange, onViewChange, onClearFilters, toolbarEnd, selecting, onSelectingChange, }: MediaLibraryToolbarProps): import("react").JSX.Element;
3
+ export declare function MediaLibraryToolbar({ query, type, typeFilters, collection, sort, view, collections, strings, onQueryChange, onTypeChange, onCollectionChange, onSortChange, onViewChange, onClearFilters, toolbarEnd, selecting, onSelectingChange, summary, disabled, }: MediaLibraryToolbarProps): import("react").JSX.Element;
4
4
  export declare function MediaLibraryCard<TItem>({ item, selected, density, showMeta, accessors, strings, onToggle, onDetails, onOpen, selecting, className, }: MediaLibraryCardProps<TItem>): import("react").JSX.Element;
5
5
  export declare function MediaLibraryList<TItem>({ items, selectedSet, accessors, strings, onToggle, onDetails, onOpen, selecting, }: MediaLibraryListProps<TItem>): import("react").JSX.Element;
6
6
  export declare function MediaLibraryDetailPanel<TItem>({ item, collections, accessors, strings, onClose, onUpdate, onRemove, onReplace, renderDetail, }: MediaLibraryDetailPanelProps<TItem>): import("react").JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  import type { ProductOptionsMatrixProps } from '../products.types';
2
- export declare function ProductOptionsMatrix({ optionGroups, surface, collapsedOptionIds, defaultCollapsedOptionIds, onCollapsedOptionIdsChange, editingOptionId, defaultEditingOptionId, onEditingOptionIdChange, onCreateOption, onEditOption, onDeleteOption, confirmDelete, onAddValue, onDeleteValue, onOptionNameChange, onValueLabelChange, onDoneEditingOption, onSaveEditingOption, onCancelEditingOption, onToggleUsedForVariants, renderOptionActions, renderValue, showHeader: showHeaderProp, showCollapseControls, showInlineActions, showVariantToggle, actions, headerEnd, footerSlot, empty, className, strings: stringsProp, }: ProductOptionsMatrixProps): import("react").JSX.Element;
2
+ export declare function ProductOptionsMatrix({ optionGroups, surface, collapsedOptionIds, defaultCollapsedOptionIds, onCollapsedOptionIdsChange, editingOptionId, defaultEditingOptionId, onEditingOptionIdChange, onCreateOption, onEditOption, onDeleteOption, confirmDelete, onAddValue, onDeleteValue, onOptionNameChange, onValueLabelChange, onDoneEditingOption, onSaveEditingOption, onError, onCancelEditingOption, onToggleUsedForVariants, renderOptionActions, renderValue, showHeader: showHeaderProp, showCollapseControls, showInlineActions, showVariantToggle, actions, headerEnd, footerSlot, empty, className, strings: stringsProp, }: ProductOptionsMatrixProps): import("react").JSX.Element;
3
3
  export declare namespace ProductOptionsMatrix {
4
4
  var displayName: string;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import type { ProductVariantEditorProps } from '../products.types';
2
- export declare function ProductVariantEditor({ value: valueProp, defaultValue, optionFields, statusOptions, onValueChange, onSubmit, onError, onCancel, onDelete, actions, headerEnd, footerSlot, disabled, submitting, className, strings: stringsProp, }: ProductVariantEditorProps): import("react").JSX.Element;
2
+ export declare function ProductVariantEditor({ value: valueProp, defaultValue, optionFields, statusOptions, onValueChange, onSubmit, onError, onCancel, onDelete, actions, headerEnd, footerSlot, visibleFields, errors, formId: formIdProp, showHeader, children, disabled, submitting, className, strings: stringsProp, }: ProductVariantEditorProps): import("react").JSX.Element;
3
3
  export declare namespace ProductVariantEditor {
4
4
  var displayName: string;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import type { ProductVariantsManagerProps } from '../products.types';
2
- export declare function ProductVariantsManager({ optionGroups, variants, visibleColumns, optionCombinationDisplay, cellDisplay, selectionMode, renderOptionCombination, renderCell, selectedVariantIds, defaultSelectedVariantIds, onSelectedVariantIdsChange, onVariantFieldChange, onVariantFieldBlur, collapsedOptionIds, defaultCollapsedOptionIds, onCollapsedOptionIdsChange, editingOptionId, defaultEditingOptionId, onEditingOptionIdChange, onCreateOption, onEditOption, onDeleteOption, onAddValue, onDeleteValue, onOptionNameChange, onValueLabelChange, onDoneEditingOption, onSaveEditingOption, onCancelEditingOption, onToggleUsedForVariants, renderOptionActions, renderValue, onCreateVariant, onGenerateVariants, onSelectVariant, onEditVariant, onDuplicateVariant, onDeleteVariant, onBulkEdit, onBulkApply, onBulkDelete, renderVariantActions, renderBulkActions, groupByOptionId, defaultGroupByOptionId, onGroupByOptionIdChange, onSearchVariants, onFilterVariants, controlsEnd, actions, headerEnd, footerSlot, surface, padding, headerDivider, footerDivider, className, strings: stringsProp, optionsStrings, variantsStrings, }: ProductVariantsManagerProps): import("react").JSX.Element;
2
+ export declare function ProductVariantsManager({ optionGroups, variants, visibleColumns, optionCombinationDisplay, cellDisplay, selectionMode, renderOptionCombination, renderCell, selectedVariantIds, defaultSelectedVariantIds, onSelectedVariantIdsChange, onVariantFieldChange, onVariantFieldBlur, collapsedOptionIds, defaultCollapsedOptionIds, onCollapsedOptionIdsChange, editingOptionId, defaultEditingOptionId, onEditingOptionIdChange, onCreateOption, onEditOption, onDeleteOption, onAddValue, onDeleteValue, onOptionNameChange, onValueLabelChange, onDoneEditingOption, onSaveEditingOption, onError, onCancelEditingOption, onToggleUsedForVariants, renderOptionActions, renderValue, onCreateVariant, onGenerateVariants, onSelectVariant, onEditVariant, onDuplicateVariant, onDeleteVariant, onBulkEdit, onBulkApply, onBulkDelete, renderVariantActions, renderBulkActions, groupByOptionId, defaultGroupByOptionId, onGroupByOptionIdChange, showGroupBy, onSearchVariants, onFilterVariants, controlsEnd, actions, headerEnd, footerSlot, surface, padding, headerDivider, footerDivider, className, strings: stringsProp, optionsStrings, variantsStrings, }: ProductVariantsManagerProps): import("react").JSX.Element;
3
3
  export declare namespace ProductVariantsManager {
4
4
  var displayName: string;
5
5
  }
@@ -109,7 +109,7 @@ export interface ProductOptionsMatrixStrings {
109
109
  /** Title of the confirmation shown when saving would drop option values. */
110
110
  confirmRemoveValuesTitle: string;
111
111
  /**
112
- * Consequence of saving an edit that drops values. Receives `{count}`, the
112
+ * Consequence of saving an edit that drops values. Receives `{{count}}`, the
113
113
  * number of values the save removes.
114
114
  */
115
115
  confirmRemoveValuesDescription: string;
@@ -119,6 +119,14 @@ export interface ProductOptionsMatrixStrings {
119
119
  confirmDeleteOptionDescription: string;
120
120
  doneLabel: string;
121
121
  saveLabel: string;
122
+ /** Pending option-save copy. Optional for compatibility with complete legacy string objects. */
123
+ savingLabel?: string;
124
+ /** Heading for a rejected option save. */
125
+ saveErrorTitle?: string;
126
+ /** Fallback when a rejection has no displayable Error message. */
127
+ saveErrorMessage?: string;
128
+ /** Save command after a rejected option save. */
129
+ retrySaveLabel?: string;
122
130
  cancelLabel: string;
123
131
  expandOptionLabel: string;
124
132
  collapseOptionLabel: string;
@@ -174,7 +174,7 @@ export interface ProductDetailsCardProps {
174
174
  description?: ReactNode | false;
175
175
  /** Label/value facts rendered as a metadata list. */
176
176
  metadata?: MetadataListItem[];
177
- /** Leading media for the card. */
177
+ /** Leading media; remains visible when no metadata facts are supplied. */
178
178
  media?: ReactNode;
179
179
  /** Fired when a details is edited. */
180
180
  onEditDetails?: () => void;
@@ -406,8 +406,12 @@ export interface ProductOptionsMatrixProps {
406
406
  onValueLabelChange?: (option: ProductOptionGroup, value: ProductOptionValue, label: string) => void;
407
407
  /** Fired when editing an editing option finishes. */
408
408
  onDoneEditingOption?: (option: ProductOptionGroup) => void;
409
- /** Fired when an editing option is saved. */
410
- onSaveEditingOption?: (option: ProductOptionGroup, draft: ProductOptionEditDraft) => void;
409
+ /** Saves the option draft. A Promise keeps editing locked until acceptance;
410
+ * rejection retains the draft, shows an error and permits retry. Legacy change
411
+ * and done callbacks run only after this callback succeeds. */
412
+ onSaveEditingOption?: (option: ProductOptionGroup, draft: ProductOptionEditDraft) => void | Promise<void>;
413
+ /** Receives a rejected option save after its draft has been retained. */
414
+ onError?: (error: unknown) => void;
411
415
  /** Fired when editing an editing option is cancelled. */
412
416
  onCancelEditingOption?: (option: ProductOptionGroup, draft: ProductOptionEditDraft) => void;
413
417
  /** Fired when an used for variants is toggled. */
@@ -749,13 +753,21 @@ export interface ProductVariantsBulkTableProps {
749
753
  /** Overrides this surface’s own copy. */
750
754
  strings?: StringsProp<ProductVariantBulkTableStrings>;
751
755
  }
752
- export interface ProductVariantsManagerProps extends Pick<CardProps, 'surface' | 'padding' | 'headerDivider' | 'footerDivider'>, Pick<ProductOptionsMatrixProps, 'optionGroups' | 'collapsedOptionIds' | 'defaultCollapsedOptionIds' | 'onCollapsedOptionIdsChange' | 'editingOptionId' | 'defaultEditingOptionId' | 'onEditingOptionIdChange' | 'onCreateOption' | 'onEditOption' | 'onDeleteOption' | 'onAddValue' | 'onDeleteValue' | 'onOptionNameChange' | 'onValueLabelChange' | 'onDoneEditingOption' | 'onSaveEditingOption' | 'onCancelEditingOption' | 'onToggleUsedForVariants' | 'renderOptionActions' | 'renderValue'>, Pick<ProductVariantsBulkTableProps, 'variants' | 'groupByOptionId' | 'visibleColumns' | 'optionCombinationDisplay' | 'cellDisplay' | 'selectionMode' | 'renderOptionCombination' | 'renderCell' | 'selectedVariantIds' | 'defaultSelectedVariantIds' | 'onSelectedVariantIdsChange' | 'onVariantFieldChange' | 'onVariantFieldBlur' | 'onCreateVariant' | 'onGenerateVariants' | 'onSelectVariant' | 'onEditVariant' | 'onDuplicateVariant' | 'onDeleteVariant' | 'onBulkEdit' | 'onBulkApply' | 'onBulkDelete' | 'renderVariantActions' | 'renderBulkActions'> {
756
+ export interface ProductVariantsManagerProps extends Pick<CardProps, 'surface' | 'padding' | 'headerDivider' | 'footerDivider'>, Pick<ProductOptionsMatrixProps, 'optionGroups' | 'collapsedOptionIds' | 'defaultCollapsedOptionIds' | 'onCollapsedOptionIdsChange' | 'editingOptionId' | 'defaultEditingOptionId' | 'onEditingOptionIdChange' | 'onCreateOption' | 'onEditOption' | 'onDeleteOption' | 'onAddValue' | 'onDeleteValue' | 'onOptionNameChange' | 'onValueLabelChange' | 'onDoneEditingOption' | 'onSaveEditingOption' | 'onError' | 'onCancelEditingOption' | 'onToggleUsedForVariants' | 'renderOptionActions' | 'renderValue'>, Pick<ProductVariantsBulkTableProps, 'variants' | 'groupByOptionId' | 'visibleColumns' | 'optionCombinationDisplay' | 'cellDisplay' | 'selectionMode' | 'renderOptionCombination' | 'renderCell' | 'selectedVariantIds' | 'defaultSelectedVariantIds' | 'onSelectedVariantIdsChange' | 'onVariantFieldChange' | 'onVariantFieldBlur' | 'onCreateVariant' | 'onGenerateVariants' | 'onSelectVariant' | 'onEditVariant' | 'onDuplicateVariant' | 'onDeleteVariant' | 'onBulkEdit' | 'onBulkApply' | 'onBulkDelete' | 'renderVariantActions' | 'renderBulkActions'> {
753
757
  /** Groups rows under the values of this option. `null` leaves the list flat. */
754
758
  groupByOptionId?: string | null;
755
759
  /** Option group used for grouping on first render. */
756
760
  defaultGroupByOptionId?: string | null;
761
+ /**
762
+ * Shows the Group by control. Set `false` for a short variant list that
763
+ * needs no grouping chrome; rows then stay flat unless `groupByOptionId`
764
+ * or `defaultGroupByOptionId` names an option. @default true
765
+ */
766
+ showGroupBy?: boolean;
757
767
  onGroupByOptionIdChange?: (optionId: string | undefined, option?: ProductOptionGroup) => void;
768
+ /** Opens the app-owned variant search. Omitted handler hides its toolbar command. */
758
769
  onSearchVariants?: () => void;
770
+ /** Opens or applies app-owned filtering. Omitted handler hides its toolbar command. */
759
771
  onFilterVariants?: () => void;
760
772
  /** Content at the end of the manager's control row. */
761
773
  controlsEnd?: ReactNode;
@@ -772,7 +784,7 @@ export interface ProductVariantsManagerProps extends Pick<CardProps, 'surface' |
772
784
  variantsStrings?: ProductVariantsBulkTableProps['strings'];
773
785
  }
774
786
  export interface ProductVariantDetailsProps {
775
- /** Shell treatment. */
787
+ /** The selected variant and its accepted summary fields. */
776
788
  variant?: ProductVariantSummary;
777
789
  /** Label/value facts rendered as a metadata list. */
778
790
  metadata?: MetadataListItem[];
@@ -842,6 +854,8 @@ export interface ProductVariantEditorValues {
842
854
  /** Options to render. */
843
855
  options?: Record<string, string | undefined>;
844
856
  }
857
+ /** A built-in ProductVariantEditor field that `visibleFields` can hide. */
858
+ export type ProductVariantEditorField = 'name' | 'sku' | 'description' | 'price' | 'inventory' | 'status' | 'channels';
845
859
  export interface ProductVariantEditorProps {
846
860
  /** Value shown beside the label. */
847
861
  value?: ProductVariantEditorValues;
@@ -865,6 +879,29 @@ export interface ProductVariantEditorProps {
865
879
  headerEnd?: ReactNode;
866
880
  /** Content rendered in the footer. */
867
881
  footerSlot?: ReactNode;
882
+ /**
883
+ * Which built-in fields are shown. Omitted fields default to visible; a
884
+ * section whose fields are all hidden is omitted with its heading.
885
+ */
886
+ visibleFields?: Partial<Record<ProductVariantEditorField, boolean>>;
887
+ /** Validation messages for built-in fields, shown under each and marking it invalid. */
888
+ errors?: Partial<Record<ProductVariantEditorField, ReactNode>>;
889
+ /**
890
+ * Id of the editor's form. Pass the same id to `ActionDrawer formId` so the
891
+ * drawer's footer submits it. Generated when omitted.
892
+ */
893
+ formId?: string;
894
+ /**
895
+ * Shows the editor's own title and description. Set `false` inside an
896
+ * overlay whose header already names the task. @default true
897
+ */
898
+ showHeader?: boolean;
899
+ /**
900
+ * App-owned fields, such as unit cost or per-location stock, rendered inside
901
+ * the form after the built-in sections and before the default commands.
902
+ * Their values, validation and submission stay with the caller.
903
+ */
904
+ children?: ReactNode;
868
905
  /** Renders the entry as unselectable. */
869
906
  disabled?: boolean;
870
907
  /** Shows the pending state and blocks repeat submissions. */
@@ -901,7 +938,7 @@ export interface ProductOverviewProps {
901
938
  quote?: ProductQuotePreviewCardProps;
902
939
  /** Policies card configuration. */
903
940
  policies?: ProductPoliciesCardProps;
904
- /** Replaces individual cards in the overview. */
941
+ /** Inserts content at the named main and supporting-region positions. */
905
942
  slots?: ProductOverviewSlots;
906
943
  /** Merged onto the outermost node. */
907
944
  className?: string;
@@ -1,8 +1,12 @@
1
1
  import type { ResourceActionBarProps, ResourceDetailsSectionProps, ResourceEmptyStateProps, ResourceHeaderProps, ResourceIndexShellProps, ResourceShowShellProps, TabbedResourceShellProps } from './resource.types';
2
- export declare function ResourceHeader({ title, description, eyebrow, media, avatarUrl, avatarAlt, avatarFallback, icon, iconTone, badges, metadata, actions, primaryAction, secondaryActions, moreActionsLabel, renderLink, className, contentClassName, mediaClassName, }: ResourceHeaderProps): import("react").JSX.Element;
2
+ /** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */
3
+ export declare function ResourceHeader({ title, description, eyebrow, media, avatarUrl, avatarAlt, avatarFallback, icon, iconTone, badges, metadata, actions, primaryAction, secondaryActions, maxVisibleSecondaryActions, moreActionsLabel, renderLink, className, contentClassName, mediaClassName, }: ResourceHeaderProps): import("react").JSX.Element;
3
4
  export declare function ResourceActionBar({ children, leading, trailing, sticky, className }: ResourceActionBarProps): import("react").JSX.Element;
4
5
  export declare function ResourceEmptyState(props: ResourceEmptyStateProps): import("react").JSX.Element;
6
+ /** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */
5
7
  export declare function ResourceIndexShell(props: ResourceIndexShellProps): import("react").JSX.Element;
8
+ /** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */
6
9
  export declare function ResourceShowShell(props: ResourceShowShellProps): import("react").JSX.Element;
10
+ /** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */
7
11
  export declare function TabbedResourceShell({ tabs, activeTab, onTabChange, tabsClassName, moreLabel, tabsAriaLabel, toolbar, slots, className, strings: stringsProp, ...props }: TabbedResourceShellProps): import("react").JSX.Element;
8
12
  export declare function ResourceDetailsSection({ metadata, metadataColumns, metadataDense, body, help, children, contentClassName, ...props }: ResourceDetailsSectionProps): import("react").JSX.Element;
@@ -33,7 +33,7 @@ export interface ResourceShellSlots {
33
33
  * menu.
34
34
  */
35
35
  export interface ResourceHeaderCommandProps {
36
- /** The resource's one main command: a solid primary button, visible at every width. */
36
+ /** The resource's one main command: a solid primary button, in the command menu in compact headers. */
37
37
  primaryAction?: PageHeaderAction;
38
38
  /**
39
39
  * Supporting commands in priority order. The first two render as outline
@@ -41,11 +41,19 @@ export interface ResourceHeaderCommandProps {
41
41
  * command, move into the More actions menu, which always closes the row.
42
42
  */
43
43
  secondaryActions?: readonly PageHeaderAction[];
44
+ /**
45
+ * How many routine secondary commands render as outline buttons on wide
46
+ * headers; later ones join the More actions menu. Use `1` or `0` when long
47
+ * labels beside the primary command would crowd the header; `Infinity`
48
+ * keeps every routine command inline. @default 2
49
+ */
50
+ maxVisibleSecondaryActions?: number;
44
51
  /** Accessible name of the More actions menu trigger. Default: `'More actions'`. */
45
52
  moreActionsLabel?: string;
46
53
  /** Renders `href` commands as framework links. Defaults to a native anchor. */
47
54
  renderLink?: PageHeaderLinkRenderer;
48
55
  }
56
+ /** @deprecated Use PageProps or PageHeaderProps from themelia-react-ui/layout/page. */
49
57
  export interface ResourceIndexShellProps extends ResourceHeaderCommandProps {
50
58
  /** Primary workspace content. Replaced by loading, error, or empty state when active. */
51
59
  children?: ReactNode;
@@ -82,10 +90,12 @@ export interface ResourceIndexShellProps extends ResourceHeaderCommandProps {
82
90
  /** Copy overrides for loading, empty, error, retry, and tab labels. */
83
91
  strings?: StringsProp<ResourceStrings>;
84
92
  }
93
+ /** @deprecated Use PageProps or PageHeaderProps from themelia-react-ui/layout/page. */
85
94
  export interface ResourceShowShellProps extends ResourceIndexShellProps {
86
95
  /** Class name for `slots.aside`. */
87
96
  asideClassName?: string;
88
97
  }
98
+ /** @deprecated Use PageProps or PageHeaderProps from themelia-react-ui/layout/page. */
89
99
  export interface ResourceHeaderProps extends ResourceHeaderCommandProps {
90
100
  /** Primary resource identity. */
91
101
  title: ReactNode;
@@ -172,6 +182,7 @@ export interface ResourceDetailsSectionProps extends ResourceSectionFrameProps {
172
182
  /** Quiet guidance rendered after the section content. */
173
183
  help?: ReactNode;
174
184
  }
185
+ /** @deprecated Use PageProps or PageHeaderProps from themelia-react-ui/layout/page. */
175
186
  export interface TabbedResourceShellProps extends ResourceShowShellProps {
176
187
  /** Workspace tabs, including optional overflow metadata. */
177
188
  tabs: OverflowTabItem[];
@@ -5,7 +5,7 @@ export declare const DEFAULT_IMAGE_ACCEPT = "image/png,image/jpeg,image/gif,imag
5
5
  /** Marks an upload placeholder in the editing surface; never part of the value. */
6
6
  export declare const UPLOAD_ATTRIBUTE = "data-rte-upload";
7
7
  /** The placeholder occupies a line of its own while its image uploads. */
8
- export declare const UPLOAD_PLACEHOLDER_CLASS = "rich-text-editor--upload my-space-xs flex min-h-control items-center rounded-inner border border-dashed border-input bg-muted/30 px-row-x py-row-y";
8
+ export declare const UPLOAD_PLACEHOLDER_CLASS = "rich-text-editor--upload my-space-xs flex min-h-control items-center rounded-radius border border-dashed border-input bg-muted/30 px-row-x py-row-y";
9
9
  /** Removes upload placeholders from serialized editor HTML. */
10
10
  export declare function stripUploadPlaceholders(html: string): string;
11
11
  export declare function acceptsImageFile(file: File, accept: string): boolean;
@@ -1,7 +1,17 @@
1
- /** Shared field anatomy for rich editors, including specialized document schemas. */
1
+ /**
2
+ * Shared field anatomy for rich editors, including specialized document schemas.
3
+ * Every region takes the toolbar's `surface-xs` inset, on both axes for the body,
4
+ * so the first line sits as far below the toolbar rule as text sits from the frame edge.
5
+ */
2
6
  export declare const richTextEditorRecipes: {
3
7
  readonly source: string;
4
- readonly frame: "min-w-0 overflow-hidden border-input bg-background rounded-inner border";
8
+ /** Editable body: shared content typography inside the editor's surface inset. Every embedded editor uses it. */
9
+ readonly editable: string;
10
+ /** Placeholder overlay, laid over the editable body at the same inset. */
11
+ readonly placeholder: "pointer-events-none absolute inset-0 p-surface-xs";
12
+ /** Inline inset for the regions under the body (image details, counts, footer slot). */
13
+ readonly regionX: "px-surface-xs";
14
+ readonly frame: "min-w-0 overflow-hidden border-input bg-background rounded-radius border";
5
15
  readonly disabled: "opacity-50";
6
16
  readonly disabledControl: "disabled:opacity-100 aria-disabled:opacity-100";
7
17
  readonly content: "h-full [&_.ProseMirror]:h-full [&_.ProseMirror]:min-h-full [&_.ProseMirror]:outline-none";
@@ -1,5 +1,5 @@
1
1
  import type { ComponentType, ReactNode } from 'react';
2
- import { type LucideIcon } from 'lucide-react';
2
+ import type { LucideIcon } from 'lucide-react';
3
3
  import { type BadgeTone } from '../../../base/badge';
4
4
  export interface ResourceCellMetadataItem {
5
5
  /** Stable identity for this entry. */
@@ -32,13 +32,24 @@ export interface ResourceCellProps {
32
32
  metadata?: ReactNode | readonly ResourceCellMetadataItem[];
33
33
  /** Status chips shown after the title. */
34
34
  badges?: readonly ResourceCellBadge[];
35
- /** Thumbnail source. Falls back to `icon`, then `fallback`, when absent or broken. */
35
+ /**
36
+ * Thumbnail source. When it is absent or fails to load, the circle shows
37
+ * `fallback`, then `icon`, then the title's initials.
38
+ */
36
39
  imageUrl?: string;
37
- /** Leading glyph. */
40
+ /** Leading glyph in the media circle. Pass one only when it identifies the resource. */
38
41
  icon?: ComponentType<{
39
42
  className?: string;
40
43
  }>;
41
- /** Media shown when neither `imageUrl` nor `icon` resolves — usually initials. */
44
+ /**
45
+ * Media shown when `imageUrl` is absent or fails — usually
46
+ * `<Initials value={name} />` for a person or organization.
47
+ *
48
+ * The cell draws its media circle only when `imageUrl`, `icon` or
49
+ * `fallback` is supplied, so identifiers such as orders and invoices read
50
+ * as plain text with no decorative monogram. In a person column where only
51
+ * some rows have a photo, pass `fallback` on every row so titles align.
52
+ */
42
53
  fallback?: ReactNode;
43
54
  /** Destination for the entry, when it navigates. */
44
55
  href?: string;
@@ -48,6 +59,12 @@ export interface ResourceCellProps {
48
59
  emptyLabel?: ReactNode;
49
60
  /** Merged onto the outermost node. */
50
61
  className?: string;
62
+ /**
63
+ * `circle` for people and organizations; `square` (the default radius) for
64
+ * product photos and documents, so square images are not clipped.
65
+ * @default 'circle'
66
+ */
67
+ mediaShape?: 'circle' | 'square';
51
68
  /** Merged onto the media. */
52
69
  mediaClassName?: string;
53
70
  /** Merged onto the content. */
@@ -57,7 +74,7 @@ export interface ResourceCellProps {
57
74
  /** Merged onto the subtitle. */
58
75
  subtitleClassName?: string;
59
76
  }
60
- export declare function ResourceCell({ title, subtitle, metadata, badges, imageUrl, icon: IconComponent, fallback, href, renderLink, emptyLabel, className, mediaClassName, contentClassName, titleClassName, subtitleClassName, }: ResourceCellProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
77
+ export declare function ResourceCell({ title, subtitle, metadata, badges, imageUrl, icon: IconComponent, fallback, href, renderLink, emptyLabel, className, mediaShape, mediaClassName, contentClassName, titleClassName, subtitleClassName, }: ResourceCellProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
61
78
  export declare namespace ResourceCell {
62
79
  var displayName: string;
63
80
  }
@@ -190,7 +190,7 @@ export type DataTableSize = ComponentScale;
190
190
  *
191
191
  * - `card` (default): rounded card with `border-border bg-card` and a
192
192
  * soft shadow — the canonical admin treatment.
193
- * - `glass`: a hairline `border-border/60 rounded-radius` outline with no
193
+ * - `glass`: a hairline `border-border/60 rounded-surface` outline with no
194
194
  * shadow and no card background — pairs with consumer-supplied
195
195
  * surrounding chrome (e.g. dropping into an existing SmartCard).
196
196
  * Background remains transparent so a glassy parent shows