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
@@ -2,7 +2,7 @@
2
2
  * SwitchCard — bordered settings card with an icon, title, optional
3
3
  * description, optional hint, and a trailing switch. The whole card is
4
4
  * clickable and toggles the switch; clicking inside the actual switch only
5
- * toggles once. Active state lifts the border and tints the surface.
5
+ * toggles once. The on state draws the primary border; the switch itself carries the state.
6
6
  *
7
7
  * Use for top-of-list "feature" toggles where the switch needs more visual
8
8
  * weight than a `ToggleField`. For dense rows, prefer `ToggleField`.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Private label / hint / error chrome shared by the DatePicker modes and
3
+ * MonthYearPicker. It keeps FormField's rhythm and roles: the same label recipe,
4
+ * the same gap to the trigger and to the supporting line, and a polite alert for
5
+ * the validation message. Validation marks the trigger, not the label.
6
+ *
7
+ * The hint keeps its documented place beside the label and is suppressed while
8
+ * an error shows. Not part of the public API.
9
+ */
10
+ import type { ReactNode, Ref } from 'react';
11
+ export interface DatePickerFieldProps {
12
+ rootRef?: Ref<HTMLDivElement>;
13
+ className?: string;
14
+ label?: string;
15
+ hint?: string;
16
+ error?: string;
17
+ /** Id of the trigger the label names. */
18
+ triggerId: string;
19
+ /** Id of the validation message the trigger references. */
20
+ describedById: string;
21
+ children: ReactNode;
22
+ }
23
+ export declare function DatePickerField({ rootRef, className, label, hint, error, triggerId, describedById, children, }: DatePickerFieldProps): import("react").JSX.Element;
@@ -72,11 +72,21 @@ export interface DatePickerBaseProps {
72
72
  /** Short guidance shown beside the label. Suppressed while `error` is set. */
73
73
  hint?: string;
74
74
  /**
75
- * Validation message rendered below the trigger and referenced by the
76
- * trigger's `aria-describedby`. Setting it also marks the control invalid
77
- * and tints the label.
75
+ * Validation message rendered below the trigger (as a polite alert) and
76
+ * referenced by the trigger's `aria-describedby`. Setting it also marks the
77
+ * trigger invalid; like `FormField`, validation marks the field, not the label.
78
78
  */
79
79
  error?: string;
80
+ /**
81
+ * Marks the trigger invalid without rendering a message, for when an external
82
+ * `FormField` owns the validation copy. `error` implies it.
83
+ */
84
+ invalid?: boolean;
85
+ /**
86
+ * Id of the trigger. An external `<FormField label>` assigns its child an id,
87
+ * so the label names the trigger. Defaults to a generated id.
88
+ */
89
+ id?: string;
80
90
  /** Disables the trigger and prevents the calendar from opening. */
81
91
  disabled?: boolean;
82
92
  /** Merged onto the outermost node. */
@@ -1,7 +1,12 @@
1
1
  import type { TextGap } from '../structure';
2
2
  /**
3
- * AlertDialog — structured base wrapper around the shadcn alert-dialog
4
- * primitive. Higher-level confirmation recipes belong in features/overlays.
3
+ * AlertDialog — internal confirmation anatomy behind `ConfirmDialog`.
4
+ *
5
+ * Not published from any entrypoint: applications use `ConfirmDialog` from
6
+ * `themelia-react-ui/features/overlays`, which owns the decision lifecycle.
7
+ * The surface shares the modal shell, region and typography geometry of the
8
+ * internal Dialog wrapper; the heading sits inside the scrolling body because
9
+ * a confirmation reads as one block above its pinned answers.
5
10
  */
6
11
  import * as React from 'react';
7
12
  import { AlertDialog as AlertDialogPrimitive, AlertDialogOverlay, AlertDialogPortal } from '../../ui/alert-dialog';
@@ -15,6 +20,7 @@ export declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<im
15
20
  export declare const AlertDialogHeader: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "ref"> & {
16
21
  textGap?: TextGap;
17
22
  } & React.RefAttributes<HTMLDivElement>>;
23
+ /** Scroll-owning region above the pinned answers; rules appear only on edges hiding content. */
18
24
  export declare const AlertDialogBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
19
25
  export declare const AlertDialogFooter: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
26
  export declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AlertDialogTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
@@ -1,4 +1,3 @@
1
- /** @deprecated Use Card with surface="flat" and padding="none" for unframed content. */
2
1
  import { type HTMLAttributes, type ReactNode } from 'react';
3
2
  import type { ActionMenuAction } from '../action-menu';
4
3
  import type { StructureGap } from '../structure';
@@ -68,6 +67,9 @@ export interface ContentBlockProps extends Omit<HTMLAttributes<HTMLDivElement>,
68
67
  /** Overrides the block's own copy (overflow-menu and tooltip labels). */
69
68
  strings?: StringsProp<ContentBlockStrings>;
70
69
  }
71
- /** Migration adapter only; Card owns all rendering, slots and surface recipes. */
70
+ /**
71
+ * Migration adapter only; Card owns all rendering, slots and surface recipes.
72
+ * @deprecated Use Card with surface="flat" and padding="none" for unframed content.
73
+ */
72
74
  export declare const ContentBlock: import("react").ForwardRefExoticComponent<ContentBlockProps & import("react").RefAttributes<HTMLDivElement>>;
73
75
  export { defaultContentBlockStrings, type ContentBlockStrings } from './content-block.strings';
@@ -31,7 +31,7 @@ export interface DateBlockProps extends Omit<ComponentPropsWithoutRef<'time'>, '
31
31
  time?: ReactNode;
32
32
  /** Override the machine-readable value placed on the native `<time>`. */
33
33
  dateTime?: string;
34
- /** date-fns locale. Falls back to `<UIProvider dates={{ locale }}>`. */
34
+ /** date-fns locale. Falls back to `<UIProvider config={{ dates: { locale } }}>`. */
35
35
  locale?: Locale;
36
36
  /** Visual layout. @default "stacked" */
37
37
  layout?: DateBlockLayout;
@@ -1,10 +1,13 @@
1
1
  import type { TextGap } from '../structure';
2
2
  /**
3
- * Dialog — structured base wrapper around the shadcn dialog primitive.
3
+ * Dialog — internal modal anatomy behind `ActionDialog`.
4
4
  *
5
- * Primitive state and composition props pass through unchanged. The package
6
- * wrapper supplies deliberate modal anatomy: separated header and footer,
7
- * a scroll-owning body, tokenized spacing, and stable BEM hooks.
5
+ * Not published from any entrypoint: applications use `ActionDialog` (or
6
+ * `ConfirmDialog`) from `themelia-react-ui/features/overlays`, which owns the
7
+ * lifecycle, focus, dismissal and action contract. This wrapper supplies the
8
+ * modal geometry those features share: one framed popover surface whose shell
9
+ * owns the block inset and the gap between header, scrolling body and footer,
10
+ * as Card does, with no static rules between regions.
8
11
  */
9
12
  import * as React from 'react';
10
13
  import { Dialog as DialogPrimitive, DialogOverlay, DialogPortal } from '../../ui/dialog';
@@ -21,7 +24,11 @@ export declare const DialogContent: React.ForwardRefExoticComponent<Omit<import(
21
24
  export declare const DialogHeader: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "ref"> & {
22
25
  textGap?: TextGap;
23
26
  } & React.RefAttributes<HTMLDivElement>>;
24
- /** Scroll-owning content region between the fixed dialog header and footer. */
27
+ /**
28
+ * Scroll-owning content region between the pinned dialog header and footer.
29
+ * A rule appears on its top or bottom edge only while content is scrolled out
30
+ * of view there.
31
+ */
25
32
  export declare const DialogBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
26
33
  export declare const DialogFooter: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
27
34
  showCloseButton?: boolean;
@@ -1,5 +1,10 @@
1
1
  import type { ReactNode } from 'react';
2
- /** One wrapping title/suffix composition shared by cards and content structures. */
2
+ /**
3
+ * One wrapping title/suffix composition shared by cards and content structures.
4
+ * A plain-text title is exposed as a level-2 heading (below the page's h1) so
5
+ * screen-reader users can move between surfaces; suffix badges stay outside its
6
+ * accessible name. Custom title nodes keep their own semantics.
7
+ */
3
8
  export declare function SurfaceTitle({ title, suffix, size, className, suffixClassName, dataSlot }: {
4
9
  title?: ReactNode;
5
10
  suffix?: ReactNode;
@@ -40,7 +40,7 @@ export interface AlertMetadataItemProps extends Omit<ComponentPropsWithoutRef<'d
40
40
  label: ReactNode;
41
41
  /** User-provided metadata value. May contain a package value primitive. */
42
42
  value: ReactNode;
43
- /** Applies tabular monospace figures to simple numeric values. */
43
+ /** Applies tabular figures to simple numeric values, in the sans UI font. */
44
44
  numeric?: boolean;
45
45
  }
46
46
  /** A label/value pair rendered with native `dt` and `dd` semantics. */
@@ -9,13 +9,13 @@ export interface LoadingStateProps extends DivProps {
9
9
  description?: ReactNode;
10
10
  /** Completion percentage, 0-100, for determinate loading. */
11
11
  progress?: number;
12
- /** Which state is shown — loading, empty, or error. */
12
+ /** `inline` (default) for a chrome-free status inside an existing region; `panel` for one framed surface. */
13
13
  variant?: LoadingStateVariant;
14
14
  /** Renders placeholder bars instead of a message. */
15
15
  skeleton?: boolean | ReactNode;
16
16
  /** How many skeleton bars to draw. */
17
17
  lines?: number;
18
- /** Glyph shown above the message. */
18
+ /** Leading glyph beside the message. Defaults to a spinning loader. */
19
19
  icon?: ReactNode;
20
20
  }
21
21
  export declare const LoadingState: import("react").ForwardRefExoticComponent<LoadingStateProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -27,12 +27,13 @@ export interface ErrorStateProps extends Omit<DivProps, 'title'> {
27
27
  description?: ReactNode;
28
28
  /** Control offered alongside the message. */
29
29
  action?: ReactNode;
30
+ /** Renders a retry button (with `retryLabel`) that calls this. Ignored when `action` is set. */
30
31
  onRetry?: () => void;
31
32
  /** Copy for the retry action in the error state. */
32
33
  retryLabel?: ReactNode;
33
- /** Which state is shown — loading, empty, or error. */
34
+ /** `panel` (default) for one framed surface; `inline` for a chrome-free status inside an existing region. */
34
35
  variant?: ErrorStateVariant;
35
- /** Glyph shown above the message. */
36
+ /** Leading glyph beside the message. Defaults to an alert icon. */
36
37
  icon?: ReactNode;
37
38
  }
38
39
  export declare const ErrorState: import("react").ForwardRefExoticComponent<ErrorStateProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -68,6 +68,10 @@ export declare const formControlMinHeightClasses: {
68
68
  * is intentionally flat) plus the size-driven height + horizontal
69
69
  * padding.
70
70
  *
71
+ * The displayed value is the field's value, so it follows the editable text
72
+ * recipe: on coarse pointers it matches the touch input size of an adjoining
73
+ * `Input` instead of rendering a step smaller.
74
+ *
71
75
  * Kept here so the chrome lives in exactly one place — when we tweak
72
76
  * the canonical input look, every trigger picks it up.
73
77
  */
@@ -77,6 +81,34 @@ export declare const formTextareaSizeClasses: {
77
81
  md: string;
78
82
  lg: string;
79
83
  };
84
+ /**
85
+ * Vertical inset of multi-line fields. Their first line sits exactly where a
86
+ * single-line control of the same size draws its value (inside the 1px border),
87
+ * so a Textarea beside an Input shares its first line. `1lh` is the field's own
88
+ * line height, so the inset follows the editable text size on every pointer.
89
+ */
90
+ export declare const formTextareaInsetClasses: {
91
+ sm: string;
92
+ md: string;
93
+ lg: string;
94
+ };
95
+ /**
96
+ * Top offsets that centre multi-line field affordances on the first line, where a
97
+ * single-line control of the same size centres them: the clear target
98
+ * (`size-control-clear`) and a `size-icon` glyph such as the loading spinner.
99
+ */
100
+ export declare const formTextareaAffordanceTopClasses: {
101
+ readonly target: {
102
+ readonly sm: "top-[calc((var(--height-control)*8/9-1.375rem)*var(--density-scale)/2)]";
103
+ readonly md: "top-[calc((var(--height-control)-1.375rem)*var(--density-scale)/2)]";
104
+ readonly lg: "top-[calc((var(--height-control)*10/9-1.375rem)*var(--density-scale)/2)]";
105
+ };
106
+ readonly icon: {
107
+ readonly sm: "top-[calc((var(--height-control)*8/9*var(--density-scale)-var(--icon))/2)]";
108
+ readonly md: "top-[calc((var(--height-control)*var(--density-scale)-var(--icon))/2)]";
109
+ readonly lg: "top-[calc((var(--height-control)*10/9*var(--density-scale)-var(--icon))/2)]";
110
+ };
111
+ };
80
112
  export declare const formLabelSizeClasses: {
81
113
  sm: string;
82
114
  md: string;
@@ -58,6 +58,8 @@ export interface DirtyStateBannerProps {
58
58
  }
59
59
  export declare function DirtyStateBanner({ title, description, actions, tone, className, }: DirtyStateBannerProps): import("react").JSX.Element;
60
60
  export interface SubmitStateButtonProps extends Omit<ButtonProps, 'loading'> {
61
+ /** Semantic color. Defaults to `primary`: submitting is the form's main command. */
62
+ tone?: ButtonProps['tone'];
61
63
  /** Shows the pending state and blocks repeat submissions. */
62
64
  submitting?: boolean;
63
65
  /** Whether the form has unsaved changes. */
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type StringsProp } from '../../../lib/strings';
3
+ import type { FormControlSize } from '../../../lib/ui-provider';
3
4
  export interface CoordinatesObjectValue {
4
5
  lat?: string;
5
6
  lng?: string;
@@ -43,5 +44,7 @@ export interface CoordinatesInputProps {
43
44
  className?: string;
44
45
  /** Disabled state */
45
46
  disabled?: boolean;
47
+ /** Control-height preset for both fields. Falls back to `UIProvider.density.defaultScale`, like the other numeric inputs. */
48
+ size?: FormControlSize;
46
49
  }
47
50
  export declare const CoordinatesInput: React.ForwardRefExoticComponent<CoordinatesInputProps & React.RefAttributes<HTMLDivElement>>;
@@ -5,7 +5,10 @@ export interface RoundingModeSelectProps extends Omit<SelectProps, 'options' | '
5
5
  value?: RoundingMode;
6
6
  /** Canonical change handler. */
7
7
  onValueChange?: (value: RoundingMode | undefined) => void;
8
- /** Custom labels for rounding modes */
8
+ /**
9
+ * Labels for the rounding modes. Defaults to sentence-case names: `floor` →
10
+ * "Round down", `half_up` → "Round half up", `ceil` → "Round up".
11
+ */
9
12
  labels?: Partial<Record<RoundingMode, string>>;
10
13
  }
11
14
  export declare const RoundingModeSelect: import("react").ForwardRefExoticComponent<RoundingModeSelectProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -16,13 +16,13 @@ declare function DropdownMenuLabel({ className, inset, children, ...props }: Men
16
16
  declare function DropdownMenuItem({ className, inset, variant, children, ...props }: MenuPrimitive.Item.Props & {
17
17
  /** Surface inset. */
18
18
  inset?: boolean;
19
- /** Semantic tone. */
19
+ /** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */
20
20
  variant?: 'default' | 'destructive';
21
21
  }): React.JSX.Element;
22
22
  declare function DropdownMenuLinkItem({ className, inset, variant, children, ...props }: MenuPrimitive.LinkItem.Props & {
23
23
  /** Surface inset. */
24
24
  inset?: boolean;
25
- /** Semantic tone. */
25
+ /** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */
26
26
  variant?: 'default' | 'destructive';
27
27
  }): React.JSX.Element;
28
28
  declare function DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props): React.JSX.Element;
@@ -1,9 +1,12 @@
1
1
  import type { LocaleOption } from '../../../types/locale.types';
2
2
  export interface LanguageSwitcherProps {
3
+ /** Locales to offer, in order. The entry with `active: true` is marked as current. */
3
4
  locales: LocaleOption[];
5
+ /** Custom label for each locale. Defaults to `nativeLabel`. */
4
6
  onRenderLabel?: (options: LocaleOption) => string;
5
- /** Semantic tone. */
7
+ /** Layout: `buttons` (default) for a row of buttons, `inline` for compact dot-separated text links. */
6
8
  variant?: 'buttons' | 'inline';
9
+ /** Called with the chosen locale's value. Not called for the current locale. */
7
10
  onSelect?: (value: string) => void;
8
11
  }
9
12
  export declare function LanguageSwitcher({ locales, onRenderLabel, variant, onSelect, }: LanguageSwitcherProps): import("react").JSX.Element | null;
@@ -5,6 +5,11 @@
5
5
  * container resize; the active tab is always kept visible by being moved
6
6
  * out of the overflow set when needed.
7
7
  *
8
+ * The strip shares the segmented-tab recipe of `NavigationTabs` and `Tabs`:
9
+ * a muted track, small action-height tabs with default-size labels, and a
10
+ * lifted card-coloured active tab. Arrow keys, Home and End move focus between
11
+ * tabs; Enter or Space activates the focused tab.
12
+ *
8
13
  * Use `NavigationTabs` instead when a fixed route set cannot overflow.
9
14
  */
10
15
  import { type LucideIcon } from 'lucide-react';
@@ -40,4 +45,6 @@ export interface OverflowTabBarProps extends Omit<ComponentPropsWithoutRef<'div'
40
45
  /** Overrides this surface's own copy. */
41
46
  strings?: StringsProp<OverflowTabBarStrings>;
42
47
  }
48
+ /** How many tabs fit, reserving room for the "More" trigger only when something overflows. */
49
+ export declare function fitOverflowTabs(widths: readonly number[], available: number, gap: number, moreWidth: number): number;
43
50
  export declare const OverflowTabBar: import("react").ForwardRefExoticComponent<OverflowTabBarProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -79,7 +79,10 @@ export interface PageHeadingProps {
79
79
  descriptionClassName?: string;
80
80
  /** Merged onto the actions cluster. */
81
81
  actionsClassName?: string;
82
- /** Draws the rule beneath the header. Default: `true`. */
82
+ /**
83
+ * Draws a rule beneath the header. Default: `false` — the page rhythm (gap
84
+ * between header and body) separates them; opt in where a rule is the design.
85
+ */
83
86
  withSeparator?: boolean;
84
87
  }
85
88
  export declare function PageHeading({ eyebrow, title, description, textGap, headingTag, badge, badges, breadcrumbs, leading, beforeTitle, titlePrefix, titleSuffix, afterDescription, actions, children, className, contentClassName, eyebrowClassName, titleClassName, titleRowClassName, descriptionClassName, actionsClassName, withSeparator, }: PageHeadingProps): import("react").JSX.Element;
@@ -1,11 +1,13 @@
1
1
  import { type HTMLAttributes } from 'react';
2
2
  export type QRCodeProps = HTMLAttributes<HTMLDivElement> & {
3
+ /** Encoded payload. Pass `aria-label` to describe it; the code is then exposed as one image. */
3
4
  data: string;
4
5
  foreground?: string;
5
6
  background?: string;
6
7
  robustness?: 'L' | 'M' | 'Q' | 'H';
7
8
  };
8
9
  export declare const QRCode: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
10
+ /** Encoded payload. Pass `aria-label` to describe it; the code is then exposed as one image. */
9
11
  data: string;
10
12
  foreground?: string;
11
13
  background?: string;
@@ -1 +1,29 @@
1
- export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetBody, SheetFooter, SheetTitle, SheetDescription, } from './sheet';
1
+ /**
2
+ * Deprecated compatibility entrypoint.
3
+ *
4
+ * `ActionDrawer` from `themelia-react-ui/features/overlays` is the supported
5
+ * slide-in panel: it owns the scrim, focus, dismissal, pending lock and action
6
+ * footer, and `ActionDialog` / `ConfirmDialog` cover centred dialogs. These
7
+ * parts remain the internal anatomy behind ActionDrawer and the mobile sidebar
8
+ * drawer, which import the implementation module directly. They keep working
9
+ * through 1.x for existing callers.
10
+ */
11
+ export {
12
+ /** @deprecated Use `ActionDrawer` from `themelia-react-ui/features/overlays`; it owns open state through `open`/`onOpenChange` or `trigger`. */
13
+ Sheet,
14
+ /** @deprecated Use the `trigger` prop of `ActionDrawer` from `themelia-react-ui/features/overlays`, or `useOverlayVisibility` for an external control. */
15
+ SheetTrigger,
16
+ /** @deprecated `ActionDrawer` from `themelia-react-ui/features/overlays` renders its own dismiss control (`showCloseButton`) and cancel action. */
17
+ SheetClose,
18
+ /** @deprecated Use `ActionDrawer` from `themelia-react-ui/features/overlays` (`direction`, `width`, `modal`). */
19
+ SheetContent,
20
+ /** @deprecated Use the `title`/`description` props of `ActionDrawer` from `themelia-react-ui/features/overlays`. */
21
+ SheetHeader,
22
+ /** @deprecated Pass content as `children` of `ActionDrawer` from `themelia-react-ui/features/overlays`; it owns the scrolling body. */
23
+ SheetBody,
24
+ /** @deprecated Use the generated actions or the `footer` prop of `ActionDrawer` from `themelia-react-ui/features/overlays`. */
25
+ SheetFooter,
26
+ /** @deprecated Use the `title` prop of `ActionDrawer` from `themelia-react-ui/features/overlays`. */
27
+ SheetTitle,
28
+ /** @deprecated Use the `description` prop of `ActionDrawer` from `themelia-react-ui/features/overlays`. */
29
+ SheetDescription, } from './sheet';
@@ -1,10 +1,15 @@
1
1
  import type { TextGap } from '../structure';
2
2
  /**
3
- * Sheet — design-system wrapper around the shadcn compound primitive.
3
+ * Sheet — internal edge-anchored modal anatomy behind `ActionDrawer` and the
4
+ * mobile sidebar drawer.
4
5
  *
5
- * The root and trigger behavior stay primitive-compatible. The package layer
6
- * adds a deliberate header / scrollable body / footer structure, calm admin
7
- * spacing, and stable BEM hooks without narrowing primitive props.
6
+ * Applications use `ActionDrawer` from `themelia-react-ui/features/overlays`,
7
+ * which owns the lifecycle, focus, dismissal and action contract; the
8
+ * `themelia-react-ui/base/sheet` entrypoint remains only as a deprecated
9
+ * compatibility surface. The panel shares the modal geometry of the internal
10
+ * Dialog wrapper: the shell owns the block inset and the gap between header,
11
+ * scrolling body and footer, regions own their inline inset, and one edge rule
12
+ * separates the panel from the page.
8
13
  */
9
14
  import * as React from 'react';
10
15
  import { Sheet as SheetPrimitive } from '../../ui/sheet';
@@ -24,7 +29,11 @@ export declare const SheetContent: React.ForwardRefExoticComponent<Omit<import("
24
29
  export declare const SheetHeader: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "ref"> & {
25
30
  textGap?: TextGap;
26
31
  } & React.RefAttributes<HTMLDivElement>>;
27
- /** Scroll-owning content region between the fixed sheet header and footer. */
32
+ /**
33
+ * Scroll-owning content region between the pinned sheet header and footer.
34
+ * A rule appears on its top or bottom edge only while content is scrolled out
35
+ * of view there.
36
+ */
28
37
  export declare const SheetBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
29
38
  export declare const SheetFooter: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
30
39
  export declare const SheetTitle: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogTitleProps & {
@@ -20,10 +20,11 @@ export interface SpinnerStrings {
20
20
  }
21
21
  export declare const defaultSpinnerStrings: SpinnerStrings;
22
22
  export interface SpinnerProps {
23
- /** Display label. */
23
+ /** Visible label under the indicator; also its accessible name. */
24
24
  label?: string;
25
+ /** Merged onto the indicator graphic (size, colour), not the padded wrapper. */
25
26
  className?: string;
26
- /** Semantic tone. */
27
+ /** Indicator style: circular `default`, `shimmer`, or `progress` strip. Defaults to `UIProvider.spinner.defaultVariant`, then `default`. */
27
28
  variant?: SpinnerVariant;
28
29
  /** Localizes the fallback progress-bar name. */
29
30
  strings?: StringsProp<SpinnerStrings>;
@@ -3,7 +3,7 @@ import type { ComponentScale } from '../../../lib/component-vocabulary';
3
3
  export type StructureBreakpoint = 'base' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
4
4
  export type ResponsiveValue<T> = T | Partial<Record<StructureBreakpoint, T>>;
5
5
  export type TextGap = 'normal' | 'dense';
6
- export type StructureGap = TextGap | 'none' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
6
+ export type StructureGap = TextGap | 'none' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
7
7
  export type StructureAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
8
8
  export type StructureJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
9
9
  export interface StackProps extends useRender.ComponentProps<'div'> {
@@ -35,8 +35,8 @@ export type InputGroupTextareaProps = ComponentProps<typeof InputGroupTextareaPr
35
35
  declare function InputGroup({ className, ...props }: InputGroupProps): import("react").JSX.Element;
36
36
  /** Leading/trailing (or block start/end) affordance slot inside the frame. */
37
37
  declare function InputGroupAddon({ className, align, ...props }: InputGroupAddonProps): import("react").JSX.Element;
38
- /** Inline action button sized to sit inside the control frame. */
39
- declare function InputGroupButton({ className, tone, buttonStyle, ...props }: InputGroupButtonProps): import("react").JSX.Element;
38
+ /** Inline action button sized to sit inside the control frame; its label stays on one line. */
39
+ declare function InputGroupButton({ className, tone, buttonStyle, truncate, ...props }: InputGroupButtonProps): import("react").JSX.Element;
40
40
  /** Static copy segment — scalar text renders through Typography. */
41
41
  declare function InputGroupText({ children, className, ...props }: InputGroupTextProps): import("react").JSX.Element;
42
42
  /** Single-line control that inherits the group's frame instead of its own. */
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Private drop-target states shared by Dropzone, AvatarUpload and ImageUpload.
3
+ * An empty target draws the dashed `--input` control boundary (3:1 on every
4
+ * surface), so all three upload targets read as the same kind of control.
5
+ * Hover, drag and invalid states replace only the boundary colour and fill.
6
+ */
7
+ export declare const uploadDropTargetRecipes: {
8
+ readonly idle: "border-input";
9
+ readonly invalid: "border-destructive";
10
+ readonly dragging: "border-primary bg-primary/10";
11
+ };
@@ -7,13 +7,15 @@ export interface DateTimeInputProps {
7
7
  placeholder?: string;
8
8
  /** Display format for the date */
9
9
  readableFormat?: string;
10
- /** Step for time selection in minutes */
10
+ /** Step for time selection, in minutes. Default `30`. */
11
11
  stepMinutes?: number;
12
12
  /** Use modal for picker */
13
13
  modal?: boolean;
14
- /** Error state for styling (passed from FormField) */
14
+ /** Error state for styling (passed from FormField). Validation copy stays with FormField. */
15
15
  invalid?: boolean;
16
16
  /** Disabled state */
17
17
  disabled?: boolean;
18
+ /** Id of the trigger, so an external `<FormField label>` names it. Defaults to a generated id. */
19
+ id?: string;
18
20
  }
19
21
  export declare const DateTimeInput: import("react").ForwardRefExoticComponent<DateTimeInputProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -8,6 +8,8 @@ export interface TagsInputStrings {
8
8
  * `current` (number of tags entered) and `max` (the limit). The
9
9
  * default is English `"{current} / {max} tags"` — override for i18n. */
10
10
  summary: (current: number, max: number) => string;
11
+ /** Accessible name of a tag's remove action. Defaults to `"Remove {tag}"`. */
12
+ removeTag?: (tag: string) => string;
11
13
  }
12
14
  export declare const defaultTagsInputStrings: TagsInputStrings;
13
15
  export interface TagsInputProps<T = string> {
@@ -23,7 +23,7 @@ export interface ApiKeyListItem {
23
23
  * full secret.
24
24
  */
25
25
  displayValue?: string;
26
- /** Optional per-item icon override (defaults to a Lock). */
26
+ /** Optional per-item leading icon. Rows render without one by default. */
27
27
  icon?: ReactNode;
28
28
  /** Disable the per-item dropdown when true. */
29
29
  disabled?: boolean;
@@ -1,5 +1,15 @@
1
+ import type { MoneyFormatMode } from '../../../lib/ui-provider';
1
2
  import type { MetricData } from './types';
2
- export declare function formatMetricValue(data: MetricData): string;
3
+ /** Display policy that metric components resolve from UIProvider. */
4
+ export interface FormatMetricValueOptions {
5
+ /** BCP-47 locale. Metric components pass `UIProvider.formatting.locale`. */
6
+ locale?: string;
7
+ /** Currency used when the metric has none. Defaults to `USD`, like UIProvider. */
8
+ defaultCurrency?: string;
9
+ /** Money format policy. Defaults to `with_code`, like UIProvider. */
10
+ moneyFormatMode?: MoneyFormatMode;
11
+ }
12
+ export declare function formatMetricValue(data: MetricData, options?: FormatMetricValueOptions): string;
3
13
  /**
4
14
  * Resolve the effective `MetricTrend` for a metric — explicit `trend` wins,
5
15
  * otherwise we infer from `change.direction` (`up` → positive, `down` →
@@ -19,7 +19,7 @@
19
19
  */
20
20
  export type { MetricChange, MetricColorScheme, MetricData, MetricDataPoint, MetricDirection, MetricPeriod, MetricSize, MetricTrend, MetricTrendVariant, MetricValueType, MetricVariant, } from './types';
21
21
  export { defaultAnalyticsStrings, type AnalyticsStrings, } from './analytics.strings';
22
- export { formatMetricValue, resolveTrend } from './format-metric-value';
22
+ export { formatMetricValue, resolveTrend, type FormatMetricValueOptions } from './format-metric-value';
23
23
  export { MetricTrendChip, type MetricTrendChipProps } from './atoms/metric-trend-chip';
24
24
  export { MetricSparkline, type MetricSparklineProps } from './atoms/metric-sparkline';
25
25
  export { MetricSkeleton, type MetricSkeletonProps } from './atoms/metric-skeleton';
@@ -0,0 +1,3 @@
1
+ import type { FormatMetricValueOptions } from './format-metric-value';
2
+ /** Metric formatting policy from UIProvider: locale, default currency and money format. */
3
+ export declare function useMetricFormatOptions(): FormatMetricValueOptions;
@@ -1,5 +1,5 @@
1
1
  import { type AddressCardProps } from './types';
2
- export declare function AddressCard({ kind, name, line1, line2, city, region, postalCode, country, phone, default: defaultAddress, onEdit, onRemove, onMakeDefault, className, strings: stringsProp, }: AddressCardProps): import("react").JSX.Element;
2
+ export declare function AddressCard({ kind, name, line1, line2, city, region, postalCode, country, phone, default: defaultAddress, onEdit, onRemove, onMakeDefault, surface, padding, headerDivider, className, strings: stringsProp, }: AddressCardProps): import("react").JSX.Element;
3
3
  export declare namespace AddressCard {
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 AddressKind = 'shipping' | 'billing' | 'pickup';
3
4
  export interface AddressCardStrings {
@@ -10,7 +11,8 @@ export interface AddressCardStrings {
10
11
  pickup: string;
11
12
  }
12
13
  export declare const defaultAddressCardStrings: AddressCardStrings;
13
- export interface AddressCardProps {
14
+ /** Unframed by default. Set surface="card" to let this owner frame its heading and body. */
15
+ export interface AddressCardProps extends Pick<CardProps, 'surface' | 'padding' | 'headerDivider'> {
14
16
  /** What the address is for — billing, shipping, or both. */
15
17
  kind?: AddressKind;
16
18
  /** Display name. */
@@ -2,6 +2,10 @@ import type { BookingCalendarEventCardProps } from './booking-calendar-event-car
2
2
  /**
3
3
  * Compact, card-free booking detail composition.
4
4
  *
5
+ * The status sits beside the title, the facts share one label-above-value
6
+ * layout, and spacing alone separates them from the action: no header rule,
7
+ * no inset note panel and no rule above the action.
8
+ *
5
9
  * All visible copy is supplied by props, so this component intentionally has
6
10
  * no strings file. Frame it with `Card` only when the page needs card
7
11
  * chrome.
@@ -7,7 +7,7 @@ export interface BookingCalendarEventCardItem {
7
7
  label: ReactNode;
8
8
  /** Display value. Strings and numbers use the canonical `Value` primitive. */
9
9
  value: ReactNode;
10
- /** Span both detail columns and receive the emphasized note treatment. */
10
+ /** Span both detail columns, for a note that should not sit in a column. */
11
11
  fullWidth?: boolean;
12
12
  }
13
13
  /**
@@ -21,7 +21,7 @@ export interface BookingCalendarEventCardProps {
21
21
  title: ReactNode;
22
22
  /** Optional supporting context shown beneath the title. */
23
23
  description?: ReactNode;
24
- /** Optional status or metadata rendered at the end of the header. */
24
+ /** Optional status, rendered beside the title. */
25
25
  status?: ReactNode;
26
26
  /** Ordered booking facts rendered as a responsive definition list. */
27
27
  items: BookingCalendarEventCardItem[];