themelia-react-ui 1.0.2 → 2.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 (542) hide show
  1. package/CHANGELOG.md +281 -1
  2. package/README.md +10 -5
  3. package/dist/{accordion-BRTcsp8J.js → accordion-CQXVcd7Q.js} +13 -13
  4. package/dist/accordion-CQXVcd7Q.js.map +1 -0
  5. package/dist/action-menu-BTpyPWJ2.js +264 -0
  6. package/dist/action-menu-BTpyPWJ2.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-CL84ZN9A.js → affordance-geometry.generated-CCIXb2A1.js} +7 -2
  8. package/dist/affordance-geometry.generated-CCIXb2A1.js.map +1 -0
  9. package/dist/{ai-artifact-DLVdK0Py.js → ai-artifact-2PQ2fItc.js} +171 -176
  10. package/dist/ai-artifact-2PQ2fItc.js.map +1 -0
  11. package/dist/{app-shell-C_fKpljx.js → app-shell-BE_j8-AT.js} +4 -4
  12. package/dist/{app-shell-C_fKpljx.js.map → app-shell-BE_j8-AT.js.map} +1 -1
  13. package/dist/{attachment-DbjUWsP0.js → attachment-q69dlt5Y.js} +9 -9
  14. package/dist/{attachment-DbjUWsP0.js.map → attachment-q69dlt5Y.js.map} +1 -1
  15. package/dist/{auth-CAQcasMV.js → auth-M3vGMgDR.js} +42 -42
  16. package/dist/{auth-CAQcasMV.js.map → auth-M3vGMgDR.js.map} +1 -1
  17. package/dist/{avatar-Bu2HhitA.js → avatar-djdaaQ_s.js} +14 -12
  18. package/dist/avatar-djdaaQ_s.js.map +1 -0
  19. package/dist/{badge-CzId1Wlm.js → badge-0tATj-tW.js} +9 -9
  20. package/dist/badge-0tATj-tW.js.map +1 -0
  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/buttons.js +2 -2
  27. package/dist/base/cards.js +2 -2
  28. package/dist/base/carousel.js +11 -11
  29. package/dist/base/carousel.js.map +1 -1
  30. package/dist/base/cascader.js +244 -222
  31. package/dist/base/cascader.js.map +1 -1
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +1 -1
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +2 -2
  39. package/dist/base/display.js +6 -6
  40. package/dist/base/feedback.js +3 -3
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +81 -76
  44. package/dist/base/inline-edit.js.map +1 -1
  45. package/dist/base/item.js +1 -1
  46. package/dist/base/media-gallery.js +1 -1
  47. package/dist/base/navigation.js +6 -6
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +7 -4
  51. package/dist/base/qr-code.js.map +1 -1
  52. package/dist/base/repeaters.js +42 -42
  53. package/dist/base/repeaters.js.map +1 -1
  54. package/dist/base/sheet.js +1 -1
  55. package/dist/base/sidebar.js +1 -1
  56. package/dist/base/signature-pad.js +9 -9
  57. package/dist/base/signature-pad.js.map +1 -1
  58. package/dist/base/skeleton.js +1 -1
  59. package/dist/base/spinner.js +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +2 -2
  63. package/dist/base/toaster.js +4 -4
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/blocks/admin.js +229 -220
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +147 -180
  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 +530 -523
  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 +1390 -1516
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +1 -1
  81. package/dist/blocks/onboarding.js +5 -5
  82. package/dist/blocks/planning.js +82 -91
  83. package/dist/blocks/planning.js.map +1 -1
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-BuYz5SDU.js → breadcrumbs-BG_FfMK4.js} +5 -5
  86. package/dist/{breadcrumbs-BuYz5SDU.js.map → breadcrumbs-BG_FfMK4.js.map} +1 -1
  87. package/dist/{button-BZDasD04.js → button-BS3KDg00.js} +185 -162
  88. package/dist/button-BS3KDg00.js.map +1 -0
  89. package/dist/{button-BZyfTvwm.js → button-R9CCoH7A.js} +2 -2
  90. package/dist/{button-BZyfTvwm.js.map → button-R9CCoH7A.js.map} +1 -1
  91. package/dist/{buttons-D_6KJvEE.js → buttons-DS0ZIwJ_.js} +11 -11
  92. package/dist/buttons-DS0ZIwJ_.js.map +1 -0
  93. package/dist/{cards-qGSErLw_.js → cards-QoJ4syG9.js} +7 -7
  94. package/dist/{cards-qGSErLw_.js.map → cards-QoJ4syG9.js.map} +1 -1
  95. package/dist/{chart-Bsc5BICK.js → chart-DwYRKKc-.js} +17 -15
  96. package/dist/chart-DwYRKKc-.js.map +1 -0
  97. package/dist/checkbox-B7ygNTYp.js +35 -0
  98. package/dist/checkbox-B7ygNTYp.js.map +1 -0
  99. package/dist/choice-inputs-DrJ17tpL.js +752 -0
  100. package/dist/choice-inputs-DrJ17tpL.js.map +1 -0
  101. package/dist/{code-block-DzHKRybS.js → code-block-CD0B7M93.js} +19 -19
  102. package/dist/{code-block-DzHKRybS.js.map → code-block-CD0B7M93.js.map} +1 -1
  103. package/dist/{collapsible-ClvC7Bj3.js → collapsible-oMUGM4tr.js} +3 -3
  104. package/dist/{collapsible-ClvC7Bj3.js.map → collapsible-oMUGM4tr.js.map} +1 -1
  105. package/dist/{collection-content-D6S8cv_n.js → collection-content-Ys-OZOkY.js} +3 -3
  106. package/dist/{collection-content-D6S8cv_n.js.map → collection-content-Ys-OZOkY.js.map} +1 -1
  107. package/dist/{combobox-BFnbJJp3.js → combobox-6dvVny2q.js} +96 -97
  108. package/dist/combobox-6dvVny2q.js.map +1 -0
  109. package/dist/{combobox-hozNwUcc.js → combobox-CB7039j7.js} +326 -308
  110. package/dist/combobox-CB7039j7.js.map +1 -0
  111. package/dist/{command-BnmSchli.js → command-kPMPjIxJ.js} +34 -30
  112. package/dist/command-kPMPjIxJ.js.map +1 -0
  113. package/dist/{comments-u5L0OGip.js → comments-You0Bzbr.js} +349 -348
  114. package/dist/comments-You0Bzbr.js.map +1 -0
  115. package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
  116. package/dist/components/base/action-menu/action-menu.d.ts +7 -2
  117. package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
  118. package/dist/components/base/badge/badge.d.ts +1 -1
  119. package/dist/components/base/badge/badge.recipes.d.ts +4 -4
  120. package/dist/components/base/buttons/base-button.d.ts +7 -0
  121. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  122. package/dist/components/base/buttons/button.variants.d.ts +1 -0
  123. package/dist/components/base/buttons/loader-button.d.ts +3 -1
  124. package/dist/components/base/buttons/text-button.d.ts +2 -2
  125. package/dist/components/base/carousel/carousel.d.ts +3 -1
  126. package/dist/components/base/chart/chart.d.ts +7 -7
  127. package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
  128. package/dist/components/base/choice-inputs/choice-types.d.ts +10 -1
  129. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
  130. package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
  131. package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
  132. package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
  133. package/dist/components/base/date-pickers/datepicker.types.d.ts +13 -3
  134. package/dist/components/base/display/alert-dialog.d.ts +8 -2
  135. package/dist/components/base/display/content-block.d.ts +4 -2
  136. package/dist/components/base/display/date-block.d.ts +1 -1
  137. package/dist/components/base/display/dialog.d.ts +12 -5
  138. package/dist/components/base/display/surface-title.d.ts +6 -1
  139. package/dist/components/base/feedback/alert.d.ts +1 -1
  140. package/dist/components/base/feedback/state-display.d.ts +5 -4
  141. package/dist/components/base/forms/form-sizing.d.ts +32 -0
  142. package/dist/components/base/forms/workflow.d.ts +2 -0
  143. package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
  144. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
  145. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
  146. package/dist/components/base/navigation/language-switcher.d.ts +4 -1
  147. package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
  148. package/dist/components/base/navigation/page-header/page-header.d.ts +4 -1
  149. package/dist/components/base/qr-code/qr-code.d.ts +2 -0
  150. package/dist/components/base/sheet/index.d.ts +29 -1
  151. package/dist/components/base/sheet/sheet.d.ts +14 -5
  152. package/dist/components/base/spinner/spinner.d.ts +3 -2
  153. package/dist/components/base/structure/structure.types.d.ts +1 -1
  154. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  155. package/dist/components/base/upload/upload.recipes.d.ts +11 -0
  156. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
  157. package/dist/components/base/value-inputs/tags-input.d.ts +2 -0
  158. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
  159. package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
  160. package/dist/components/blocks/analytics/index.d.ts +1 -1
  161. package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
  162. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  163. package/dist/components/blocks/commerce/address-card/types.d.ts +3 -1
  164. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
  165. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
  166. package/dist/components/blocks/commerce/discount-stack/types.d.ts +1 -1
  167. package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
  168. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
  169. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  170. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +1 -1
  171. package/dist/components/blocks/commerce/payment-method/types.d.ts +3 -1
  172. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
  173. package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
  174. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
  175. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
  176. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
  177. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  178. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  179. package/dist/components/features/overlays/drawer.d.ts +1 -1
  180. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
  181. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
  182. package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
  183. package/dist/components/features/overlays/overlays.types.d.ts +42 -19
  184. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  185. package/dist/components/features/products/partials/index.d.ts +1 -1
  186. package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
  187. package/dist/components/features/products/partials/product-tone.d.ts +11 -1
  188. package/dist/components/features/products/products.types.d.ts +2 -1
  189. package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
  190. package/dist/components/layout/page/index.d.ts +1 -1
  191. package/dist/components/layout/page/page.types.d.ts +53 -3
  192. package/dist/components/layout/page/partials/page-header-commands.d.ts +13 -0
  193. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  194. package/dist/components/primitives/date.d.ts +16 -3
  195. package/dist/components/primitives/dimensions.d.ts +6 -0
  196. package/dist/components/primitives/duration.d.ts +6 -0
  197. package/dist/components/primitives/file-size.d.ts +6 -0
  198. package/dist/components/primitives/index.d.ts +1 -1
  199. package/dist/components/primitives/initials.d.ts +11 -2
  200. package/dist/components/primitives/link.d.ts +7 -0
  201. package/dist/components/primitives/money.d.ts +29 -7
  202. package/dist/components/primitives/number.d.ts +17 -0
  203. package/dist/components/primitives/value-typography.d.ts +54 -0
  204. package/dist/components/primitives/value.d.ts +31 -6
  205. package/dist/components/typography/heading.d.ts +9 -1
  206. package/dist/components/typography/label.d.ts +3 -0
  207. package/dist/components/typography/running-text.d.ts +12 -0
  208. package/dist/components/typography/text-link.d.ts +23 -1
  209. package/dist/components/typography/text.d.ts +12 -0
  210. package/dist/components/typography/text.styles.d.ts +35 -13
  211. package/dist/components/ui/button.d.ts +1 -1
  212. package/dist/components/ui/checkbox.d.ts +5 -0
  213. package/dist/components/ui/overlay.recipes.d.ts +15 -2
  214. package/dist/components/ui/select.d.ts +3 -1
  215. package/dist/components/ui/switch.d.ts +5 -0
  216. package/dist/{containers-DqB-bSYE.js → containers-D_L4mTVb.js} +3 -3
  217. package/dist/{containers-DqB-bSYE.js.map → containers-D_L4mTVb.js.map} +1 -1
  218. package/dist/{copyable-BTSByfmq.js → copyable-DDjTeW_j.js} +4 -4
  219. package/dist/{copyable-BTSByfmq.js.map → copyable-DDjTeW_j.js.map} +1 -1
  220. package/dist/{data-display-Bihs9Ven.js → data-display-3xWQUnMA.js} +471 -478
  221. package/dist/data-display-3xWQUnMA.js.map +1 -0
  222. package/dist/date-picker-DrDFj8Lo.js +1527 -0
  223. package/dist/date-picker-DrDFj8Lo.js.map +1 -0
  224. package/dist/date-pickers-CnFCb0n2.js +174 -0
  225. package/dist/date-pickers-CnFCb0n2.js.map +1 -0
  226. package/dist/date-uf3z37Nm.js +144 -0
  227. package/dist/date-uf3z37Nm.js.map +1 -0
  228. package/dist/{display-CS6Hbk18.js → display-DrdvPwF0.js} +25 -25
  229. package/dist/display-DrdvPwF0.js.map +1 -0
  230. package/dist/{dropdown-menu-D-boNgGO.js → dropdown-menu-CURh59jb.js} +22 -15
  231. package/dist/dropdown-menu-CURh59jb.js.map +1 -0
  232. package/dist/features/activities.js +38 -35
  233. package/dist/features/activities.js.map +1 -1
  234. package/dist/features/ai-chat.js +36 -35
  235. package/dist/features/ai-chat.js.map +1 -1
  236. package/dist/features/async-preview.js +8 -8
  237. package/dist/features/combobox.js +1 -1
  238. package/dist/features/comments.js +1 -1
  239. package/dist/features/data-view.js +10 -10
  240. package/dist/features/email-composer.js +325 -326
  241. package/dist/features/email-composer.js.map +1 -1
  242. package/dist/features/event-calendar.js +190 -200
  243. package/dist/features/event-calendar.js.map +1 -1
  244. package/dist/features/filters.js +1 -1
  245. package/dist/features/global-search.js +77 -77
  246. package/dist/features/global-search.js.map +1 -1
  247. package/dist/features/kanban.js +4 -4
  248. package/dist/features/map.js +8 -8
  249. package/dist/features/media-library.js +499 -502
  250. package/dist/features/media-library.js.map +1 -1
  251. package/dist/features/mentions.js +1 -1
  252. package/dist/features/overlays.js +1 -1
  253. package/dist/features/products.js +1216 -1248
  254. package/dist/features/products.js.map +1 -1
  255. package/dist/features/questionnaire.js +46 -44
  256. package/dist/features/questionnaire.js.map +1 -1
  257. package/dist/features/resource-assignment.js +96 -88
  258. package/dist/features/resource-assignment.js.map +1 -1
  259. package/dist/features/resource.js +11 -11
  260. package/dist/features/rich-text-editor.js +2 -2
  261. package/dist/features/schema-form.js +188 -184
  262. package/dist/features/schema-form.js.map +1 -1
  263. package/dist/features/suggestions.js +3 -3
  264. package/dist/features/sync.js +7 -7
  265. package/dist/features/sync.js.map +1 -1
  266. package/dist/features/table.js +1 -1
  267. package/dist/features/theme-tweaker.js +469 -470
  268. package/dist/features/theme-tweaker.js.map +1 -1
  269. package/dist/{feedback-CJkUAapr.js → feedback-C7nR0UtT.js} +9 -10
  270. package/dist/feedback-C7nR0UtT.js.map +1 -0
  271. package/dist/field-affordance-recipes-CkOCdE2y.js +46 -0
  272. package/dist/field-affordance-recipes-CkOCdE2y.js.map +1 -0
  273. package/dist/{field-state-recipes-DQQpiLWC.js → field-state-recipes-C-MFBX_8.js} +3 -3
  274. package/dist/field-state-recipes-C-MFBX_8.js.map +1 -0
  275. package/dist/{filters-D6FF8L6s.js → filters-Da-gNPsE.js} +467 -467
  276. package/dist/filters-Da-gNPsE.js.map +1 -0
  277. package/dist/{form-field-CZwrkP7m.js → form-field-VZRULhUK.js} +7 -7
  278. package/dist/{form-field-CZwrkP7m.js.map → form-field-VZRULhUK.js.map} +1 -1
  279. package/dist/form-sizing-uWP4lzVh.js +126 -0
  280. package/dist/form-sizing-uWP4lzVh.js.map +1 -0
  281. package/dist/{forms-B5NCbkSC.js → forms-DDeEnXSY.js} +11 -11
  282. package/dist/forms-DDeEnXSY.js.map +1 -0
  283. package/dist/forms-numeric-D3CO60IF.js +905 -0
  284. package/dist/forms-numeric-D3CO60IF.js.map +1 -0
  285. package/dist/{header-kxruN3RM.js → header-2ycNqGOR.js} +43 -42
  286. package/dist/header-2ycNqGOR.js.map +1 -0
  287. package/dist/{hooks-BrlnCwQd.js → hooks-DQ5SPwZw.js} +2 -2
  288. package/dist/{hooks-BrlnCwQd.js.map → hooks-DQ5SPwZw.js.map} +1 -1
  289. package/dist/{icon-badge-Btc6pQrp.js → icon-badge-DKlaKXoo.js} +3 -3
  290. package/dist/{icon-badge-Btc6pQrp.js.map → icon-badge-DKlaKXoo.js.map} +1 -1
  291. package/dist/index.js +2 -2
  292. package/dist/{input-vxcaNCYC.js → input-BoLm9Hks.js} +3 -3
  293. package/dist/{input-vxcaNCYC.js.map → input-BoLm9Hks.js.map} +1 -1
  294. package/dist/input-DhQdBnV3.js +255 -0
  295. package/dist/{input-SX9V0AL3.js.map → input-DhQdBnV3.js.map} +1 -1
  296. package/dist/item-xzh8Df65.js +264 -0
  297. package/dist/item-xzh8Df65.js.map +1 -0
  298. package/dist/layout/app-shell.js +1 -1
  299. package/dist/layout/auth.js +1 -1
  300. package/dist/layout/containers.js +1 -1
  301. package/dist/layout/header.js +1 -1
  302. package/dist/layout/hooks.js +1 -1
  303. package/dist/layout/navigation.js +1 -1
  304. package/dist/layout/page.js +1 -1
  305. package/dist/layout/settings.js +1 -1
  306. package/dist/layout/sidebar.js +2 -2
  307. package/dist/layout/workspace.js +1 -1
  308. package/dist/layout.js +10 -10
  309. package/dist/lib/affordance-geometry.generated.d.ts +6 -1
  310. package/dist/lib/field-affordance-recipes.d.ts +35 -0
  311. package/dist/lib/field-state-recipes.d.ts +4 -2
  312. package/dist/lib/format.d.ts +9 -0
  313. package/dist/lib/money-format.d.ts +30 -0
  314. package/dist/lib/overlay-anatomy-recipes.d.ts +1 -1
  315. package/dist/lib/surface-recipes.d.ts +8 -6
  316. package/dist/lib/token-merge.generated.d.ts +11 -11
  317. package/dist/lib/track-recipes.d.ts +1 -1
  318. package/dist/lib/ui-provider/provider.d.ts +7 -2
  319. package/dist/lib/ui-provider/store.d.ts +6 -2
  320. package/dist/lib/ui-provider/types.d.ts +5 -2
  321. package/dist/lib/utils.js +1 -1
  322. package/dist/{media-gallery-DLp3HAz0.js → media-gallery-DQUQ0m3O.js} +8 -8
  323. package/dist/media-gallery-DQUQ0m3O.js.map +1 -0
  324. package/dist/{mentions-Cl0Kt_Pd.js → mentions-DwnO1hh4.js} +34 -35
  325. package/dist/{mentions-Cl0Kt_Pd.js.map → mentions-DwnO1hh4.js.map} +1 -1
  326. package/dist/{message-SZUNB1eX.js → message-YfFmbXNP.js} +5 -5
  327. package/dist/{message-SZUNB1eX.js.map → message-YfFmbXNP.js.map} +1 -1
  328. package/dist/{navigation-DyytsLRB.js → navigation-Cbp5V8gG.js} +33 -34
  329. package/dist/navigation-Cbp5V8gG.js.map +1 -0
  330. package/dist/{navigation-DnQSNMT0.js → navigation-Cs1npsPm.js} +111 -87
  331. package/dist/navigation-Cs1npsPm.js.map +1 -0
  332. package/dist/{navigation-row-recipes-DQEXQcqY.js → navigation-row-recipes-DlU-4QYO.js} +2 -2
  333. package/dist/{navigation-row-recipes-DQEXQcqY.js.map → navigation-row-recipes-DlU-4QYO.js.map} +1 -1
  334. package/dist/number-CKRBYmZK.js +352 -0
  335. package/dist/number-CKRBYmZK.js.map +1 -0
  336. package/dist/overlay.recipes-CNO2S9V6.js +34 -0
  337. package/dist/overlay.recipes-CNO2S9V6.js.map +1 -0
  338. package/dist/overlays-DhZO7N-I.js +994 -0
  339. package/dist/overlays-DhZO7N-I.js.map +1 -0
  340. package/dist/page-C6R_8jFt.js +325 -0
  341. package/dist/page-C6R_8jFt.js.map +1 -0
  342. package/dist/{page-header-D8nERkn5.js → page-header-hUTzcRZX.js} +9 -9
  343. package/dist/page-header-hUTzcRZX.js.map +1 -0
  344. package/dist/{pagination-NLGqRirf.js → pagination-Cm0jqa3I.js} +8 -8
  345. package/dist/{pagination-NLGqRirf.js.map → pagination-Cm0jqa3I.js.map} +1 -1
  346. package/dist/{popover-CghIYdQf.js → popover-Dcv_9jxr.js} +6 -6
  347. package/dist/{popover-CghIYdQf.js.map → popover-Dcv_9jxr.js.map} +1 -1
  348. package/dist/{popover-menu-B4PoWhRl.js → popover-menu-DnRFKnHP.js} +6 -6
  349. package/dist/{popover-menu-B4PoWhRl.js.map → popover-menu-DnRFKnHP.js.map} +1 -1
  350. package/dist/{popover.recipes-QlD4JenO.js → popover.recipes-wmbvL8Ah.js} +2 -2
  351. package/dist/{popover.recipes-QlD4JenO.js.map → popover.recipes-wmbvL8Ah.js.map} +1 -1
  352. package/dist/primitives-BHrwQXFC.js +379 -0
  353. package/dist/primitives-BHrwQXFC.js.map +1 -0
  354. package/dist/primitives.js +5 -5
  355. package/dist/{progress-BroqrAyV.js → progress-Br9WTFya.js} +7 -7
  356. package/dist/progress-Br9WTFya.js.map +1 -0
  357. package/dist/{receipt-BuJynLgf.js → receipt-CV89q1fs.js} +6 -6
  358. package/dist/{receipt-BuJynLgf.js.map → receipt-CV89q1fs.js.map} +1 -1
  359. package/dist/{rich-text-editor-BKyG7rWz.js → rich-text-editor-CF8QYt5p.js} +6 -6
  360. package/dist/{rich-text-editor-BKyG7rWz.js.map → rich-text-editor-CF8QYt5p.js.map} +1 -1
  361. package/dist/{rich-text-editor.recipes-B72Nfuze.js → rich-text-editor.recipes-CnrbmTS1.js} +4 -4
  362. package/dist/{rich-text-editor.recipes-B72Nfuze.js.map → rich-text-editor.recipes-CnrbmTS1.js.map} +1 -1
  363. package/dist/{rich-text-DlxDOtf4.js → rich-text-j-FGAeZW.js} +4 -4
  364. package/dist/{rich-text-DlxDOtf4.js.map → rich-text-j-FGAeZW.js.map} +1 -1
  365. package/dist/{scroll-area-D-pIhEKl.js → scroll-area-DRdr16Pt.js} +3 -3
  366. package/dist/scroll-area-DRdr16Pt.js.map +1 -0
  367. package/dist/{separator-BhtFyo4x.js → separator-BMEvwnSX.js} +2 -2
  368. package/dist/{separator-BhtFyo4x.js.map → separator-BMEvwnSX.js.map} +1 -1
  369. package/dist/{separator-BNIgG3au.js → separator-Do5GWDYi.js} +4 -4
  370. package/dist/separator-Do5GWDYi.js.map +1 -0
  371. package/dist/services/actions/action-adapters.d.ts +4 -0
  372. package/dist/services/actions.js +8 -3
  373. package/dist/services/actions.js.map +1 -1
  374. package/dist/{settings-DOTOzeZ2.js → settings-DHk0L2MF.js} +17 -17
  375. package/dist/settings-DHk0L2MF.js.map +1 -0
  376. package/dist/sheet-DRFNY1_D.js +207 -0
  377. package/dist/sheet-DRFNY1_D.js.map +1 -0
  378. package/dist/sidebar-Cb8WzOvE.js +511 -0
  379. package/dist/sidebar-Cb8WzOvE.js.map +1 -0
  380. package/dist/{sidebar-CyR4XKwR.js → sidebar-Crc9M9JV.js} +18 -18
  381. package/dist/sidebar-Crc9M9JV.js.map +1 -0
  382. package/dist/{skeleton-3F0uhYn3.js → skeleton-DVMXr15h.js} +4 -4
  383. package/dist/{skeleton-3F0uhYn3.js.map → skeleton-DVMXr15h.js.map} +1 -1
  384. package/dist/{smart-card-DjGVV2xr.js → smart-card-Bek-TwUp.js} +222 -207
  385. package/dist/smart-card-Bek-TwUp.js.map +1 -0
  386. package/dist/{spinner-Cpf7oRkF.js → spinner-CmTAbEp0.js} +8 -6
  387. package/dist/spinner-CmTAbEp0.js.map +1 -0
  388. package/dist/{structure-CRdqVawd.js → structure-hzCW-XsV.js} +3 -3
  389. package/dist/{structure-CRdqVawd.js.map → structure-hzCW-XsV.js.map} +1 -1
  390. package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
  391. package/dist/structure.recipes-EPz60cU8.js.map +1 -0
  392. package/dist/style.css +1 -1
  393. package/dist/surface-recipes-DOdoBXGm.js +28 -0
  394. package/dist/surface-recipes-DOdoBXGm.js.map +1 -0
  395. package/dist/table-D6zKeYQX.js +162 -0
  396. package/dist/table-D6zKeYQX.js.map +1 -0
  397. package/dist/{table-CcRDZiLP.js → table-Dn4XSrSB.js} +348 -348
  398. package/dist/table-Dn4XSrSB.js.map +1 -0
  399. package/dist/{tabs-BNgu7g0u.js → tabs-Dk8E_knt.js} +14 -13
  400. package/dist/tabs-Dk8E_knt.js.map +1 -0
  401. package/dist/{text-inputs-DsR56TR-.js → text-inputs-BFpku0Qd.js} +150 -149
  402. package/dist/text-inputs-BFpku0Qd.js.map +1 -0
  403. package/dist/{text.styles-Q4sGAIgA.js → text.styles-g4He6UIW.js} +17 -14
  404. package/dist/text.styles-g4He6UIW.js.map +1 -0
  405. package/dist/theme.css +16 -12
  406. package/dist/themes/green.css +24 -0
  407. package/dist/{timelines-D1pkt3se.js → timelines-CxuAFIc2.js} +25 -38
  408. package/dist/timelines-CxuAFIc2.js.map +1 -0
  409. package/dist/track-recipes-CDcKmndW.js +10 -0
  410. package/dist/track-recipes-CDcKmndW.js.map +1 -0
  411. package/dist/{tree-BtmYyMZV.js → tree-BotPlyiD.js} +13 -13
  412. package/dist/{tree-BtmYyMZV.js.map → tree-BotPlyiD.js.map} +1 -1
  413. package/dist/typography/rich-text.js +1 -1
  414. package/dist/typography-CAr3dQhX.js +116 -0
  415. package/dist/typography-CAr3dQhX.js.map +1 -0
  416. package/dist/typography.js +2 -2
  417. package/dist/{ui-provider-DRPn3qNl.js → ui-provider-D2_TeLqw.js} +20 -21
  418. package/dist/ui-provider-D2_TeLqw.js.map +1 -0
  419. package/dist/ui-provider.js +1 -1
  420. package/dist/{upload-CDbYw1WN.js → upload-B0WHW7ak.js} +221 -220
  421. package/dist/upload-B0WHW7ak.js.map +1 -0
  422. package/dist/{upload-queue-CNd_hH_a.js → upload-queue-BHZ_wBfd.js} +59 -62
  423. package/dist/upload-queue-BHZ_wBfd.js.map +1 -0
  424. package/dist/{usage-card-VyJLUwRr.js → usage-card-U0YBLTNT.js} +42 -43
  425. package/dist/{usage-card-VyJLUwRr.js.map → usage-card-U0YBLTNT.js.map} +1 -1
  426. package/dist/{utils-BvH9PSmq.js → utils-Cospvlj1.js} +221 -51
  427. package/dist/utils-Cospvlj1.js.map +1 -0
  428. package/dist/value-inputs-CjfzGMsN.js +854 -0
  429. package/dist/value-inputs-CjfzGMsN.js.map +1 -0
  430. package/dist/value-typography-Deb3yQZg.js +116 -0
  431. package/dist/value-typography-Deb3yQZg.js.map +1 -0
  432. package/dist/{workspace-CcR8r-Nt.js → workspace-YoFjXi6i.js} +44 -45
  433. package/dist/workspace-YoFjXi6i.js.map +1 -0
  434. package/docs/consumer-skill/SKILL.md +51 -38
  435. package/docs/consumer-skill/examples/app-layout.tsx +2 -4
  436. package/docs/consumer-skill/examples/detail.tsx +3 -4
  437. package/docs/consumer-skill/examples/edit.tsx +1 -1
  438. package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
  439. package/docs/consumer-skill/examples/manifest.json +28 -6
  440. package/docs/consumer-skill/examples/scoped-directory.tsx +2 -2
  441. package/docs/consumer-skill/references/composition.md +89 -17
  442. package/docs/consumer-skill/references/discovery.md +4 -0
  443. package/docs/consumer-skill/references/installation.md +22 -0
  444. package/docs/consumer-skill/references/integration.md +32 -1
  445. package/docs/consumer-skill/references/public-api.json +111 -70
  446. package/docs/consumer-skill/references/review.md +20 -4
  447. package/docs/consumer-skill/references/theming.md +7 -1
  448. package/docs/consumer-skill/references/tokens.json +5 -2
  449. package/docs/consumer-skill/references/workflows.md +4 -2
  450. package/docs/consumer-skill/scripts/composition-policy.mjs +93 -2
  451. package/docs/consumer-skill/scripts/discovery.mjs +11 -3
  452. package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
  453. package/package.json +5 -3
  454. package/dist/accordion-BRTcsp8J.js.map +0 -1
  455. package/dist/action-menu-Drxw_vJk.js +0 -265
  456. package/dist/action-menu-Drxw_vJk.js.map +0 -1
  457. package/dist/affordance-geometry.generated-CL84ZN9A.js.map +0 -1
  458. package/dist/ai-artifact-DLVdK0Py.js.map +0 -1
  459. package/dist/avatar-Bu2HhitA.js.map +0 -1
  460. package/dist/badge-CzId1Wlm.js.map +0 -1
  461. package/dist/button-BZDasD04.js.map +0 -1
  462. package/dist/buttons-D_6KJvEE.js.map +0 -1
  463. package/dist/chart-Bsc5BICK.js.map +0 -1
  464. package/dist/checkbox-BQNDjUCh.js +0 -34
  465. package/dist/checkbox-BQNDjUCh.js.map +0 -1
  466. package/dist/choice-inputs-Mk3iWbhr.js +0 -725
  467. package/dist/choice-inputs-Mk3iWbhr.js.map +0 -1
  468. package/dist/combobox-BFnbJJp3.js.map +0 -1
  469. package/dist/combobox-hozNwUcc.js.map +0 -1
  470. package/dist/command-BnmSchli.js.map +0 -1
  471. package/dist/comments-u5L0OGip.js.map +0 -1
  472. package/dist/data-display-Bihs9Ven.js.map +0 -1
  473. package/dist/date-DOKhJPu7.js +0 -140
  474. package/dist/date-DOKhJPu7.js.map +0 -1
  475. package/dist/date-picker-DzP5HQq7.js +0 -1541
  476. package/dist/date-picker-DzP5HQq7.js.map +0 -1
  477. package/dist/date-pickers-BpgGz7S-.js +0 -196
  478. package/dist/date-pickers-BpgGz7S-.js.map +0 -1
  479. package/dist/display-CS6Hbk18.js.map +0 -1
  480. package/dist/dropdown-menu-D-boNgGO.js.map +0 -1
  481. package/dist/feedback-CJkUAapr.js.map +0 -1
  482. package/dist/field-affordance-recipes-uKY4MsZ_.js +0 -25
  483. package/dist/field-affordance-recipes-uKY4MsZ_.js.map +0 -1
  484. package/dist/field-state-recipes-DQQpiLWC.js.map +0 -1
  485. package/dist/filters-D6FF8L6s.js.map +0 -1
  486. package/dist/form-sizing-QP8aIRaW.js +0 -103
  487. package/dist/form-sizing-QP8aIRaW.js.map +0 -1
  488. package/dist/format-iamDSqs2.js +0 -110
  489. package/dist/format-iamDSqs2.js.map +0 -1
  490. package/dist/forms-B5NCbkSC.js.map +0 -1
  491. package/dist/forms-numeric-Crrm80Lm.js +0 -867
  492. package/dist/forms-numeric-Crrm80Lm.js.map +0 -1
  493. package/dist/header-kxruN3RM.js.map +0 -1
  494. package/dist/input-SX9V0AL3.js +0 -255
  495. package/dist/item-DE4YnuJx.js +0 -258
  496. package/dist/item-DE4YnuJx.js.map +0 -1
  497. package/dist/media-gallery-DLp3HAz0.js.map +0 -1
  498. package/dist/navigation-DnQSNMT0.js.map +0 -1
  499. package/dist/navigation-DyytsLRB.js.map +0 -1
  500. package/dist/number-DasMFWEG.js +0 -269
  501. package/dist/number-DasMFWEG.js.map +0 -1
  502. package/dist/overlay.recipes-BxW5FIfK.js +0 -6
  503. package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
  504. package/dist/overlays-DUbs1KEi.js +0 -1011
  505. package/dist/overlays-DUbs1KEi.js.map +0 -1
  506. package/dist/page-hGmT4nWK.js +0 -213
  507. package/dist/page-hGmT4nWK.js.map +0 -1
  508. package/dist/page-header-D8nERkn5.js.map +0 -1
  509. package/dist/primitives-C7ff0QaI.js +0 -337
  510. package/dist/primitives-C7ff0QaI.js.map +0 -1
  511. package/dist/progress-BroqrAyV.js.map +0 -1
  512. package/dist/scroll-area-D-pIhEKl.js.map +0 -1
  513. package/dist/separator-BNIgG3au.js.map +0 -1
  514. package/dist/settings-DOTOzeZ2.js.map +0 -1
  515. package/dist/sheet-BFhrNehm.js +0 -205
  516. package/dist/sheet-BFhrNehm.js.map +0 -1
  517. package/dist/sidebar-CyR4XKwR.js.map +0 -1
  518. package/dist/sidebar-SvGJ0Zwi.js +0 -506
  519. package/dist/sidebar-SvGJ0Zwi.js.map +0 -1
  520. package/dist/smart-card-DjGVV2xr.js.map +0 -1
  521. package/dist/spinner-Cpf7oRkF.js.map +0 -1
  522. package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
  523. package/dist/surface-recipes-Dd__PD-w.js +0 -28
  524. package/dist/surface-recipes-Dd__PD-w.js.map +0 -1
  525. package/dist/table-CLtJTxoR.js +0 -147
  526. package/dist/table-CLtJTxoR.js.map +0 -1
  527. package/dist/table-CcRDZiLP.js.map +0 -1
  528. package/dist/tabs-BNgu7g0u.js.map +0 -1
  529. package/dist/text-inputs-DsR56TR-.js.map +0 -1
  530. package/dist/text.styles-Q4sGAIgA.js.map +0 -1
  531. package/dist/timelines-D1pkt3se.js.map +0 -1
  532. package/dist/track-recipes-LLPNVwFg.js +0 -10
  533. package/dist/track-recipes-LLPNVwFg.js.map +0 -1
  534. package/dist/typography-BxQgiZyw.js +0 -96
  535. package/dist/typography-BxQgiZyw.js.map +0 -1
  536. package/dist/ui-provider-DRPn3qNl.js.map +0 -1
  537. package/dist/upload-CDbYw1WN.js.map +0 -1
  538. package/dist/upload-queue-CNd_hH_a.js.map +0 -1
  539. package/dist/utils-BvH9PSmq.js.map +0 -1
  540. package/dist/value-inputs-D0KCrfVC.js +0 -840
  541. package/dist/value-inputs-D0KCrfVC.js.map +0 -1
  542. package/dist/workspace-CcR8r-Nt.js.map +0 -1
@@ -5,7 +5,7 @@ export interface Discount {
5
5
  /** Display label. */
6
6
  label: string;
7
7
  amount: string;
8
- /** Chip rendered beside the label. */
8
+ /** Tone of the type chip. Discount types are kinds, so pass `neutral` unless the chip states a status. */
9
9
  badge: BadgeTone;
10
10
  }
11
11
  export interface DiscountStackStrings {
@@ -36,7 +36,10 @@ export interface InventorySectionMetric {
36
36
  value: string;
37
37
  /** Supporting copy shown under the label. */
38
38
  description?: string;
39
- /** Semantic tone driving the entry's colour. */
39
+ /**
40
+ * Semantic tone of the entry. Not rendered by the summary: stats are plain
41
+ * and the title badge carries the stock state. Kept for type compatibility.
42
+ */
40
43
  tone?: 'default' | 'success' | 'warning' | 'error' | 'info';
41
44
  }
42
45
  export interface InventorySectionStrings {
@@ -20,7 +20,7 @@ export interface LoyaltyPointsProps {
20
20
  balance: number | string;
21
21
  /** Membership tier name. Defaults to `strings.tier`. */
22
22
  tier?: string;
23
- /** Badge tone for the tier chip. @default 'warning' */
23
+ /** Badge tone for the tier chip. A tier is a kind, not a status. @default 'neutral' */
24
24
  tierTone?: BadgeTone;
25
25
  /** Recent point movements. */
26
26
  history?: LoyaltyHistoryEntry[];
@@ -11,9 +11,13 @@ export interface OrderStatusEvent {
11
11
  export interface OrderStatusStrings {
12
12
  /** Surface title. */
13
13
  title: string;
14
+ /** Not rendered: the title badge states the status. Kept for existing overrides. */
14
15
  statusLabel: string;
16
+ /** Label of the delivery-estimate fact. */
15
17
  eta: string;
18
+ /** Not rendered: the timeline shows the latest event. Kept for existing overrides. */
16
19
  latestEvent: string;
20
+ /** Not rendered: the timeline marks the current step. Kept for existing overrides. */
17
21
  currentStep: string;
18
22
  }
19
23
  export declare const defaultOrderStatusStrings: OrderStatusStrings;
@@ -1,5 +1,5 @@
1
1
  import { type PaymentMethodProps } from './types';
2
- export declare function PaymentMethod({ brand, last4, expiry, holderName, default: defaultMethod, onChange, className, strings: stringsProp, }: PaymentMethodProps): import("react").JSX.Element;
2
+ export declare function PaymentMethod({ brand, last4, expiry, holderName, default: defaultMethod, onChange, surface, padding, headerDivider, className, strings: stringsProp, }: PaymentMethodProps): import("react").JSX.Element;
3
3
  export declare namespace PaymentMethod {
4
4
  var displayName: string;
5
5
  }
@@ -1,3 +1,4 @@
1
+ import type { CardProps } from '../../../base/cards';
1
2
  import type { StringsProp } from '../../../../lib/strings';
2
3
  export type PaymentBrand = 'visa' | 'mastercard' | 'amex' | 'paypal' | 'applepay' | 'googlepay' | 'unknown';
3
4
  export interface PaymentMethodStrings {
@@ -9,7 +10,8 @@ export interface PaymentMethodStrings {
9
10
  change: string;
10
11
  }
11
12
  export declare const defaultPaymentMethodStrings: PaymentMethodStrings;
12
- export interface PaymentMethodProps {
13
+ /** Unframed by default. Set surface="card" to let this owner frame its heading and body. */
14
+ export interface PaymentMethodProps extends Pick<CardProps, 'surface' | 'padding' | 'headerDivider'> {
13
15
  /** Card network or wallet. */
14
16
  brand: PaymentBrand;
15
17
  /** Last four digits, the only card number this component accepts. */
@@ -1,5 +1,5 @@
1
1
  import { type SeoListingCardProps } from './types';
2
- export declare function SeoListingCard({ siteName, baseUrl, pathSegments, permalink, title, description, price, keyword, score, limits, showChecks, onEdit, className, strings: stringsProp, }: SeoListingCardProps): import("react").JSX.Element;
2
+ export declare function SeoListingCard({ siteName, baseUrl, pathSegments, permalink, title, description, price, keyword, score, limits, showChecks, onEdit, surface, padding, headerDivider, className, strings: stringsProp, }: SeoListingCardProps): import("react").JSX.Element;
3
3
  export declare namespace SeoListingCard {
4
4
  var displayName: string;
5
5
  }
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { CardProps } from '../../../base/cards';
2
3
  import type { StringsProp } from '../../../../lib/strings';
3
4
  export type SeoListingCheckId = 'title' | 'description' | 'permalink' | 'slug' | 'url' | 'keyword';
4
5
  export type SeoListingCheckStatus = 'good' | 'review' | 'missing';
@@ -60,7 +61,8 @@ export interface SeoListingCardStrings {
60
61
  checkHints: Record<SeoListingCheckId, string>;
61
62
  }
62
63
  export declare const defaultSeoListingCardStrings: SeoListingCardStrings;
63
- export interface SeoListingCardProps {
64
+ /** Unframed by default. Set surface="card" to let this owner frame its heading and body. */
65
+ export interface SeoListingCardProps extends Pick<CardProps, 'surface' | 'padding' | 'headerDivider'> {
64
66
  /** Site name shown in the search preview. */
65
67
  siteName?: string;
66
68
  /** Origin the permalink is built on. */
@@ -76,7 +76,10 @@ export interface VendorProfileCardProps {
76
76
  onMessage?: () => void;
77
77
  /** Shows the engagement action and delegates its behavior to the consumer. */
78
78
  onHire?: () => void;
79
- /** Card surface override. Defaults through the shared SmartCard configuration. */
79
+ /**
80
+ * Card surface override. Defaults through the shared SmartCard configuration.
81
+ * `flat` also drops the dossier's own insets, so the embedding surface owns them.
82
+ */
80
83
  surface?: SmartCardSurface;
81
84
  /** Card density override. Defaults through the shared SmartCard configuration. */
82
85
  /** Additional classes applied to the outer SmartCard element. */
@@ -1,6 +1,9 @@
1
1
  export interface DenseInfoStrings {
2
2
  /** Total number of records across all pages. */
3
3
  total: string;
4
+ /** Word after the task count ("12/20 tasks"). */
4
5
  tasks: string;
6
+ /** Word after the priority value ("High priority"). Additive, so optional for existing dictionaries. */
7
+ priority?: string;
5
8
  }
6
- export declare const defaultDenseInfoStrings: DenseInfoStrings;
9
+ export declare const defaultDenseInfoStrings: Required<DenseInfoStrings>;
@@ -6,7 +6,10 @@
6
6
  * - `inline`: label sits immediately before the value, separator-style.
7
7
  * - `stacked`: label above (xs secondary), value below (md).
8
8
  *
9
- * `mono` toggles `tabular-nums` on the value side for amounts and counters.
9
+ * `mono` switches the value to the monospace identifier role (references,
10
+ * codes, keys). Amounts, counts, percentages and dates stay in the sans UI
11
+ * font: pass `valueClassName="tabular-nums"` (or a value primitive such as
12
+ * `Money` / `Percent`, which are already tabular) when figures should align.
10
13
  * Use `valueClassName` for one-off colour/weight overrides; the surrounding
11
14
  * row is intentionally plain so consumers can stack many of these without
12
15
  * visual clutter.
@@ -3,7 +3,7 @@ import type { GlobalSearchIdleSection } from '../global-search.types';
3
3
  export interface GlobalSearchIdleStateProps {
4
4
  /** Sections to render, in display order. */
5
5
  sections: ReadonlyArray<GlobalSearchIdleSection>;
6
- /** Optional override for the heading icon when missing on a section. */
6
+ /** Optional heading icon used when a section supplies none. Headings carry no icon by default. */
7
7
  fallbackIcons?: {
8
8
  recent?: React.ElementType;
9
9
  suggestions?: React.ElementType;
@@ -1,4 +1,4 @@
1
1
  import type { ConfirmDialogProps } from './overlays.types';
2
- declare function ConfirmDialogImpl({ open, onOpenChange, onClose, children, title, description, visuallyHideHeader, className, contentClassName, initialFocusRef, closeOnEscape, strings: customStrings, showCancel, showConfirm, onCancel, onConfirm, onAsyncConfirm, onError, closeOnAsyncComplete, confirmTone, confirmStyle, loading, formId, footer, tone, showIcon, alertMessage, trigger, destructive, }: ConfirmDialogProps): import("react").JSX.Element;
2
+ declare function ConfirmDialogImpl({ open, onOpenChange, onClose, children, title, description, visuallyHideHeader, className, contentClassName, surfaceStyle, initialFocusRef, closeOnEscape, strings: customStrings, showCancel, showConfirm, onCancel, onConfirm, onAsyncConfirm, onError, closeOnAsyncComplete, confirmTone, confirmStyle, loading, formId, footer, tone, showIcon, alertMessage, trigger, destructive, }: ConfirmDialogProps): import("react").JSX.Element;
3
3
  export declare const ConfirmDialog: import("react").MemoExoticComponent<typeof ConfirmDialogImpl>;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import type { ActionDrawerProps } from './overlays.types';
2
- declare function ActionDrawerImpl({ open, onOpenChange, onClose, children, title, description, visuallyHideHeader, showCloseButton, className, contentClassName, initialFocusRef, closeOnEscape, closeOnBackdropClick, strings: customStrings, showCancel, showConfirm, onCancel, onConfirm, onAsyncConfirm, onError, closeOnAsyncComplete, confirmTone, confirmStyle, loading, formId, footer, emphasis, tone, showIcon, alertMessage, direction, width, showFooter, modal, trigger, }: ActionDrawerProps): import("react").JSX.Element;
2
+ declare function ActionDrawerImpl({ open, onOpenChange, onClose, children, title, description, visuallyHideHeader, showCloseButton, className, contentClassName, surfaceStyle, initialFocusRef, closeOnEscape, closeOnBackdropClick, strings: customStrings, showCancel, showConfirm, onCancel, onConfirm, onAsyncConfirm, onError, closeOnAsyncComplete, confirmTone, confirmStyle, loading, formId, footer, emphasis, tone, showIcon, alertMessage, direction, width, showFooter, modal, trigger, }: ActionDrawerProps): import("react").JSX.Element;
3
3
  export declare const ActionDrawer: import("react").MemoExoticComponent<typeof ActionDrawerImpl>;
4
4
  export {};
@@ -7,8 +7,8 @@ export interface UseOverlayActionsOptions extends Pick<OverlayActionProps, 'onCo
7
7
  customStrings?: StringsProp<OverlayStrings>;
8
8
  emphasis?: boolean;
9
9
  tone?: OverlayTone;
10
- /** Called when `onAsyncConfirm` throws. Library DEV-logs the error;
11
- * consumer wires telemetry. */
10
+ /** Called when `onAsyncConfirm` throws; the consumer reports or retries.
11
+ * Without it the library logs the rejection in development only. */
12
12
  onError?: (error: unknown) => void;
13
13
  }
14
14
  export interface UseOverlayActionsReturn {
@@ -1,17 +1,21 @@
1
1
  import { type Dispatch, type SetStateAction } from 'react';
2
2
  export type OverlayOpenSetter = Dispatch<SetStateAction<boolean>>;
3
3
  export interface OverlayVisibilityProps {
4
+ /** Current visibility. */
4
5
  open: boolean;
5
- /** Fired when a change is opened. */
6
+ /** Requests a visibility change; spread both onto an overlay. */
6
7
  onOpenChange: (open: boolean) => void;
7
8
  }
8
9
  export interface UseOverlayVisibilityOptions {
10
+ /** Initial visibility when uncontrolled. Default: `false`. */
9
11
  defaultOpen?: boolean;
12
+ /** Controlled visibility. Omit to let the hook own it. */
10
13
  open?: boolean;
11
- /** Fired when a change is opened. */
14
+ /** Fired once for every actual visibility change. */
12
15
  onOpenChange?: (open: boolean) => void;
13
- /** Fired when an entry is opened. */
16
+ /** Fired after a change to open. */
14
17
  onOpen?: () => void;
18
+ /** Fired after a change to closed, whatever dismissed the overlay. */
15
19
  onClose?: () => void;
16
20
  }
17
21
  export interface UseOverlayVisibilityReturn {
@@ -25,10 +29,13 @@ export interface UseOverlayVisibilityReturn {
25
29
  }
26
30
  export type OverlayVisibilityGroupState<TKey extends string = string> = Record<TKey, boolean>;
27
31
  export interface UseOverlayVisibilityGroupOptions<TKey extends string = string> {
32
+ /** Initial visibility per key when uncontrolled. */
28
33
  defaultOpen?: Partial<Record<TKey, boolean>>;
34
+ /** Controlled visibility per key. */
29
35
  open?: Partial<Record<TKey, boolean>>;
30
- /** Fired when a change is opened. */
36
+ /** Fired once for every actual change, with the key, its visibility and the next group state. */
31
37
  onOpenChange?: (key: TKey, open: boolean, state: OverlayVisibilityGroupState<TKey>) => void;
38
+ /** Opening one key closes the others, for one-at-a-time overlays. Default: `false`. */
32
39
  closeOthersOnOpen?: boolean;
33
40
  }
34
41
  export type UseOverlayVisibilityGroupReturn<TKey extends string = string> = Record<TKey, UseOverlayVisibilityReturn>;
@@ -0,0 +1,37 @@
1
+ import type { OverlayTone } from './overlays.types';
2
+ /** One glyph and colour per tone, shared by every overlay's opt-in `showIcon`. */
3
+ export declare const overlayToneGlyphs: {
4
+ readonly neutral: {
5
+ readonly Glyph: import("lucide-react").LucideIcon;
6
+ readonly color: "text-muted-foreground";
7
+ readonly surface: "bg-muted";
8
+ };
9
+ readonly destructive: {
10
+ readonly Glyph: import("lucide-react").LucideIcon;
11
+ readonly color: "text-destructive";
12
+ readonly surface: "bg-destructive/10";
13
+ };
14
+ readonly warning: {
15
+ readonly Glyph: import("lucide-react").LucideIcon;
16
+ readonly color: "text-warning-accent";
17
+ readonly surface: "bg-warning/15";
18
+ };
19
+ readonly info: {
20
+ readonly Glyph: import("lucide-react").LucideIcon;
21
+ readonly color: "text-info";
22
+ readonly surface: "bg-info/15";
23
+ };
24
+ readonly success: {
25
+ readonly Glyph: import("lucide-react").LucideIcon;
26
+ readonly color: "text-success";
27
+ readonly surface: "bg-success/15";
28
+ };
29
+ };
30
+ /**
31
+ * Inline tone glyph for a heading row. The wrapper takes the title's own line
32
+ * box (base size, snug leading, `h-lh`), so the glyph centres on the first title
33
+ * line at any density instead of relying on an optical offset.
34
+ */
35
+ export declare function OverlayToneIcon({ tone }: {
36
+ tone: OverlayTone;
37
+ }): import("react").JSX.Element;
@@ -34,7 +34,9 @@ export interface OverlayBaseProps {
34
34
  /**
35
35
  * Renders the corner dismiss control. Default: `true`. Set `false` for
36
36
  * overlays whose body is the whole surface — a command palette has nowhere
37
- * to put a floating X without it landing on the content.
37
+ * to put a floating X without it landing on the content. Keep another
38
+ * visible way to dismiss (a cancel action) so touch screen-reader users can
39
+ * leave the overlay.
38
40
  */
39
41
  showCloseButton?: boolean;
40
42
  /**
@@ -43,11 +45,15 @@ export interface OverlayBaseProps {
43
45
  * on the dialog itself, which no className can express.
44
46
  */
45
47
  surfaceStyle?: CSSProperties;
46
- /** Element to focus on open, instead of the first tabbable node. */
47
- initialFocusRef?: RefObject<HTMLElement>;
48
- /** Allows Escape to dismiss. Set `false` for destructive or in-progress work. */
48
+ /**
49
+ * Element to focus on open, instead of the first tabbable node (the first
50
+ * field or action; the corner dismiss control comes last). Accepts a
51
+ * `useRef<HTMLInputElement>(null)` ref directly.
52
+ */
53
+ initialFocusRef?: RefObject<HTMLElement | null>;
54
+ /** Allows Escape to dismiss. Default: `true`. Set `false` for destructive or in-progress work. */
49
55
  closeOnEscape?: boolean;
50
- /** Allows a backdrop click to dismiss. */
56
+ /** Allows a backdrop click to dismiss. Default: `true`. */
51
57
  closeOnBackdropClick?: boolean;
52
58
  /** Overrides the overlay's own copy (confirm/cancel labels). */
53
59
  strings?: StringsProp<OverlayStrings>;
@@ -100,37 +106,46 @@ export interface OverlayActionProps {
100
106
  * `onSubmit` owns the outcome — `onConfirm` and `onAsyncConfirm` do not fire.
101
107
  */
102
108
  formId?: string;
103
- /** Replaces the generated footer; the consumer owns its action states. Pending dismissal protection still applies. */
109
+ /**
110
+ * Replaces the generated footer; the consumer owns its action states.
111
+ * Pending dismissal protection still applies. Custom actions that close the
112
+ * overlay use controlled visibility (`useOverlayVisibility`).
113
+ */
104
114
  footer?: ReactNode;
105
115
  }
106
116
  /** Semantic weight — the header icon and the confirm button's tone. */
107
117
  export interface OverlayEmphasisProps {
108
118
  /**
109
- * Lets `tone` drive the header icon and the confirm button colour. Without
110
- * it the tone is presentational only and `confirmTone` decides the button.
119
+ * Lets `tone` decide the confirm button colour (destructive, warning or
120
+ * success). Without it `confirmTone` decides the button. Default: `false`.
111
121
  */
112
122
  emphasis?: boolean;
113
- /** Semantic tone of the overlay. Default: `'neutral'`. */
123
+ /** Semantic tone of the overlay: the `showIcon` glyph and the `alertMessage` notice. Default: `'neutral'`. */
114
124
  tone?: OverlayTone;
115
- /** Shows the tone's icon beside the title. */
125
+ /** Shows the tone's glyph beside the title, centred on its first line. Default: `false`. */
116
126
  showIcon?: boolean;
117
127
  /** Inline notice between the header and the body — a warning or consequence. */
118
128
  alertMessage?: string;
119
129
  }
120
130
  /** A modal dialog with a title, body, and generated action footer. */
121
131
  export interface ActionDialogProps extends OverlayBaseProps, OverlayActionProps, OverlayEmphasisProps {
122
- /** Maximum dialog width. Default: `md`. */
132
+ /** Maximum dialog width from the `sm` breakpoint; below it the dialog keeps a 1rem viewport margin. Default: `lg`. */
123
133
  size?: OverlaySize;
124
- /** Element that opens the dialog. Supply it for uncontrolled use instead of `open`. */
134
+ /** Element that opens the dialog. Supply it for uncontrolled use instead of `open`; a string renders a secondary button. */
125
135
  trigger?: ReactNode;
126
136
  }
127
137
  /** An edge-anchored panel for longer work than a dialog comfortably holds. */
128
138
  export interface ActionDrawerProps extends OverlayBaseProps, OverlayActionProps, OverlayEmphasisProps {
129
139
  /** Edge the drawer enters from. Default: `right`. */
130
140
  direction?: DrawerDirection;
131
- /** Panel measurement along its opening axis — width for left/right, height for top/bottom. */
141
+ /**
142
+ * Maximum panel width for left and right drawers from the `sm` breakpoint;
143
+ * below it the panel spans the viewport. Top and bottom drawers span the
144
+ * width and size to their content up to 85% of the viewport height.
145
+ * Default: `lg`.
146
+ */
132
147
  width?: OverlaySize;
133
- /** Renders the action footer. Set `false` when the body owns its own actions. */
148
+ /** Renders the action footer. Default: `true`. Set `false` when the body owns its own actions. */
134
149
  showFooter?: boolean;
135
150
  /**
136
151
  * Whether the drawer takes the page hostage while it is open. Default: `true`.
@@ -140,7 +155,8 @@ export interface ActionDrawerProps extends OverlayBaseProps, OverlayActionProps,
140
155
  * Some side panels are the opposite: a theme editor, an inspector, a live
141
156
  * filter rail, anything whose whole purpose is to sit beside the app while
142
157
  * you keep working in it. Those need `false`, which drops the scrim and the
143
- * inerting and leaves the page interactive.
158
+ * inerting and leaves the page interactive; pressing the page no longer
159
+ * dismisses the panel, which closes from its own controls or Escape.
144
160
  *
145
161
  * `'trap-focus'` is the middle setting — focus stays inside, but the page
146
162
  * neither locks its scroll nor stops taking pointer events.
@@ -149,7 +165,7 @@ export interface ActionDrawerProps extends OverlayBaseProps, OverlayActionProps,
149
165
  * confirmation or anything the user must answer before continuing.
150
166
  */
151
167
  modal?: boolean | 'trap-focus';
152
- /** Element that opens the drawer. Supply it for uncontrolled use instead of `open`. */
168
+ /** Element that opens the drawer. Supply it for uncontrolled use instead of `open`; a string renders a secondary button. */
153
169
  trigger?: ReactNode;
154
170
  }
155
171
  /**
@@ -157,14 +173,21 @@ export interface ActionDrawerProps extends OverlayBaseProps, OverlayActionProps,
157
173
  * body needs real content — this one is sized for a question and two answers.
158
174
  */
159
175
  export interface ConfirmDialogProps extends OverlayBaseProps, OverlayActionProps {
160
- /** Semantic tone, driving the icon and confirm button. Default: `'neutral'`. */
176
+ /** Semantic tone, driving the confirm button, the `showIcon` glyph and the notice. Default: `'neutral'`. */
161
177
  tone?: OverlayTone;
162
- /** Shows the tone's icon beside the title. */
178
+ /** Shows the tone's glyph above the title. Default: `false`; the confirm button and copy carry the tone. */
163
179
  showIcon?: boolean;
164
180
  /** Inline notice explaining the consequence before the user commits. */
165
181
  alertMessage?: string;
166
- /** Element that opens the dialog. Supply it for uncontrolled use instead of `open`. */
182
+ /** Element that opens the dialog. Supply it for uncontrolled use instead of `open`; a string renders a secondary button. */
167
183
  trigger?: ReactNode;
168
184
  /** Shorthand for the destructive presentation. */
169
185
  destructive?: boolean;
186
+ /**
187
+ * Not used: a confirmation needs an explicit answer, so an outside press
188
+ * never dismisses it. Escape still cancels unless `closeOnEscape` is `false`.
189
+ */
190
+ closeOnBackdropClick?: boolean;
191
+ /** Not used: a confirmation has no corner dismiss control; Cancel or Escape declines. */
192
+ showCloseButton?: boolean;
170
193
  }
@@ -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, 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, 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;
3
3
  export declare namespace ProductVariantsManager {
4
4
  var displayName: string;
5
5
  }
@@ -2,6 +2,6 @@ export { ProductRowActions } from './product-actions';
2
2
  export { ProductEmptyState } from './product-empty-state';
3
3
  export { ProductMetricTile } from './product-metric-tile';
4
4
  export { ProductOperationRow, ProductReadinessRow, ProductStructureMetricRow, ProductSummaryRow, } from './product-rows';
5
- export { PRODUCT_TONE_BADGE, PRODUCT_TONE_SURFACE, ProductToneDot, clampProductPercent, } from './product-tone';
5
+ export { PRODUCT_TONE_BADGE, PRODUCT_TONE_TEXT, ProductToneDot, clampProductPercent, isProductStatusTone, } from './product-tone';
6
6
  export { ProductVariantActions, ProductVariantCell, } from './product-variant-table-parts';
7
7
  export { PRODUCT_EMPTY_VALUE } from './product-values';
@@ -1,4 +1,10 @@
1
1
  import type { ProductMetricSummary, ProductStructureMetric } from '../products.types';
2
+ /**
3
+ * A headline fact: label above an emphasised value, in the same label-over-value
4
+ * anatomy as the metadata lists beside it. No tile chrome — the parent grid's
5
+ * gap separates metrics — and colour appears only as a status dot when the
6
+ * metric's tone states a status.
7
+ */
2
8
  export declare function ProductMetricTile({ metric }: {
3
9
  metric: ProductStructureMetric | ProductMetricSummary;
4
10
  }): import("react").JSX.Element;
@@ -1,7 +1,17 @@
1
1
  import type { BadgeTone } from '../../../base/badge';
2
2
  import type { ProductTone } from '../products.types';
3
+ /**
4
+ * Badge tone for a product row value. Only status tones carry colour; neutral
5
+ * and primary (reserved for the main command) render as neutral badges.
6
+ */
3
7
  export declare const PRODUCT_TONE_BADGE: Record<ProductTone, BadgeTone>;
4
- export declare const PRODUCT_TONE_SURFACE: Record<ProductTone, string>;
8
+ /**
9
+ * Text colour for a figure whose tone states a status. Figures keep their width,
10
+ * so a flagged metric lines up with its plain siblings instead of growing a chip.
11
+ */
12
+ export declare const PRODUCT_TONE_TEXT: Record<ProductTone, string | undefined>;
13
+ /** Whether a tone states a status. Neutral and primary are presentation, not state. */
14
+ export declare function isProductStatusTone(tone: ProductTone | undefined): tone is ProductTone;
5
15
  export declare function clampProductPercent(value: number): number;
6
16
  export declare function ProductToneDot({ tone }: {
7
17
  tone?: ProductTone;
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { CardProps } from '../../base/cards';
2
3
  import type { BadgeTone } from '../../base/badge';
3
4
  import type { ActionMenuAction } from '../../base/action-menu';
4
5
  import type { MetadataListItem } from '../../blocks/data-display/metadata';
@@ -741,7 +742,7 @@ export interface ProductVariantsBulkTableProps {
741
742
  /** Overrides this surface’s own copy. */
742
743
  strings?: StringsProp<ProductVariantBulkTableStrings>;
743
744
  }
744
- export interface ProductVariantsManagerProps extends 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'> {
745
+ 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'> {
745
746
  /** Groups rows under the values of this option. `null` leaves the list flat. */
746
747
  groupByOptionId?: string | null;
747
748
  /** Option group used for grouping on first render. */
@@ -72,7 +72,7 @@ export interface DateCellProps {
72
72
  preset?: DateProps['preset'];
73
73
  /** date-fns locale override. Falls back to UIProvider dates. */
74
74
  locale?: DateProps['locale'];
75
- /** Renders the icon. */
75
+ /** Renders the leading glyph. Off by default: a repeated calendar glyph on every row adds no information. */
76
76
  showIcon?: boolean;
77
77
  /** Leading glyph. */
78
78
  icon?: ComponentType<{
@@ -1,4 +1,4 @@
1
1
  export { Page } from './page';
2
2
  export { PageHeader } from './partials/page-header';
3
3
  export { PageActions } from './partials/page-actions';
4
- export { defaultPageActionsStrings, type PageHeaderProps, type PageHeaderSlots, type PageActionsProps, type PageActionsDisplay, type PageAction, type PageActionContext, type PageActionsStrings, type PageProps, type PageSlotProps, } from './page.types';
4
+ export { defaultPageActionsStrings, type PageHeaderAction, type PageHeaderProps, type PageHeaderSlots, type PageActionsProps, type PageActionsDisplay, type PageAction, type PageActionContext, type PageActionsStrings, type PageProps, type PageSlotProps, } from './page.types';
@@ -18,6 +18,40 @@ export interface PageTitleBadge {
18
18
  tone?: BadgeTone;
19
19
  key?: Key;
20
20
  }
21
+ /**
22
+ * A page command described by its role. `primaryAction` and `secondaryActions`
23
+ * choose the treatment, so a command carries no tone or button style.
24
+ */
25
+ export interface PageHeaderAction {
26
+ /** Stable key. Defaults to the command's position. */
27
+ id?: string;
28
+ /** Visible command text. */
29
+ label: ReactNode;
30
+ /** Runs the command. When both are set, `onClick` wins over `href`. */
31
+ onClick?: () => void;
32
+ /** Navigates through the header's `renderLink` instead of running a callback. */
33
+ href?: string;
34
+ target?: string;
35
+ rel?: string;
36
+ /** Marks the destination as leaving the app; forwarded to `renderLink`. */
37
+ external?: boolean;
38
+ /** Leading glyph. Pass a Lucide icon component. */
39
+ icon?: ComponentType<{
40
+ className?: string;
41
+ }>;
42
+ /** Shows the pending indicator and blocks activation. */
43
+ loading?: boolean;
44
+ /** Blocks activation while keeping the command visible. */
45
+ disabled?: boolean;
46
+ /** Set false to omit the command, for example without permission. */
47
+ visible?: boolean;
48
+ /**
49
+ * Irreversible or harmful command. A destructive secondary command moves to
50
+ * the More actions menu; a destructive primary command keeps its place with
51
+ * the destructive treatment. Confirm it from the handler, e.g. ConfirmDialog.
52
+ */
53
+ destructive?: boolean;
54
+ }
21
55
  export interface PageHeaderSlots {
22
56
  /** Replaces the leading back control entirely. */
23
57
  back?: ReactNode;
@@ -25,7 +59,7 @@ export interface PageHeaderSlots {
25
59
  beforeTitle?: ReactNode;
26
60
  /** Additional content after the description. */
27
61
  afterDescription?: ReactNode;
28
- /** Replaces the trailing actions region. */
62
+ /** Replaces the trailing actions region, including role-based commands. */
29
63
  actions?: ReactNode;
30
64
  }
31
65
  export interface PageHeaderProps extends LayoutNavigationAdapter {
@@ -35,7 +69,7 @@ export interface PageHeaderProps extends LayoutNavigationAdapter {
35
69
  description?: ReactNode;
36
70
  /** Shared title/description rhythm. Defaults to dense for page copy. */
37
71
  textGap?: TextGap;
38
- /** Semantic heading level for the title. Defaults to `h3` for nested app pages. */
72
+ /** Semantic heading level for the title. Defaults to `h1`, the route's main heading; use `h2` when the page sits inside another titled page. */
39
73
  headingTag?: HeadingTag;
40
74
  /** Optional decorative icon rendered before the title. Pass a Lucide icon component. */
41
75
  titleIcon?: ComponentType<{
@@ -54,7 +88,23 @@ export interface PageHeaderProps extends LayoutNavigationAdapter {
54
88
  backLabel?: string;
55
89
  /** Chips shown beside the page title. */
56
90
  titleBadges?: PageTitleBadge[];
57
- /** Controls offered on the surface. */
91
+ /**
92
+ * The page's one main command: a solid primary button at the trailing end,
93
+ * visible at every width.
94
+ */
95
+ primaryAction?: PageHeaderAction;
96
+ /**
97
+ * Supporting commands in priority order. The first two render as outline
98
+ * buttons; the rest, and every destructive command, move into the More
99
+ * actions menu. Below `sm`, all secondary commands collapse into that menu.
100
+ */
101
+ secondaryActions?: readonly PageHeaderAction[];
102
+ /** Accessible name of the More actions menu trigger. */
103
+ moreActionsLabel?: string;
104
+ /**
105
+ * Custom controls before the role-based commands, such as a period select.
106
+ * Prefer `primaryAction` and `secondaryActions` for commands.
107
+ */
58
108
  actions?: ReactNode;
59
109
  /** Replaces individual regions of the shell. */
60
110
  slots?: PageHeaderSlots;
@@ -0,0 +1,13 @@
1
+ import type { LayoutLinkRenderer } from '../../layout.types';
2
+ import type { PageHeaderAction } from '../page.types';
3
+ /** Secondary commands rendered as buttons from `sm` up; later ones overflow. */
4
+ export declare const PAGE_HEADER_INLINE_SECONDARY_LIMIT = 2;
5
+ export interface PageHeaderCommandsProps {
6
+ primaryAction?: PageHeaderAction;
7
+ secondaryActions?: readonly PageHeaderAction[];
8
+ moreActionsLabel: string;
9
+ renderLink: LayoutLinkRenderer;
10
+ }
11
+ /** Whether the header has any role-based command to render. */
12
+ export declare function hasPageHeaderCommands(primaryAction: PageHeaderAction | undefined, secondaryActions: readonly PageHeaderAction[] | undefined): boolean;
13
+ export declare function PageHeaderCommands({ primaryAction, secondaryActions, moreActionsLabel, renderLink, }: PageHeaderCommandsProps): import("react").JSX.Element | null;
@@ -1,2 +1,2 @@
1
1
  import type { PageHeaderProps } from '../page.types';
2
- export declare function PageHeader({ title, description, textGap, headingTag, titleIcon: TitleIcon, titleIconHref, onTitleIconClick, titleIconLabel, backHref, onBack, backLabel, titleBadges, actions, slots, renderLink, className, contentClassName, actionsClassName, titleClassName, titleIconClassName, descriptionClassName, }: PageHeaderProps): import("react").JSX.Element;
2
+ export declare function PageHeader({ title, description, textGap, headingTag, titleIcon: TitleIcon, titleIconHref, onTitleIconClick, titleIconLabel, backHref, onBack, backLabel, titleBadges, primaryAction, secondaryActions, moreActionsLabel, actions, slots, renderLink, className, contentClassName, actionsClassName, titleClassName, titleIconClassName, descriptionClassName, }: PageHeaderProps): import("react").JSX.Element;