themelia-react-ui 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +122 -20
  4. package/dist/{accordion-96o0pN62.js → accordion-0tQUZ20r.js} +13 -13
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-CHgs8vmj.js → action-menu-C0gjzLyE.js} +48 -45
  7. package/dist/action-menu-C0gjzLyE.js.map +1 -0
  8. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  9. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  10. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-CGGpQryR.js} +281 -230
  11. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  12. package/dist/app-shell-EHuuRDGy.js +321 -0
  13. package/dist/app-shell-EHuuRDGy.js.map +1 -0
  14. package/dist/{attachment-DkoqHPPl.js → attachment-BCpA4e7i.js} +10 -10
  15. package/dist/{attachment-DkoqHPPl.js.map → attachment-BCpA4e7i.js.map} +1 -1
  16. package/dist/{auth-D2FVZ1MH.js → auth-B0girIk_.js} +49 -52
  17. package/dist/auth-B0girIk_.js.map +1 -0
  18. package/dist/{avatar-DWO_HHhB.js → avatar-B9Jnp-T-.js} +8 -8
  19. package/dist/avatar-B9Jnp-T-.js.map +1 -0
  20. package/dist/{badge-DErMA7ul.js → badge-wWauMgAt.js} +5 -5
  21. package/dist/{badge-DErMA7ul.js.map → badge-wWauMgAt.js.map} +1 -1
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +3 -3
  31. package/dist/base/cascader.js +2 -372
  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 +2 -2
  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 +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +10 -10
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/media-gallery.js +1 -1
  46. package/dist/base/metadata-list.js +1 -1
  47. package/dist/base/navigation.js +7 -7
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +1 -1
  51. package/dist/base/repeaters.js +200 -193
  52. package/dist/base/repeaters.js.map +1 -1
  53. package/dist/base/sheet.js +1 -1
  54. package/dist/base/sidebar.js +2 -2
  55. package/dist/base/signature-pad.js +8 -8
  56. package/dist/base/signature-pad.js.map +1 -1
  57. package/dist/base/skeleton.js +1 -1
  58. package/dist/base/spinner.js +6 -6
  59. package/dist/base/spinner.js.map +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 +36 -36
  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/{batch-action-bar-CdfIkCsV.js → batch-action-bar-BoqWIIpV.js} +7 -7
  70. package/dist/batch-action-bar-BoqWIIpV.js.map +1 -0
  71. package/dist/blocks/admin.js +21 -21
  72. package/dist/blocks/admin.js.map +1 -1
  73. package/dist/blocks/ai.js +267 -247
  74. package/dist/blocks/ai.js.map +1 -1
  75. package/dist/blocks/analytics/usage-card.js +1 -1
  76. package/dist/blocks/analytics.js +537 -543
  77. package/dist/blocks/analytics.js.map +1 -1
  78. package/dist/blocks/collaboration.js +1 -1
  79. package/dist/blocks/commerce/receipt.js +1 -1
  80. package/dist/blocks/commerce.js +1330 -1250
  81. package/dist/blocks/commerce.js.map +1 -1
  82. package/dist/blocks/data-display.js +2 -2
  83. package/dist/blocks/onboarding.js +6 -6
  84. package/dist/blocks/onboarding.js.map +1 -1
  85. package/dist/blocks/planning.js +11 -11
  86. package/dist/blocks/timelines.js +1 -1
  87. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-Bp9Ke7kd.js} +7 -7
  88. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  89. package/dist/{button-DkmK-z8E.js → button-ChBovTx0.js} +3 -3
  90. package/dist/button-ChBovTx0.js.map +1 -0
  91. package/dist/{buttons-BbfzgczK.js → buttons-DeW0bQeK.js} +16 -16
  92. package/dist/buttons-DeW0bQeK.js.map +1 -0
  93. package/dist/cards-CNXnmvV5.js +69 -0
  94. package/dist/cards-CNXnmvV5.js.map +1 -0
  95. package/dist/cascader-CrAl9zD5.js +439 -0
  96. package/dist/cascader-CrAl9zD5.js.map +1 -0
  97. package/dist/chart-I7ROnsl8.js +162 -0
  98. package/dist/chart-I7ROnsl8.js.map +1 -0
  99. package/dist/{checkbox-CzYUTPeJ.js → checkbox-MoyHIAPs.js} +3 -3
  100. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  101. package/dist/choice-inputs-DHGtx0QV.js +789 -0
  102. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  103. package/dist/{code-block-CGNaUtAE.js → code-block-BSJyq9e-.js} +9 -9
  104. package/dist/code-block-BSJyq9e-.js.map +1 -0
  105. package/dist/{collapsible-Do4G0zcC.js → collapsible-BzJ91LUG.js} +5 -5
  106. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  107. package/dist/{collection-content-C0e8SsTm.js → collection-content-CSnwtOTH.js} +3 -3
  108. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  109. package/dist/combobox-Bcvu5J8O.js +363 -0
  110. package/dist/combobox-Bcvu5J8O.js.map +1 -0
  111. package/dist/combobox-C2JiSQPc.js +915 -0
  112. package/dist/combobox-C2JiSQPc.js.map +1 -0
  113. package/dist/{command-D8NrBj-b.js → command-9e52NPgK.js} +11 -11
  114. package/dist/command-9e52NPgK.js.map +1 -0
  115. package/dist/{comments-Di4w0H_S.js → comments-BsgErEqd.js} +44 -39
  116. package/dist/comments-BsgErEqd.js.map +1 -0
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  118. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  119. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  120. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  121. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  122. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  123. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  124. package/dist/components/base/chart/chart.d.ts +6 -1
  125. package/dist/components/base/choice-inputs/choice-types.d.ts +5 -1
  126. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  127. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  128. package/dist/components/base/combobox/index.d.ts +4 -2
  129. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  130. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  131. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  132. package/dist/components/base/feedback/alert.d.ts +1 -1
  133. package/dist/components/base/feedback/state-display.d.ts +5 -1
  134. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  135. package/dist/components/base/forms/form-field.d.ts +7 -2
  136. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  137. package/dist/components/base/forms/workflow.d.ts +7 -1
  138. package/dist/components/base/forms-numeric/coordinates-input.d.ts +8 -1
  139. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  140. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  141. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  142. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  143. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  144. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  145. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  146. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  147. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  148. package/dist/components/base/popover/popover.d.ts +3 -3
  149. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  150. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  151. package/dist/components/base/sheet/sheet.d.ts +2 -0
  152. package/dist/components/base/sidebar/index.d.ts +1 -1
  153. package/dist/components/base/sidebar/sidebar.d.ts +29 -5
  154. package/dist/components/base/toaster/index.d.ts +1 -0
  155. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  156. package/dist/components/base/upload/image-upload.d.ts +2 -1
  157. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  158. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  159. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  160. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  161. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +5 -1
  162. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  163. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  164. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +4 -0
  165. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  166. package/dist/components/blocks/analytics/types.d.ts +2 -2
  167. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  168. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  169. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  170. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  171. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  172. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  173. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  174. package/dist/components/blocks/commerce/index.d.ts +7 -6
  175. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  176. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  177. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  178. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  179. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  180. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  181. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  182. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  183. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  184. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  185. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  186. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  187. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  188. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  190. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  191. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  192. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  193. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  194. package/dist/components/features/activities/activities.types.d.ts +26 -13
  195. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  196. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  197. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  198. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  199. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  200. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  201. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  202. package/dist/components/features/combobox/combobox.d.ts +2 -2
  203. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  204. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  205. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  206. package/dist/components/features/combobox/types.d.ts +37 -8
  207. package/dist/components/features/email-composer/types.d.ts +3 -1
  208. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  209. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  210. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  211. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  212. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  213. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  214. package/dist/components/features/filters/filters.types.d.ts +6 -3
  215. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  216. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  217. package/dist/components/features/filters/partials/filter-popover-content.d.ts +5 -3
  218. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  219. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  220. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  221. package/dist/components/features/filters/utils/filter-utils.d.ts +25 -3
  222. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  223. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  224. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  225. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  226. package/dist/components/features/media-library/media-library.d.ts +1 -1
  227. package/dist/components/features/media-library/media-library.strings.d.ts +8 -0
  228. package/dist/components/features/media-library/media-library.types.d.ts +50 -12
  229. package/dist/components/features/media-library/partials/media-library-partials.d.ts +4 -4
  230. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  231. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  232. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  233. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  234. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  235. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  236. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  237. package/dist/components/features/products/products.strings.d.ts +9 -1
  238. package/dist/components/features/products/products.types.d.ts +45 -8
  239. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  240. package/dist/components/features/resource/resource.d.ts +6 -2
  241. package/dist/components/features/resource/resource.types.d.ts +14 -1
  242. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  243. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  244. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  245. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  246. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  247. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  248. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  249. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  250. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  251. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  252. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  253. package/dist/components/features/table/data-table.d.ts +1 -1
  254. package/dist/components/features/table/index.d.ts +1 -0
  255. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  256. package/dist/components/features/table/table-body.d.ts +1 -1
  257. package/dist/components/features/table/table-helpers.d.ts +6 -3
  258. package/dist/components/features/table/table.strings.d.ts +3 -0
  259. package/dist/components/features/table/table.types.d.ts +18 -2
  260. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  261. package/dist/components/layout/app-shell/index.d.ts +1 -1
  262. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  263. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  264. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  265. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  266. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  267. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  268. package/dist/components/layout/header/header.types.d.ts +9 -8
  269. package/dist/components/layout/layout.types.d.ts +5 -3
  270. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  271. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  272. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  273. package/dist/components/layout/page/index.d.ts +2 -1
  274. package/dist/components/layout/page/page.d.ts +1 -0
  275. package/dist/components/layout/page/page.strings.d.ts +11 -0
  276. package/dist/components/layout/page/page.types.d.ts +69 -17
  277. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  278. package/dist/components/layout/settings/settings.d.ts +10 -3
  279. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  280. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  281. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  282. package/dist/components/layout/sidebar/index.d.ts +2 -1
  283. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +38 -0
  284. package/dist/components/layout/sidebar/sidebar.context.d.ts +6 -7
  285. package/dist/components/layout/sidebar/sidebar.types.d.ts +50 -10
  286. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  287. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  288. package/dist/components/primitives/link.d.ts +3 -2
  289. package/dist/components/primitives/money.d.ts +1 -1
  290. package/dist/components/primitives/number.d.ts +1 -1
  291. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  292. package/dist/components/ui/alert-dialog.d.ts +2 -2
  293. package/dist/components/ui/combobox.d.ts +1 -1
  294. package/dist/components/ui/dialog.d.ts +2 -2
  295. package/dist/components/ui/overlay-layer.d.ts +18 -0
  296. package/dist/components/ui/sheet.d.ts +5 -1
  297. package/dist/components/ui/sidebar-state.d.ts +82 -0
  298. package/dist/components/ui/sidebar.d.ts +5 -17
  299. package/dist/{containers-CRmHf7GP.js → containers-CSdc32h9.js} +26 -18
  300. package/dist/containers-CSdc32h9.js.map +1 -0
  301. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  302. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  303. package/dist/{copyable-CnGCZdX4.js → copyable-3fdHfMR3.js} +7 -7
  304. package/dist/{copyable-CnGCZdX4.js.map → copyable-3fdHfMR3.js.map} +1 -1
  305. package/dist/{data-display-D4oujtx0.js → data-display-Cmj-xZYl.js} +271 -279
  306. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  307. package/dist/{date-Q7jnXxpk.js → date-Br0FicVv.js} +5 -5
  308. package/dist/{date-Q7jnXxpk.js.map → date-Br0FicVv.js.map} +1 -1
  309. package/dist/date-picker-CyQlFYsP.js +1617 -0
  310. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  311. package/dist/date-pickers-tj2MXmXd.js +185 -0
  312. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  313. package/dist/{display-BB4BL_-K.js → display-CT_N2a3w.js} +9 -9
  314. package/dist/{display-BB4BL_-K.js.map → display-CT_N2a3w.js.map} +1 -1
  315. package/dist/dropdown-menu-C08iIugv.js +194 -0
  316. package/dist/dropdown-menu-C08iIugv.js.map +1 -0
  317. package/dist/features/activities.js +388 -326
  318. package/dist/features/activities.js.map +1 -1
  319. package/dist/features/ai-chat.js +46 -32
  320. package/dist/features/ai-chat.js.map +1 -1
  321. package/dist/features/appointment-calendar.js +130 -130
  322. package/dist/features/appointment-calendar.js.map +1 -1
  323. package/dist/features/async-preview.js +11 -10
  324. package/dist/features/async-preview.js.map +1 -1
  325. package/dist/features/combobox.js +1 -1
  326. package/dist/features/comments.js +1 -1
  327. package/dist/features/data-view.js +13 -13
  328. package/dist/features/data-view.js.map +1 -1
  329. package/dist/features/email-composer.js +243 -239
  330. package/dist/features/email-composer.js.map +1 -1
  331. package/dist/features/event-calendar.js +197 -199
  332. package/dist/features/event-calendar.js.map +1 -1
  333. package/dist/features/filters.js +2 -2
  334. package/dist/features/global-search.js +168 -143
  335. package/dist/features/global-search.js.map +1 -1
  336. package/dist/features/kanban.js +19 -30
  337. package/dist/features/kanban.js.map +1 -1
  338. package/dist/features/map/style.css +15 -0
  339. package/dist/features/map.js +369 -343
  340. package/dist/features/map.js.map +1 -1
  341. package/dist/features/media-library.js +1202 -975
  342. package/dist/features/media-library.js.map +1 -1
  343. package/dist/features/mentions.js +2 -2
  344. package/dist/features/overlays.js +1 -1
  345. package/dist/features/products.js +1270 -1183
  346. package/dist/features/products.js.map +1 -1
  347. package/dist/features/questionnaire.js +160 -153
  348. package/dist/features/questionnaire.js.map +1 -1
  349. package/dist/features/resource-assignment.js +8 -8
  350. package/dist/features/resource.js +119 -113
  351. package/dist/features/resource.js.map +1 -1
  352. package/dist/features/rich-text-editor.js +28 -19
  353. package/dist/features/rich-text-editor.js.map +1 -1
  354. package/dist/features/schema-form.js +297 -256
  355. package/dist/features/schema-form.js.map +1 -1
  356. package/dist/features/suggestions.js +57 -50
  357. package/dist/features/suggestions.js.map +1 -1
  358. package/dist/features/sync.js +3 -3
  359. package/dist/features/table.js +1 -1
  360. package/dist/features/theme-tweaker.js +470 -470
  361. package/dist/features/theme-tweaker.js.map +1 -1
  362. package/dist/feedback-Dzo1xtAU.js +246 -0
  363. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  364. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-D6H7tVJi.js} +5 -5
  365. package/dist/field-affordance-recipes-D6H7tVJi.js.map +1 -0
  366. package/dist/field-control-attributes-B6i335wr.js +18 -0
  367. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  368. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  369. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  370. package/dist/filters-Dl80yYtN.js +2415 -0
  371. package/dist/filters-Dl80yYtN.js.map +1 -0
  372. package/dist/form-field-CAPdwdnZ.js +74 -0
  373. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  374. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-CgcrUbLU.js} +5 -5
  375. package/dist/form-sizing-CgcrUbLU.js.map +1 -0
  376. package/dist/{forms-BV5m5aQF.js → forms-B3W8CH7-.js} +17 -13
  377. package/dist/forms-B3W8CH7-.js.map +1 -0
  378. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  379. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  380. package/dist/{header-BA697l4a.js → header-ZIIsRKxP.js} +145 -141
  381. package/dist/header-ZIIsRKxP.js.map +1 -0
  382. package/dist/header.recipes-BigdJjw1.js +6 -0
  383. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  384. package/dist/hooks/use-files.d.ts +2 -0
  385. package/dist/{hooks-BQ-L7Uu2.js → hooks-BitHSh-Y.js} +27 -15
  386. package/dist/hooks-BitHSh-Y.js.map +1 -0
  387. package/dist/{icon-badge-COWbCCWu.js → icon-badge-npxF1SLX.js} +4 -4
  388. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  389. package/dist/index.js +4 -5
  390. package/dist/{input-Cdw4k0fb.js → input-7KAc7XQL.js} +9 -9
  391. package/dist/{input-Cdw4k0fb.js.map → input-7KAc7XQL.js.map} +1 -1
  392. package/dist/input-DIREVYHs.js +21 -0
  393. package/dist/input-DIREVYHs.js.map +1 -0
  394. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  395. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  396. package/dist/item-FfWnaYST.js +278 -0
  397. package/dist/item-FfWnaYST.js.map +1 -0
  398. package/dist/layout/app-shell.js +1 -1
  399. package/dist/layout/auth.js +1 -1
  400. package/dist/layout/containers.js +1 -1
  401. package/dist/layout/header.js +1 -1
  402. package/dist/layout/hooks.js +1 -1
  403. package/dist/layout/navigation.js +1 -1
  404. package/dist/layout/page.js +2 -2
  405. package/dist/layout/settings.js +1 -1
  406. package/dist/layout/sidebar.js +3 -3
  407. package/dist/layout/workspace.js +1 -1
  408. package/dist/layout.js +12 -12
  409. package/dist/layout.types-E_GAApzO.js +30 -0
  410. package/dist/layout.types-E_GAApzO.js.map +1 -0
  411. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  412. package/dist/lib/control-group-recipes.d.ts +5 -5
  413. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  414. package/dist/lib/field-control-attributes.d.ts +11 -0
  415. package/dist/lib/field-state-recipes.d.ts +2 -0
  416. package/dist/lib/format.d.ts +1 -0
  417. package/dist/lib/motion-recipes.d.ts +3 -0
  418. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  419. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  420. package/dist/lib/portal-recipes.d.ts +3 -0
  421. package/dist/lib/surface-recipes.d.ts +1 -1
  422. package/dist/lib/token-merge.generated.d.ts +18 -15
  423. package/dist/lib/utils.js +1 -1
  424. package/dist/map-demo-tile.svg +1 -1
  425. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C81DAnKI.js} +6 -6
  426. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  427. package/dist/{mentions-RKOQaaIB.js → mentions-qOnedSt4.js} +237 -168
  428. package/dist/mentions-qOnedSt4.js.map +1 -0
  429. package/dist/message-BJHnn43M.js +135 -0
  430. package/dist/message-BJHnn43M.js.map +1 -0
  431. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-XkqZ_UXH.js} +64 -64
  432. package/dist/metadata-list-XkqZ_UXH.js.map +1 -0
  433. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  434. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  435. package/dist/navigation-BgtPJAhi.js +288 -0
  436. package/dist/navigation-BgtPJAhi.js.map +1 -0
  437. package/dist/navigation-Bt-v7rWP.js +261 -0
  438. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  439. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  440. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  441. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  442. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  443. package/dist/{number-E_OiIfJz.js → number-CYqBcrSj.js} +79 -87
  444. package/dist/number-CYqBcrSj.js.map +1 -0
  445. package/dist/overflow-tab-bar-BQCA2Zn2.js +172 -0
  446. package/dist/overflow-tab-bar-BQCA2Zn2.js.map +1 -0
  447. package/dist/overlays-CC8zI3Du.js +1017 -0
  448. package/dist/overlays-CC8zI3Du.js.map +1 -0
  449. package/dist/page-BoQ1VaFJ.js +331 -0
  450. package/dist/page-BoQ1VaFJ.js.map +1 -0
  451. package/dist/page-header-commands-DIKspJfx.js +193 -0
  452. package/dist/page-header-commands-DIKspJfx.js.map +1 -0
  453. package/dist/{pagination-Ch8X_47u.js → pagination-Br8TdV9A.js} +7 -7
  454. package/dist/{pagination-Ch8X_47u.js.map → pagination-Br8TdV9A.js.map} +1 -1
  455. package/dist/popover-k8TdUcAt.js +201 -0
  456. package/dist/popover-k8TdUcAt.js.map +1 -0
  457. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-yn-o0kyA.js} +7 -7
  458. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  459. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DJ0AkUan.js} +19 -12
  460. package/dist/popover.recipes-DJ0AkUan.js.map +1 -0
  461. package/dist/portal-recipes-DyUXqUtD.js +9 -0
  462. package/dist/portal-recipes-DyUXqUtD.js.map +1 -0
  463. package/dist/{primitives-Du64iDbb.js → primitives-BkkQjYl7.js} +23 -18
  464. package/dist/primitives-BkkQjYl7.js.map +1 -0
  465. package/dist/primitives.js +4 -4
  466. package/dist/{progress-BvF2oCdV.js → progress-DZFXXzPs.js} +9 -9
  467. package/dist/{progress-BvF2oCdV.js.map → progress-DZFXXzPs.js.map} +1 -1
  468. package/dist/{receipt-D789Jwyy.js → receipt-C7LhOg7Q.js} +7 -7
  469. package/dist/receipt-C7LhOg7Q.js.map +1 -0
  470. package/dist/rich-text-BnTzZjIo.js +45 -0
  471. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  472. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-CAurDwT5.js} +501 -424
  473. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  474. package/dist/rich-text-editor-toolbar-DbXig7Jk.js +99 -0
  475. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  476. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  477. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  478. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  479. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  480. package/dist/{scroll-area-La5RXsEk.js → scroll-area-Bj6CRUif.js} +2 -2
  481. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  482. package/dist/{separator-DAEV0w65.js → separator-B9ewiCGO.js} +2 -2
  483. package/dist/{separator-DAEV0w65.js.map → separator-B9ewiCGO.js.map} +1 -1
  484. package/dist/{separator-GNfPG-90.js → separator-DM6gs2vu.js} +3 -3
  485. package/dist/{separator-GNfPG-90.js.map → separator-DM6gs2vu.js.map} +1 -1
  486. package/dist/services/actions.js +1 -1
  487. package/dist/settings-DZPHgpx4.js +155 -0
  488. package/dist/settings-DZPHgpx4.js.map +1 -0
  489. package/dist/sheet-C4DHsgLk.js +250 -0
  490. package/dist/sheet-C4DHsgLk.js.map +1 -0
  491. package/dist/sidebar-C8BnDwTH.js +709 -0
  492. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  493. package/dist/sidebar-CmD6a-HK.js +1004 -0
  494. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  495. package/dist/skeleton-DDgdhmu9.js +265 -0
  496. package/dist/skeleton-DDgdhmu9.js.map +1 -0
  497. package/dist/smart-card-B6vLxqa_.js +617 -0
  498. package/dist/smart-card-B6vLxqa_.js.map +1 -0
  499. package/dist/{structure-C0V0_Fyf.js → structure-DZJ2wbAU.js} +2 -2
  500. package/dist/{structure-C0V0_Fyf.js.map → structure-DZJ2wbAU.js.map} +1 -1
  501. package/dist/style.css +1 -1
  502. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  503. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  504. package/dist/{table-DH7rozUv.js → table-CBonSdTp.js} +573 -519
  505. package/dist/table-CBonSdTp.js.map +1 -0
  506. package/dist/{table-CpvnzJn9.js → table-CXSPHH25.js} +75 -71
  507. package/dist/table-CXSPHH25.js.map +1 -0
  508. package/dist/tabs-C4Kr_hCr.js +192 -0
  509. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  510. package/dist/{text-inputs-DXItiR0O.js → text-inputs-jdkS3ReG.js} +18 -18
  511. package/dist/text-inputs-jdkS3ReG.js.map +1 -0
  512. package/dist/theme.css +40 -37
  513. package/dist/{timelines-DmtztAY_.js → timelines-CoPwdJP0.js} +13 -12
  514. package/dist/timelines-CoPwdJP0.js.map +1 -0
  515. package/dist/tooltip-31NwIpTo.js +113 -0
  516. package/dist/tooltip-31NwIpTo.js.map +1 -0
  517. package/dist/{tree-CV11PURP.js → tree-CeYVzdFE.js} +9 -9
  518. package/dist/{tree-CV11PURP.js.map → tree-CeYVzdFE.js.map} +1 -1
  519. package/dist/typography/rich-text.js +1 -1
  520. package/dist/{typography-CSyJrh28.js → typography-C7-YMW1S.js} +12 -12
  521. package/dist/{typography-CSyJrh28.js.map → typography-C7-YMW1S.js.map} +1 -1
  522. package/dist/typography.js +1 -1
  523. package/dist/ui-provider-C-74NVLc.js +178 -0
  524. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  525. package/dist/ui-provider.js +2 -3
  526. package/dist/{upload-C9SA0X-8.js → upload-Hdm5gObf.js} +309 -296
  527. package/dist/upload-Hdm5gObf.js.map +1 -0
  528. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-D0sYPuqo.js} +16 -14
  529. package/dist/upload-queue-D0sYPuqo.js.map +1 -0
  530. package/dist/{usage-card-DVTRDmGz.js → usage-card-9s8hLDfn.js} +24 -17
  531. package/dist/usage-card-9s8hLDfn.js.map +1 -0
  532. package/dist/{utils-CF3c95Io.js → utils-DhuoqFy4.js} +255 -165
  533. package/dist/utils-DhuoqFy4.js.map +1 -0
  534. package/dist/value-inputs-D3aPgq9H.js +980 -0
  535. package/dist/value-inputs-D3aPgq9H.js.map +1 -0
  536. package/dist/{value-typography-ClupF0Gz.js → value-typography-uSzzG9Gf.js} +32 -26
  537. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  538. package/dist/{workspace-9EFVXUyk.js → workspace-CC8Vchiu.js} +51 -50
  539. package/dist/workspace-CC8Vchiu.js.map +1 -0
  540. package/docs/consumer-skill/SKILL.md +4 -3
  541. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  542. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  543. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  544. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  545. package/docs/consumer-skill/examples/detail.tsx +5 -4
  546. package/docs/consumer-skill/examples/edit.tsx +3 -3
  547. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  548. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  549. package/docs/consumer-skill/examples/manifest.json +38 -1
  550. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  551. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  552. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  553. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  554. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  555. package/docs/consumer-skill/references/agents-md.md +21 -19
  556. package/docs/consumer-skill/references/analytics.md +33 -1
  557. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  558. package/docs/consumer-skill/references/component-contracts.json +21249 -14205
  559. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  560. package/docs/consumer-skill/references/composition.md +177 -32
  561. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  562. package/docs/consumer-skill/references/custom-composition.md +261 -0
  563. package/docs/consumer-skill/references/data-reading.md +79 -0
  564. package/docs/consumer-skill/references/design-contract.md +12 -9
  565. package/docs/consumer-skill/references/discovery.md +27 -3
  566. package/docs/consumer-skill/references/domain-structures.md +124 -0
  567. package/docs/consumer-skill/references/installation.md +62 -8
  568. package/docs/consumer-skill/references/integration.md +59 -1
  569. package/docs/consumer-skill/references/product-composition.md +94 -0
  570. package/docs/consumer-skill/references/public-api.json +3044 -445
  571. package/docs/consumer-skill/references/review.md +87 -10
  572. package/docs/consumer-skill/references/rhf-workflows.md +79 -0
  573. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  574. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  575. package/docs/consumer-skill/references/theming.md +24 -20
  576. package/docs/consumer-skill/references/tokens.json +9 -9
  577. package/docs/consumer-skill/references/view-craft.md +153 -0
  578. package/docs/consumer-skill/references/view-spec.md +73 -0
  579. package/docs/consumer-skill/references/workflows.md +7 -1
  580. package/docs/consumer-skill/scripts/composition-policy.mjs +176 -26
  581. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  582. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  583. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  584. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  585. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  586. package/docs/consumer-skill/scripts/setup-skills.mjs +79 -7
  587. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  588. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  589. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  590. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  591. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  592. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  593. package/package.json +4 -2
  594. package/templates/admin-shell-template.tsx +1 -2
  595. package/templates/customers-template.tsx +18 -16
  596. package/dist/accordion-96o0pN62.js.map +0 -1
  597. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  598. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  599. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  600. package/dist/app-shell-D63ATkIK.js +0 -237
  601. package/dist/app-shell-D63ATkIK.js.map +0 -1
  602. package/dist/auth-D2FVZ1MH.js.map +0 -1
  603. package/dist/avatar-DWO_HHhB.js.map +0 -1
  604. package/dist/base/cascader.js.map +0 -1
  605. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  606. package/dist/breadcrumbs-B-WFKecD.js.map +0 -1
  607. package/dist/button-DkmK-z8E.js.map +0 -1
  608. package/dist/buttons-BbfzgczK.js.map +0 -1
  609. package/dist/cards-4JTWqvVe.js +0 -68
  610. package/dist/cards-4JTWqvVe.js.map +0 -1
  611. package/dist/chart-C19flDQb.js +0 -155
  612. package/dist/chart-C19flDQb.js.map +0 -1
  613. package/dist/choice-inputs-JLtij2y4.js +0 -776
  614. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  615. package/dist/code-block-CGNaUtAE.js.map +0 -1
  616. package/dist/combobox-CBJDs6w_.js +0 -877
  617. package/dist/combobox-CBJDs6w_.js.map +0 -1
  618. package/dist/combobox-hbhSS18O.js +0 -355
  619. package/dist/combobox-hbhSS18O.js.map +0 -1
  620. package/dist/command-D8NrBj-b.js.map +0 -1
  621. package/dist/comments-Di4w0H_S.js.map +0 -1
  622. package/dist/containers-CRmHf7GP.js.map +0 -1
  623. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  624. package/dist/data-display-D4oujtx0.js.map +0 -1
  625. package/dist/date-picker-zOt1oNss.js +0 -1542
  626. package/dist/date-picker-zOt1oNss.js.map +0 -1
  627. package/dist/date-pickers-cj8IXbDC.js +0 -179
  628. package/dist/date-pickers-cj8IXbDC.js.map +0 -1
  629. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  630. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  631. package/dist/feedback-DZNL5Lg1.js +0 -239
  632. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  633. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  634. package/dist/filters-BcT-uoFy.js +0 -2209
  635. package/dist/filters-BcT-uoFy.js.map +0 -1
  636. package/dist/form-field-CsgRmdit.js +0 -63
  637. package/dist/form-field-CsgRmdit.js.map +0 -1
  638. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  639. package/dist/forms-BV5m5aQF.js.map +0 -1
  640. package/dist/forms-numeric-Cd33AKbD.js +0 -906
  641. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  642. package/dist/header-BA697l4a.js.map +0 -1
  643. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  644. package/dist/input-DOPL5_QE.js +0 -21
  645. package/dist/input-DOPL5_QE.js.map +0 -1
  646. package/dist/item-BvZ2DR_x.js +0 -277
  647. package/dist/item-BvZ2DR_x.js.map +0 -1
  648. package/dist/layout.types-Cn7aUzJp.js +0 -20
  649. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  650. package/dist/mentions-RKOQaaIB.js.map +0 -1
  651. package/dist/message-INU2xsxu.js +0 -128
  652. package/dist/message-INU2xsxu.js.map +0 -1
  653. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  654. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  655. package/dist/navigation-BQNcg1jT.js +0 -269
  656. package/dist/navigation-BQNcg1jT.js.map +0 -1
  657. package/dist/navigation-DLF3E1IC.js +0 -145
  658. package/dist/navigation-DLF3E1IC.js.map +0 -1
  659. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  660. package/dist/number-E_OiIfJz.js.map +0 -1
  661. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  662. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  663. package/dist/overlays-BlKynmde.js +0 -1004
  664. package/dist/overlays-BlKynmde.js.map +0 -1
  665. package/dist/page-CIwNUtGr.js +0 -227
  666. package/dist/page-CIwNUtGr.js.map +0 -1
  667. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  668. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  669. package/dist/popover-uwzX2vo7.js +0 -198
  670. package/dist/popover-uwzX2vo7.js.map +0 -1
  671. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  672. package/dist/primitives-Du64iDbb.js.map +0 -1
  673. package/dist/receipt-D789Jwyy.js.map +0 -1
  674. package/dist/rich-text-CLJEf76s.js +0 -78
  675. package/dist/rich-text-CLJEf76s.js.map +0 -1
  676. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  677. package/dist/rich-text-editor-toolbar-L__e4x47.js +0 -94
  678. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  679. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  680. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  681. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  682. package/dist/settings-BA2iboic.js +0 -174
  683. package/dist/settings-BA2iboic.js.map +0 -1
  684. package/dist/sheet-DoAxTb2J.js +0 -213
  685. package/dist/sheet-DoAxTb2J.js.map +0 -1
  686. package/dist/sidebar-ByqKR_W5.js +0 -512
  687. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  688. package/dist/sidebar-D2iSnGJ7.js +0 -619
  689. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  690. package/dist/skeleton-CUj8O5Bd.js +0 -264
  691. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  692. package/dist/smart-card-CqkzQsK-.js +0 -614
  693. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  694. package/dist/table-CpvnzJn9.js.map +0 -1
  695. package/dist/table-DH7rozUv.js.map +0 -1
  696. package/dist/tabs-eqVsJZWO.js +0 -191
  697. package/dist/tabs-eqVsJZWO.js.map +0 -1
  698. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  699. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  700. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  701. package/dist/timelines-DmtztAY_.js.map +0 -1
  702. package/dist/tooltip-B4hjKtoV.js +0 -111
  703. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  704. package/dist/ui-provider-CQCuCBcy.js +0 -136
  705. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  706. package/dist/upload-C9SA0X-8.js.map +0 -1
  707. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  708. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  709. package/dist/use-mobile-vaLKwgyf.js +0 -15
  710. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  711. package/dist/utils-CF3c95Io.js.map +0 -1
  712. package/dist/value-inputs-C0o70p-U.js +0 -980
  713. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  714. package/dist/value-typography-ClupF0Gz.js.map +0 -1
  715. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { f as e } from "../ui-provider-CQCuCBcy.js";
2
+ import { g as e } from "../ui-provider-C-74NVLc.js";
3
3
  import { useStrings as t } from "../lib/strings.js";
4
- import { t as n } from "../utils-CF3c95Io.js";
5
- import { c as r } from "../typography-CSyJrh28.js";
6
- import { t as i } from "../structure-C0V0_Fyf.js";
4
+ import { t as n } from "../utils-DhuoqFy4.js";
5
+ import { c as r } from "../typography-C7-YMW1S.js";
6
+ import { t as i } from "../structure-DZJ2wbAU.js";
7
7
  import { n as a } from "../track-recipes-CDcKmndW.js";
8
8
  import { forwardRef as o } from "react";
9
9
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -61,7 +61,7 @@ function d({ className: e = "" }) {
61
61
  }
62
62
  function f({ className: e = "" }) {
63
63
  return /* @__PURE__ */ s("div", {
64
- className: n("h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]", "animate-[shimmer_1.5s_ease-in-out_infinite]", e),
64
+ className: n("h-10 w-10 rounded-full bg-muted bg-linear-to-r from-transparent via-foreground/8 to-transparent bg-[length:200%_100%]", "animate-spinner-shimmer motion-reduce:animate-none", e),
65
65
  "aria-hidden": "true"
66
66
  });
67
67
  }
@@ -71,7 +71,7 @@ function p({ className: e = "", label: t }) {
71
71
  role: "progressbar",
72
72
  "aria-label": t,
73
73
  "aria-busy": "true",
74
- children: /* @__PURE__ */ s("div", { className: "h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded-full bg-primary" })
74
+ children: /* @__PURE__ */ s("div", { className: "h-full w-1/3 animate-spinner-progress rounded-full bg-primary motion-reduce:animate-none" })
75
75
  });
76
76
  }
77
77
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","names":["useSpinnerConfig","cn","Text","Stack","trackHeightClasses","defaultSpinnerStrings","Spinner","forwardRef","variantProp","stringsProp","strings","useStrings","variant","defaultVariant","label","SpinnerDefault","SpinnerShimmer","SpinnerProgress","className"],"sources":["../../src/components/base/spinner/spinner.tsx"],"sourcesContent":["import { trackHeightClasses } from '../../../lib/track-recipes';\n/**\n * Spinner — three-variant loading indicator with optional label.\n *\n * Variants:\n * - `default` — circular SVG spinner\n * - `shimmer` — round shimmer bar\n * - `progress` — slim animated progress strip\n *\n * `variant` resolves via `useSpinnerConfig().defaultVariant ?? 'default'`,\n * so a consumer can set the library-wide spinner style at the\n * `<UIProvider>` root and override per-mount as needed. Forwards a ref to\n * the outer wrapper so consumers can position/measure the spinner.\n */\nimport { forwardRef, type CSSProperties } from 'react';\n\nimport { Text } from '../../typography';\nimport { Stack } from '../structure';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useSpinnerConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nexport type SpinnerVariant = 'default' | 'shimmer' | 'progress';\n\nexport interface SpinnerStrings {\n\t/** Accessible fallback when an indeterminate progress bar has no visible label. */\n\tloading: string;\n}\n\nexport const defaultSpinnerStrings: SpinnerStrings = {\n\tloading: 'Loading',\n};\n\nexport interface SpinnerProps {\n\t/** Visible label under the indicator; also its accessible name. */\n\tlabel?: string;\n\t/** Merged onto the indicator graphic (size, colour), not the padded wrapper. */\n\tclassName?: string;\n\t/** Indicator style: circular `default`, `shimmer`, or `progress` strip. Defaults to `UIProvider.spinner.defaultVariant`, then `default`. */\n\tvariant?: SpinnerVariant;\n\t/** Localizes the fallback progress-bar name. */\n\tstrings?: StringsProp<SpinnerStrings>;\n\tstyle?: CSSProperties;\n}\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(function Spinner(\n\t{ label, className = '', variant: variantProp, strings: stringsProp, style },\n\tref,\n) {\n\tconst { defaultVariant } = useSpinnerConfig();\n\tconst strings = useStrings(defaultSpinnerStrings, stringsProp);\n\tconst variant: SpinnerVariant = variantProp ?? defaultVariant ?? 'default';\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\t// The progress strip names itself as a progressbar; the other indicators\n\t\t\t// are announced as a polite status named by the label or loading copy.\n\t\t\trole={variant === 'progress' ? undefined : 'status'}\n\t\t\taria-label={variant === 'progress' || label ? undefined : strings.loading}\n\t\t\tclassName={cn('spinner--component', 'flex items-center justify-center p-surface')}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<Stack gap=\"md\" align=\"center\" justify=\"center\" className=\"w-full text-center\">\n\t\t\t\t{variant === 'default' && <SpinnerDefault className={className} />}\n\t\t\t\t{variant === 'shimmer' && <SpinnerShimmer className={className} />}\n\t\t\t\t{variant === 'progress' && <SpinnerProgress className={className} label={label ?? strings.loading} />}\n\t\t\t\t{!!label && <Text type=\"secondary\">{label}</Text>}\n\t\t\t</Stack>\n\t\t</div>\n\t);\n});\n\nSpinner.displayName = 'Spinner';\n\nfunction SpinnerDefault({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('h-10 w-10 text-primary-accent', className)}\n\t\t\tfill=\"currentColor\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n\t\t\t\topacity=\".25\"\n\t\t\t/>\n\t\t\t<path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\">\n\t\t\t\t<animateTransform\n\t\t\t\t\tattributeName=\"transform\"\n\t\t\t\t\ttype=\"rotate\"\n\t\t\t\t\tdur=\"0.75s\"\n\t\t\t\t\tvalues=\"0 12 12;360 12 12\"\n\t\t\t\t\trepeatCount=\"indefinite\"\n\t\t\t\t/>\n\t\t\t</path>\n\t\t</svg>\n\t);\n}\n\nfunction SpinnerShimmer({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]',\n\t\t\t\t'animate-[shimmer_1.5s_ease-in-out_infinite]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t);\n}\n\nfunction SpinnerProgress({ className = '', label }: { className?: string; label: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('w-full max-w-32 overflow-hidden rounded-full bg-muted', trackHeightClasses.md, className)}\n\t\t\trole=\"progressbar\"\n\t\t\taria-label={label}\n\t\t\taria-busy=\"true\"\n\t\t>\n\t\t\t<div className=\"h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded-full bg-primary\" />\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;;AA6BA,IAAaK,IAAwC,EACpD,SAAS,UACV,GAcaC,IAAUC,EAAyC,SAC/D,EAAE,UAAO,eAAY,IAAI,SAASC,GAAa,SAASC,GAAa,YACrE,GACC;CACD,IAAM,EAAE,sBAAmBT,EAAiB,GACtCU,IAAUC,EAAWN,GAAuBI,CAAW,GACvDG,IAA0BJ,KAAeK,KAAkB;CAEjE,OACC,kBAAC,OAAD;EACM;EAGL,MAAMD,MAAY,aAAa,KAAA,IAAY;EAC3C,cAAYA,MAAY,cAAcE,IAAQ,KAAA,IAAYJ,EAAQ;EAClE,WAAWT,EAAG,sBAAsB,4CAA4C;EACzE;EAEP,UAAA,kBAACE,GAAD;GAAO,KAAI;GAAK,OAAM;GAAS,SAAQ;GAAS,WAAU;GAA1D,UAAA;IACES,MAAY,aAAa,kBAACG,GAAD,EAA2B,aAAY,CAAA;IAChEH,MAAY,aAAa,kBAACI,GAAD,EAA2B,aAAY,CAAA;IAChEJ,MAAY,cAAc,kBAACK,GAAD;KAA4B;KAAW,OAAOH,KAASJ,EAAQ;IAAU,CAAA;IACnG,CAAC,CAACI,KAAS,kBAACZ,GAAD;KAAM,MAAK;KAAa,UAAAY;IAAY,CAAA;GAC1C;;CACH,CAAA;AAEP,CAAC;AAED,EAAQ,cAAc;AAEtB,SAASC,EAAe,EAAE,eAAY,MAA8B;CACnE,OACC,kBAAC,OAAD;EACC,WAAWd,EAAG,iCAAiCiB,CAAS;EACxD,MAAK;EACL,SAAQ;EACR,OAAM;EACN,eAAY;EALb,UAAA,CAOC,kBAAC,QAAD;GACC,GAAE;GACF,SAAQ;EACR,CAAA,GACD,kBAAC,QAAD;GAAM,GAAE;GACP,UAAA,kBAAC,oBAAD;IACC,eAAc;IACd,MAAK;IACL,KAAI;IACJ,QAAO;IACP,aAAY;GACZ,CAAA;EACI,CAAA,CACF;;AAEP;AAEA,SAASF,EAAe,EAAE,eAAY,MAA8B;CACnE,OACC,kBAAC,OAAD;EACC,WAAWf,EACV,6GACA,+CACAiB,CACD;EACA,eAAY;CACZ,CAAA;AAEH;AAEA,SAASD,EAAgB,EAAE,eAAY,IAAI,YAAgD;CAC1F,OACC,kBAAC,OAAD;EACC,WAAWhB,EAAG,yDAAyDG,EAAmB,IAAIc,CAAS;EACvG,MAAK;EACL,cAAYJ;EACZ,aAAU;EAEV,UAAA,kBAAC,OAAD,EAAK,WAAU,0FAA2F,CAAA;CACtG,CAAA;AAEP"}
1
+ {"version":3,"file":"spinner.js","names":["useSpinnerConfig","cn","Text","Stack","trackHeightClasses","defaultSpinnerStrings","Spinner","forwardRef","variantProp","stringsProp","strings","useStrings","variant","defaultVariant","label","SpinnerDefault","SpinnerShimmer","SpinnerProgress","className"],"sources":["../../src/components/base/spinner/spinner.tsx"],"sourcesContent":["import { trackHeightClasses } from '../../../lib/track-recipes';\n/**\n * Spinner — three-variant loading indicator with optional label.\n *\n * Variants:\n * - `default` — circular SVG spinner\n * - `shimmer` — round shimmer bar\n * - `progress` — slim animated progress strip\n *\n * `variant` resolves via `useSpinnerConfig().defaultVariant ?? 'default'`,\n * so a consumer can set the library-wide spinner style at the\n * `<UIProvider>` root and override per-mount as needed. Forwards a ref to\n * the outer wrapper so consumers can position/measure the spinner.\n */\nimport { forwardRef, type CSSProperties } from 'react';\n\nimport { Text } from '../../typography';\nimport { Stack } from '../structure';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useSpinnerConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nexport type SpinnerVariant = 'default' | 'shimmer' | 'progress';\n\nexport interface SpinnerStrings {\n\t/** Accessible fallback when an indeterminate progress bar has no visible label. */\n\tloading: string;\n}\n\nexport const defaultSpinnerStrings: SpinnerStrings = {\n\tloading: 'Loading',\n};\n\nexport interface SpinnerProps {\n\t/** Visible label under the indicator; also its accessible name. */\n\tlabel?: string;\n\t/** Merged onto the indicator graphic (size, colour), not the padded wrapper. */\n\tclassName?: string;\n\t/** Indicator style: circular `default`, `shimmer`, or `progress` strip. Defaults to `UIProvider.spinner.defaultVariant`, then `default`. */\n\tvariant?: SpinnerVariant;\n\t/** Localizes the fallback progress-bar name. */\n\tstrings?: StringsProp<SpinnerStrings>;\n\tstyle?: CSSProperties;\n}\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(function Spinner(\n\t{ label, className = '', variant: variantProp, strings: stringsProp, style },\n\tref,\n) {\n\tconst { defaultVariant } = useSpinnerConfig();\n\tconst strings = useStrings(defaultSpinnerStrings, stringsProp);\n\tconst variant: SpinnerVariant = variantProp ?? defaultVariant ?? 'default';\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\t// The progress strip names itself as a progressbar; the other indicators\n\t\t\t// are announced as a polite status named by the label or loading copy.\n\t\t\trole={variant === 'progress' ? undefined : 'status'}\n\t\t\taria-label={variant === 'progress' || label ? undefined : strings.loading}\n\t\t\tclassName={cn('spinner--component', 'flex items-center justify-center p-surface')}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<Stack gap=\"md\" align=\"center\" justify=\"center\" className=\"w-full text-center\">\n\t\t\t\t{variant === 'default' && <SpinnerDefault className={className} />}\n\t\t\t\t{variant === 'shimmer' && <SpinnerShimmer className={className} />}\n\t\t\t\t{variant === 'progress' && <SpinnerProgress className={className} label={label ?? strings.loading} />}\n\t\t\t\t{!!label && <Text type=\"secondary\">{label}</Text>}\n\t\t\t</Stack>\n\t\t</div>\n\t);\n});\n\nSpinner.displayName = 'Spinner';\n\nfunction SpinnerDefault({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('h-10 w-10 text-primary-accent', className)}\n\t\t\tfill=\"currentColor\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n\t\t\t\topacity=\".25\"\n\t\t\t/>\n\t\t\t<path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\">\n\t\t\t\t<animateTransform\n\t\t\t\t\tattributeName=\"transform\"\n\t\t\t\t\ttype=\"rotate\"\n\t\t\t\t\tdur=\"0.75s\"\n\t\t\t\t\tvalues=\"0 12 12;360 12 12\"\n\t\t\t\t\trepeatCount=\"indefinite\"\n\t\t\t\t/>\n\t\t\t</path>\n\t\t</svg>\n\t);\n}\n\nfunction SpinnerShimmer({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'h-10 w-10 rounded-full bg-muted bg-linear-to-r from-transparent via-foreground/8 to-transparent bg-[length:200%_100%]',\n\t\t\t\t'animate-spinner-shimmer motion-reduce:animate-none',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t);\n}\n\nfunction SpinnerProgress({ className = '', label }: { className?: string; label: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('w-full max-w-32 overflow-hidden rounded-full bg-muted', trackHeightClasses.md, className)}\n\t\t\trole=\"progressbar\"\n\t\t\taria-label={label}\n\t\t\taria-busy=\"true\"\n\t\t>\n\t\t\t<div className=\"h-full w-1/3 animate-spinner-progress rounded-full bg-primary motion-reduce:animate-none\" />\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;;AA6BA,IAAaK,IAAwC,EACpD,SAAS,UACV,GAcaC,IAAUC,EAAyC,SAC/D,EAAE,UAAO,eAAY,IAAI,SAASC,GAAa,SAASC,GAAa,YACrE,GACC;CACD,IAAM,EAAE,sBAAmBT,EAAiB,GACtCU,IAAUC,EAAWN,GAAuBI,CAAW,GACvDG,IAA0BJ,KAAeK,KAAkB;CAEjE,OACC,kBAAC,OAAD;EACM;EAGL,MAAMD,MAAY,aAAa,KAAA,IAAY;EAC3C,cAAYA,MAAY,cAAcE,IAAQ,KAAA,IAAYJ,EAAQ;EAClE,WAAWT,EAAG,sBAAsB,4CAA4C;EACzE;EAEP,UAAA,kBAACE,GAAD;GAAO,KAAI;GAAK,OAAM;GAAS,SAAQ;GAAS,WAAU;GAA1D,UAAA;IACES,MAAY,aAAa,kBAACG,GAAD,EAA2B,aAAY,CAAA;IAChEH,MAAY,aAAa,kBAACI,GAAD,EAA2B,aAAY,CAAA;IAChEJ,MAAY,cAAc,kBAACK,GAAD;KAA4B;KAAW,OAAOH,KAASJ,EAAQ;IAAU,CAAA;IACnG,CAAC,CAACI,KAAS,kBAACZ,GAAD;KAAM,MAAK;KAAa,UAAAY;IAAY,CAAA;GAC1C;;CACH,CAAA;AAEP,CAAC;AAED,EAAQ,cAAc;AAEtB,SAASC,EAAe,EAAE,eAAY,MAA8B;CACnE,OACC,kBAAC,OAAD;EACC,WAAWd,EAAG,iCAAiCiB,CAAS;EACxD,MAAK;EACL,SAAQ;EACR,OAAM;EACN,eAAY;EALb,UAAA,CAOC,kBAAC,QAAD;GACC,GAAE;GACF,SAAQ;EACR,CAAA,GACD,kBAAC,QAAD;GAAM,GAAE;GACP,UAAA,kBAAC,oBAAD;IACC,eAAc;IACd,MAAK;IACL,KAAI;IACJ,QAAO;IACP,aAAY;GACZ,CAAA;EACI,CAAA,CACF;;AAEP;AAEA,SAASF,EAAe,EAAE,eAAY,MAA8B;CACnE,OACC,kBAAC,OAAD;EACC,WAAWf,EACV,yHACA,sDACAiB,CACD;EACA,eAAY;CACZ,CAAA;AAEH;AAEA,SAASD,EAAgB,EAAE,eAAY,IAAI,YAAgD;CAC1F,OACC,kBAAC,OAAD;EACC,WAAWhB,EAAG,yDAAyDG,EAAmB,IAAIc,CAAS;EACvG,MAAK;EACL,cAAYJ;EACZ,aAAU;EAEV,UAAA,kBAAC,OAAD,EAAK,WAAU,2FAA4F,CAAA;CACvG,CAAA;AAEP"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { i as e, n as t, r as n, t as r } from "../structure-C0V0_Fyf.js";
2
+ import { i as e, n as t, r as n, t as r } from "../structure-DZJ2wbAU.js";
3
3
  export { e as AdaptiveGrid, n as Grid, t as GridCell, r as Stack };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../table-CpvnzJn9.js";
2
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../table-CXSPHH25.js";
3
3
  export { s as Table, r as TableBody, a as TableCaption, n as TableCell, e as TableFooter, i as TableHead, o as TableHeader, t as TableRow };
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { n as e, t } from "../input-Cdw4k0fb.js";
3
- import { a as n, c as r, d as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "../text-inputs-DXItiR0O.js";
2
+ import { n as e, t } from "../input-7KAc7XQL.js";
3
+ import { a as n, c as r, d as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "../text-inputs-jdkS3ReG.js";
4
4
  export { t as Input, n as InputGroup, c as InputGroupAddon, u as InputGroupButton, r as InputGroupInput, o as InputGroupText, f as InputGroupTextarea, l as PasswordInput, d as SlugField, i as Textarea, e as defaultInputStrings, a as defaultPasswordInputStrings, s as slugifyValue };
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { p as e } from "../ui-provider-CQCuCBcy.js";
3
- import { t } from "../utils-CF3c95Io.js";
4
- import { t as n } from "../affordance-geometry.generated-B8yGOr8-.js";
2
+ import { _ as e } from "../ui-provider-C-74NVLc.js";
3
+ import { t } from "../utils-DhuoqFy4.js";
4
+ import { t as n } from "../affordance-geometry.generated-P-aVJisu.js";
5
5
  import { jsx as r } from "react/jsx-runtime";
6
6
  import { CircleCheckIcon as i, InfoIcon as a, Loader2Icon as o, OctagonXIcon as s, TriangleAlertIcon as c } from "lucide-react";
7
- import { Toaster as l } from "sonner";
7
+ import { Toaster as l, toast as u } from "sonner";
8
8
  //#region src/components/ui/sonner.tsx
9
- var u = ({ theme: e = "system", ...t }) => /* @__PURE__ */ r(l, {
9
+ var d = ({ theme: e = "system", ...t }) => /* @__PURE__ */ r(l, {
10
10
  theme: e,
11
11
  className: "toaster group",
12
12
  icons: {
@@ -24,14 +24,14 @@ var u = ({ theme: e = "system", ...t }) => /* @__PURE__ */ r(l, {
24
24
  },
25
25
  toastOptions: { classNames: { toast: "cn-toast" } },
26
26
  ...t
27
- }), d = {
28
- toast: `toaster--toast font-sans !min-h-action-lg !items-center !gap-space-md !rounded-radius !border !border-inverse-border !bg-inverse-background !p-surface ${n.toastCloseReserve} !text-inverse-foreground !shadow-lg`,
27
+ }), f = {
28
+ toast: `toaster--toast font-sans !min-h-action-lg !items-center !gap-space-lg !rounded-surface !border !border-inverse-border !bg-inverse-background !px-row-x !py-row-y ${n.toastCloseReserve} !text-inverse-foreground !shadow-lg`,
29
29
  title: "toaster--title text-sm font-medium leading-snug text-current",
30
30
  description: "toaster--description !text-inverse-muted text-xs leading-snug",
31
31
  icon: "toaster--icon !m-0 flex size-icon-lg shrink-0 items-center justify-center self-center text-inverse-muted",
32
- closeButton: "toaster--close-button !left-auto !right-space-sm !top-1/2 !size-action-xs !translate-x-0 !-translate-y-1/2 !transform-none !border-inverse-border !bg-transparent !text-inverse-foreground !opacity-60 transition-[background-color,opacity] hover:!bg-inverse-surface hover:!opacity-100",
33
- actionButton: "toaster--action-button !h-action-sm !rounded-inner !bg-inverse-foreground !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-background",
34
- cancelButton: "toaster--cancel-button !h-action-sm !rounded-inner !bg-inverse-surface !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-foreground",
32
+ closeButton: "toaster--close-button !left-auto !right-space-sm !top-1/2 !size-action-xs !translate-x-0 !-translate-y-1/2 !transform-none !border-0 !bg-transparent !text-inverse-muted transition-colors hover:!bg-inverse-surface hover:!text-inverse-foreground focus-visible:!bg-inverse-surface focus-visible:!text-inverse-foreground",
33
+ actionButton: "toaster--action-button !h-action-sm !rounded-radius !bg-inverse-foreground !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-background",
34
+ cancelButton: "toaster--cancel-button !h-action-sm !rounded-radius !bg-inverse-surface !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-foreground",
35
35
  success: "toaster--success",
36
36
  info: "toaster--info",
37
37
  warning: "toaster--warning",
@@ -39,46 +39,46 @@ var u = ({ theme: e = "system", ...t }) => /* @__PURE__ */ r(l, {
39
39
  loading: "toaster--loading",
40
40
  default: "toaster--default",
41
41
  content: "toaster--content grid min-w-0 flex-1 gap-dense py-0 wrap-anywhere"
42
- }, f = {
42
+ }, p = {
43
43
  success: /* @__PURE__ */ r(i, { className: "size-icon-lg text-success" }),
44
44
  info: /* @__PURE__ */ r(a, { className: "size-icon-lg text-info" }),
45
45
  warning: /* @__PURE__ */ r(c, { className: "size-icon-lg text-warning-accent" }),
46
46
  error: /* @__PURE__ */ r(s, { className: "size-icon-lg text-destructive" }),
47
47
  loading: /* @__PURE__ */ r(o, { className: "size-icon-lg animate-spin text-inverse-muted" })
48
- }, p = {
48
+ }, m = {
49
49
  "--normal-bg": "var(--inverse-background)",
50
50
  "--normal-text": "var(--inverse-foreground)",
51
51
  "--normal-border": "var(--inverse-border)",
52
52
  "--border-radius": "var(--radius)",
53
53
  "--width": "min(92vw, 24rem)"
54
54
  };
55
- function m(e) {
55
+ function h(e) {
56
56
  return {
57
- toast: t(d.toast, e?.toast),
58
- title: t(d.title, e?.title),
59
- description: t(d.description, e?.description),
60
- icon: t(d.icon, e?.icon),
61
- closeButton: t(d.closeButton, e?.closeButton),
62
- actionButton: t(d.actionButton, e?.actionButton),
63
- cancelButton: t(d.cancelButton, e?.cancelButton),
64
- success: t(d.success, e?.success),
65
- info: t(d.info, e?.info),
66
- warning: t(d.warning, e?.warning),
67
- error: t(d.error, e?.error),
68
- loading: t(d.loading, e?.loading),
69
- default: t(d.default, e?.default),
57
+ toast: t(f.toast, e?.toast),
58
+ title: t(f.title, e?.title),
59
+ description: t(f.description, e?.description),
60
+ icon: t(f.icon, e?.icon),
61
+ closeButton: t(f.closeButton, e?.closeButton),
62
+ actionButton: t(f.actionButton, e?.actionButton),
63
+ cancelButton: t(f.cancelButton, e?.cancelButton),
64
+ success: t(f.success, e?.success),
65
+ info: t(f.info, e?.info),
66
+ warning: t(f.warning, e?.warning),
67
+ error: t(f.error, e?.error),
68
+ loading: t(f.loading, e?.loading),
69
+ default: t(f.default, e?.default),
70
70
  loader: e?.loader,
71
- content: t(d.content, e?.content)
71
+ content: t(f.content, e?.content)
72
72
  };
73
73
  }
74
- function h({ duration: n, position: i, theme: a, closeButton: o, richColors: s, visibleToasts: c, toastOptions: l, icons: d, className: h, style: g, ..._ }) {
74
+ function g({ duration: n, position: i, theme: a, closeButton: o, richColors: s, visibleToasts: c, toastOptions: l, icons: u, className: f, style: g, ..._ }) {
75
75
  let { duration: v, position: y, theme: b, closeButton: x, richColors: S, visibleToasts: C } = e(), w = {
76
76
  ...l,
77
- classNames: m(l?.classNames)
77
+ classNames: h(l?.classNames)
78
78
  };
79
- return /* @__PURE__ */ r(u, {
79
+ return /* @__PURE__ */ r(d, {
80
80
  ..._,
81
- className: t("toaster group toaster--component dark", h),
81
+ className: t("toaster group toaster--component dark", f),
82
82
  duration: n ?? v,
83
83
  position: i ?? y,
84
84
  theme: a ?? b ?? "dark",
@@ -87,17 +87,17 @@ function h({ duration: n, position: i, theme: a, closeButton: o, richColors: s,
87
87
  visibleToasts: c ?? C,
88
88
  toastOptions: w,
89
89
  icons: {
90
- ...f,
91
- ...d
90
+ ...p,
91
+ ...u
92
92
  },
93
93
  style: {
94
- ...p,
94
+ ...m,
95
95
  ...g
96
96
  }
97
97
  });
98
98
  }
99
- h.displayName = "Toaster";
99
+ g.displayName = "Toaster";
100
100
  //#endregion
101
- export { h as Toaster };
101
+ export { g as Toaster, u as toast };
102
102
 
103
103
  //# sourceMappingURL=toaster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toaster.js","names":["Toaster","Sonner","PrimitiveToaster","useToastConfig","affordanceGeometry","Toaster$1","Toaster$2","props","CircleCheckIcon","InfoIcon","TriangleAlertIcon","OctagonXIcon","Loader2Icon","DEFAULT_TOAST_CLASS_NAMES","DEFAULT_TOAST_ICONS","DEFAULT_TOAST_STYLE","mergeToastClassNames","cn","overrides","Toaster","durationProp","positionProp","themeProp","closeButtonProp","richColorsProp","visibleToastsProp","resolvedToastOptions","toastOptions","className","duration","position","theme","closeButton","richColors","visibleToasts","icons","style"],"sources":["../../src/components/ui/sonner.tsx","../../src/components/base/toaster/toaster.tsx"],"sourcesContent":["import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from \"lucide-react\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\n\nconst Toaster = ({ theme = \"system\", ...props }: ToasterProps) => {\n return (\n <Sonner\n theme={theme}\n className=\"toaster group\"\n icons={{\n success: (\n <CircleCheckIcon className=\"size-icon\" />\n ),\n info: (\n <InfoIcon className=\"size-icon\" />\n ),\n warning: (\n <TriangleAlertIcon className=\"size-icon\" />\n ),\n error: (\n <OctagonXIcon className=\"size-icon\" />\n ),\n loading: (\n <Loader2Icon className=\"size-icon animate-spin\" />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","/**\n * Toaster — base wrapper around the shadcn `ui/sonner` `<Toaster>` that\n * applies library-wide defaults from `<UIProvider>`:\n *\n * - `toast.duration` → default lifetime in ms\n * - `toast.position` → default screen position\n * - `toast.theme` / `toast.closeButton` / `toast.visibleToasts`\n * / `toast.richColors` → Sonner display defaults\n *\n * Per-mount props on this component still win over the store, so a single\n * `<Toaster duration={10_000} />` continues to override the global default.\n */\nimport {\n\tCircleCheckIcon,\n\tInfoIcon,\n\tLoader2Icon,\n\tOctagonXIcon,\n\tTriangleAlertIcon,\n} from 'lucide-react';\nimport type { CSSProperties } from 'react';\nimport type { ToastClassnames, ToasterProps } from 'sonner';\n\nimport { Toaster as PrimitiveToaster } from '../../ui/sonner';\nimport { useToastConfig } from '../../../lib/ui-provider';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { cn } from '../../../lib/utils';\n\nexport type { ToasterProps };\n\ntype ToastIcons = NonNullable<ToasterProps['icons']>;\n\nconst DEFAULT_TOAST_CLASS_NAMES = {\n\ttoast:\n\t\t`toaster--toast font-sans !min-h-action-lg !items-center !gap-space-md !rounded-radius !border !border-inverse-border !bg-inverse-background !p-surface ${affordanceGeometry.toastCloseReserve} !text-inverse-foreground !shadow-lg`,\n\ttitle: 'toaster--title text-sm font-medium leading-snug text-current',\n\tdescription: 'toaster--description !text-inverse-muted text-xs leading-snug',\n\ticon:\n\t\t'toaster--icon !m-0 flex size-icon-lg shrink-0 items-center justify-center self-center text-inverse-muted',\n\tcloseButton:\n\t\t'toaster--close-button !left-auto !right-space-sm !top-1/2 !size-action-xs !translate-x-0 !-translate-y-1/2 !transform-none !border-inverse-border !bg-transparent !text-inverse-foreground !opacity-60 transition-[background-color,opacity] hover:!bg-inverse-surface hover:!opacity-100',\n\tactionButton:\n\t\t'toaster--action-button !h-action-sm !rounded-inner !bg-inverse-foreground !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-background',\n\tcancelButton:\n\t\t'toaster--cancel-button !h-action-sm !rounded-inner !bg-inverse-surface !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-foreground',\n\tsuccess: 'toaster--success',\n\tinfo: 'toaster--info',\n\twarning: 'toaster--warning',\n\terror: 'toaster--error',\n\tloading: 'toaster--loading',\n\tdefault: 'toaster--default',\n\tcontent: 'toaster--content grid min-w-0 flex-1 gap-dense py-0 wrap-anywhere',\n} satisfies ToastClassnames;\n\nconst DEFAULT_TOAST_ICONS = {\n\tsuccess: <CircleCheckIcon className=\"size-icon-lg text-success\" />,\n\tinfo: <InfoIcon className=\"size-icon-lg text-info\" />,\n\twarning: <TriangleAlertIcon className=\"size-icon-lg text-warning-accent\" />,\n\terror: <OctagonXIcon className=\"size-icon-lg text-destructive\" />,\n\tloading: <Loader2Icon className=\"size-icon-lg animate-spin text-inverse-muted\" />,\n} satisfies ToastIcons;\n\nconst DEFAULT_TOAST_STYLE = {\n\t'--normal-bg': 'var(--inverse-background)',\n\t'--normal-text': 'var(--inverse-foreground)',\n\t'--normal-border': 'var(--inverse-border)',\n\t'--border-radius': 'var(--radius)',\n\t'--width': 'min(92vw, 24rem)',\n} as CSSProperties;\n\nfunction mergeToastClassNames(overrides?: ToastClassnames): ToastClassnames {\n\treturn {\n\t\ttoast: cn(DEFAULT_TOAST_CLASS_NAMES.toast, overrides?.toast),\n\t\ttitle: cn(DEFAULT_TOAST_CLASS_NAMES.title, overrides?.title),\n\t\tdescription: cn(DEFAULT_TOAST_CLASS_NAMES.description, overrides?.description),\n\t\ticon: cn(DEFAULT_TOAST_CLASS_NAMES.icon, overrides?.icon),\n\t\tcloseButton: cn(DEFAULT_TOAST_CLASS_NAMES.closeButton, overrides?.closeButton),\n\t\tactionButton: cn(DEFAULT_TOAST_CLASS_NAMES.actionButton, overrides?.actionButton),\n\t\tcancelButton: cn(DEFAULT_TOAST_CLASS_NAMES.cancelButton, overrides?.cancelButton),\n\t\tsuccess: cn(DEFAULT_TOAST_CLASS_NAMES.success, overrides?.success),\n\t\tinfo: cn(DEFAULT_TOAST_CLASS_NAMES.info, overrides?.info),\n\t\twarning: cn(DEFAULT_TOAST_CLASS_NAMES.warning, overrides?.warning),\n\t\terror: cn(DEFAULT_TOAST_CLASS_NAMES.error, overrides?.error),\n\t\tloading: cn(DEFAULT_TOAST_CLASS_NAMES.loading, overrides?.loading),\n\t\tdefault: cn(DEFAULT_TOAST_CLASS_NAMES.default, overrides?.default),\n\t\tloader: overrides?.loader,\n\t\tcontent: cn(DEFAULT_TOAST_CLASS_NAMES.content, overrides?.content),\n\t};\n}\n\nexport function Toaster({\n\tduration: durationProp,\n\tposition: positionProp,\n\ttheme: themeProp,\n\tcloseButton: closeButtonProp,\n\trichColors: richColorsProp,\n\tvisibleToasts: visibleToastsProp,\n\ttoastOptions,\n\ticons,\n\tclassName,\n\tstyle,\n\t...props\n}: ToasterProps) {\n\tconst {\n\t\tduration,\n\t\tposition,\n\t\ttheme,\n\t\tcloseButton,\n\t\trichColors,\n\t\tvisibleToasts,\n\t} = useToastConfig();\n\n\tconst resolvedToastOptions: ToasterProps['toastOptions'] = {\n\t\t...toastOptions,\n\t\tclassNames: mergeToastClassNames(toastOptions?.classNames),\n\t};\n\n\treturn (\n\t\t<PrimitiveToaster\n\t\t\t{...props}\n\t\t\t// Toasts always sit on the inverse (dark) surface. Scoping the dark theme here\n\t\t\t// resolves status icons and the focus ring to their dark-surface values, so a\n\t\t\t// light page does not paint dark-green or dark-red glyphs on a dark toast.\n\t\t\tclassName={cn('toaster group toaster--component dark', className)}\n\t\t\tduration={durationProp ?? duration}\n\t\t\tposition={positionProp ?? position}\n\t\t\ttheme={themeProp ?? theme ?? 'dark'}\n\t\t\tcloseButton={closeButtonProp ?? closeButton}\n\t\t\trichColors={richColorsProp ?? richColors}\n\t\t\tvisibleToasts={visibleToastsProp ?? visibleToasts}\n\t\t\ttoastOptions={resolvedToastOptions}\n\t\t\ticons={{ ...DEFAULT_TOAST_ICONS, ...icons }}\n\t\t\tstyle={{ ...DEFAULT_TOAST_STYLE, ...style } as CSSProperties}\n\t\t/>\n\t);\n}\n\nToaster.displayName = 'Toaster';\n"],"mappings":";;;;;;;;AAGA,IAAMA,KAAW,EAAE,WAAQ,UAAU,GAAGO,QAEpC,kBAACN,GAAD;CACS;CACP,WAAU;CACV,OAAO;EACL,SACE,kBAACO,GAAD,EAAiB,WAAU,YAAa,CAAA;EAE1C,MACE,kBAACC,GAAD,EAAU,WAAU,YAAa,CAAA;EAEnC,SACE,kBAACC,GAAD,EAAmB,WAAU,YAAa,CAAA;EAE5C,OACE,kBAACC,GAAD,EAAc,WAAU,YAAa,CAAA;EAEvC,SACE,kBAACC,GAAD,EAAa,WAAU,yBAA0B,CAAA;CAErD;CACA,OACE;EACE,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;CACrB;CAEF,cAAc,EACZ,YAAY,EACV,OAAO,WACT,EACF;CACA,GAAIL;AACL,CAAA,GCRCM,IAA4B;CACjC,OACC,0JAA0JT,EAAmB,kBAAkB;CAChM,OAAO;CACP,aAAa;CACb,MACC;CACD,aACC;CACD,cACC;CACD,cACC;CACD,SAAS;CACT,MAAM;CACN,SAAS;CACT,OAAO;CACP,SAAS;CACT,SAAS;CACT,SAAS;AACV,GAEMU,IAAsB;CAC3B,SAAS,kBAACN,GAAD,EAAiB,WAAU,4BAA6B,CAAA;CACjE,MAAM,kBAACC,GAAD,EAAU,WAAU,yBAA0B,CAAA;CACpD,SAAS,kBAACC,GAAD,EAAmB,WAAU,mCAAoC,CAAA;CAC1E,OAAO,kBAACC,GAAD,EAAc,WAAU,gCAAiC,CAAA;CAChE,SAAS,kBAACC,GAAD,EAAa,WAAU,+CAAgD,CAAA;AACjF,GAEMG,IAAsB;CAC3B,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,WAAW;AACZ;AAEA,SAASC,EAAqB,GAA8C;CAC3E,OAAO;EACN,OAAOC,EAAGJ,EAA0B,OAAOK,GAAW,KAAK;EAC3D,OAAOD,EAAGJ,EAA0B,OAAOK,GAAW,KAAK;EAC3D,aAAaD,EAAGJ,EAA0B,aAAaK,GAAW,WAAW;EAC7E,MAAMD,EAAGJ,EAA0B,MAAMK,GAAW,IAAI;EACxD,aAAaD,EAAGJ,EAA0B,aAAaK,GAAW,WAAW;EAC7E,cAAcD,EAAGJ,EAA0B,cAAcK,GAAW,YAAY;EAChF,cAAcD,EAAGJ,EAA0B,cAAcK,GAAW,YAAY;EAChF,SAASD,EAAGJ,EAA0B,SAASK,GAAW,OAAO;EACjE,MAAMD,EAAGJ,EAA0B,MAAMK,GAAW,IAAI;EACxD,SAASD,EAAGJ,EAA0B,SAASK,GAAW,OAAO;EACjE,OAAOD,EAAGJ,EAA0B,OAAOK,GAAW,KAAK;EAC3D,SAASD,EAAGJ,EAA0B,SAASK,GAAW,OAAO;EACjE,SAASD,EAAGJ,EAA0B,SAASK,GAAW,OAAO;EACjE,QAAQA,GAAW;EACnB,SAASD,EAAGJ,EAA0B,SAASK,GAAW,OAAO;CAClE;AACD;AAEA,SAAgBC,EAAQ,EACvB,UAAUC,GACV,UAAUC,GACV,OAAOC,GACP,aAAaC,GACb,YAAYC,GACZ,eAAeC,GACf,iBACA,UACA,cACA,UACA,GAAGlB,KACa;CAChB,IAAM,EACL,aACA,aACA,UACA,gBACA,eACA,qBACGJ,EAAe,GAEbuB,IAAqD;EAC1D,GAAGC;EACH,YAAYX,EAAqBW,GAAc,UAAU;CAC1D;CAEA,OACC,kBAACzB,GAAD;EACC,GAAIK;EAIJ,WAAWU,EAAG,yCAAyCW,CAAS;EAChE,UAAUR,KAAgBS;EAC1B,UAAUR,KAAgBS;EAC1B,OAAOR,KAAaS,KAAS;EAC7B,aAAaR,KAAmBS;EAChC,YAAYR,KAAkBS;EAC9B,eAAeR,KAAqBS;EACpC,cAAcR;EACd,OAAO;GAAE,GAAGZ;GAAqB,GAAGqB;EAAM;EAC1C,OAAO;GAAE,GAAGpB;GAAqB,GAAGqB;EAAM;CAC1C,CAAA;AAEH;AAEA,EAAQ,cAAc"}
1
+ {"version":3,"file":"toaster.js","names":["Toaster","Sonner","PrimitiveToaster","useToastConfig","affordanceGeometry","Toaster$1","Toaster$2","props","CircleCheckIcon","InfoIcon","TriangleAlertIcon","OctagonXIcon","Loader2Icon","DEFAULT_TOAST_CLASS_NAMES","DEFAULT_TOAST_ICONS","DEFAULT_TOAST_STYLE","mergeToastClassNames","cn","overrides","Toaster","durationProp","positionProp","themeProp","closeButtonProp","richColorsProp","visibleToastsProp","resolvedToastOptions","toastOptions","className","duration","position","theme","closeButton","richColors","visibleToasts","icons","style","toast"],"sources":["../../src/components/ui/sonner.tsx","../../src/components/base/toaster/toaster.tsx"],"sourcesContent":["import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from \"lucide-react\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\n\nconst Toaster = ({ theme = \"system\", ...props }: ToasterProps) => {\n return (\n <Sonner\n theme={theme}\n className=\"toaster group\"\n icons={{\n success: (\n <CircleCheckIcon className=\"size-icon\" />\n ),\n info: (\n <InfoIcon className=\"size-icon\" />\n ),\n warning: (\n <TriangleAlertIcon className=\"size-icon\" />\n ),\n error: (\n <OctagonXIcon className=\"size-icon\" />\n ),\n loading: (\n <Loader2Icon className=\"size-icon animate-spin\" />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","/**\n * Toaster — base wrapper around the shadcn `ui/sonner` `<Toaster>` that\n * applies library-wide defaults from `<UIProvider>`:\n *\n * - `toast.duration` → default lifetime in ms\n * - `toast.position` → default screen position\n * - `toast.theme` / `toast.closeButton` / `toast.visibleToasts`\n * / `toast.richColors` → Sonner display defaults\n *\n * Per-mount props on this component still win over the store, so a single\n * `<Toaster duration={10_000} />` continues to override the global default.\n */\nimport {\n\tCircleCheckIcon,\n\tInfoIcon,\n\tLoader2Icon,\n\tOctagonXIcon,\n\tTriangleAlertIcon,\n} from 'lucide-react';\nimport type { CSSProperties } from 'react';\nimport type { ToastClassnames, ToasterProps } from 'sonner';\n\nimport { Toaster as PrimitiveToaster } from '../../ui/sonner';\nimport { useToastConfig } from '../../../lib/ui-provider';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { cn } from '../../../lib/utils';\n\nexport type { ToasterProps };\n\ntype ToastIcons = NonNullable<ToasterProps['icons']>;\n\nconst DEFAULT_TOAST_CLASS_NAMES = {\n\t// A toast is one row of content, so it takes Item's row insets and media gap, like Alert.\n\ttoast:\n\t\t`toaster--toast font-sans !min-h-action-lg !items-center !gap-space-lg !rounded-surface !border !border-inverse-border !bg-inverse-background !px-row-x !py-row-y ${affordanceGeometry.toastCloseReserve} !text-inverse-foreground !shadow-lg`,\n\ttitle: 'toaster--title text-sm font-medium leading-snug text-current',\n\tdescription: 'toaster--description !text-inverse-muted text-xs leading-snug',\n\ticon:\n\t\t'toaster--icon !m-0 flex size-icon-lg shrink-0 items-center justify-center self-center text-inverse-muted',\n\t// A borderless glyph in the inverse secondary role reads clearly on the dark toast;\n\t// hover and keyboard focus lift it to the inverse foreground on the nested fill.\n\tcloseButton:\n\t\t'toaster--close-button !left-auto !right-space-sm !top-1/2 !size-action-xs !translate-x-0 !-translate-y-1/2 !transform-none !border-0 !bg-transparent !text-inverse-muted transition-colors hover:!bg-inverse-surface hover:!text-inverse-foreground focus-visible:!bg-inverse-surface focus-visible:!text-inverse-foreground',\n\tactionButton:\n\t\t'toaster--action-button !h-action-sm !rounded-radius !bg-inverse-foreground !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-background',\n\tcancelButton:\n\t\t'toaster--cancel-button !h-action-sm !rounded-radius !bg-inverse-surface !m-0 shrink-0 !px-control-sm !text-sm !font-medium !text-inverse-foreground',\n\tsuccess: 'toaster--success',\n\tinfo: 'toaster--info',\n\twarning: 'toaster--warning',\n\terror: 'toaster--error',\n\tloading: 'toaster--loading',\n\tdefault: 'toaster--default',\n\tcontent: 'toaster--content grid min-w-0 flex-1 gap-dense py-0 wrap-anywhere',\n} satisfies ToastClassnames;\n\nconst DEFAULT_TOAST_ICONS = {\n\tsuccess: <CircleCheckIcon className=\"size-icon-lg text-success\" />,\n\tinfo: <InfoIcon className=\"size-icon-lg text-info\" />,\n\twarning: <TriangleAlertIcon className=\"size-icon-lg text-warning-accent\" />,\n\terror: <OctagonXIcon className=\"size-icon-lg text-destructive\" />,\n\tloading: <Loader2Icon className=\"size-icon-lg animate-spin text-inverse-muted\" />,\n} satisfies ToastIcons;\n\nconst DEFAULT_TOAST_STYLE = {\n\t'--normal-bg': 'var(--inverse-background)',\n\t'--normal-text': 'var(--inverse-foreground)',\n\t'--normal-border': 'var(--inverse-border)',\n\t'--border-radius': 'var(--radius)',\n\t'--width': 'min(92vw, 24rem)',\n} as CSSProperties;\n\nfunction mergeToastClassNames(overrides?: ToastClassnames): ToastClassnames {\n\treturn {\n\t\ttoast: cn(DEFAULT_TOAST_CLASS_NAMES.toast, overrides?.toast),\n\t\ttitle: cn(DEFAULT_TOAST_CLASS_NAMES.title, overrides?.title),\n\t\tdescription: cn(DEFAULT_TOAST_CLASS_NAMES.description, overrides?.description),\n\t\ticon: cn(DEFAULT_TOAST_CLASS_NAMES.icon, overrides?.icon),\n\t\tcloseButton: cn(DEFAULT_TOAST_CLASS_NAMES.closeButton, overrides?.closeButton),\n\t\tactionButton: cn(DEFAULT_TOAST_CLASS_NAMES.actionButton, overrides?.actionButton),\n\t\tcancelButton: cn(DEFAULT_TOAST_CLASS_NAMES.cancelButton, overrides?.cancelButton),\n\t\tsuccess: cn(DEFAULT_TOAST_CLASS_NAMES.success, overrides?.success),\n\t\tinfo: cn(DEFAULT_TOAST_CLASS_NAMES.info, overrides?.info),\n\t\twarning: cn(DEFAULT_TOAST_CLASS_NAMES.warning, overrides?.warning),\n\t\terror: cn(DEFAULT_TOAST_CLASS_NAMES.error, overrides?.error),\n\t\tloading: cn(DEFAULT_TOAST_CLASS_NAMES.loading, overrides?.loading),\n\t\tdefault: cn(DEFAULT_TOAST_CLASS_NAMES.default, overrides?.default),\n\t\tloader: overrides?.loader,\n\t\tcontent: cn(DEFAULT_TOAST_CLASS_NAMES.content, overrides?.content),\n\t};\n}\n\nexport function Toaster({\n\tduration: durationProp,\n\tposition: positionProp,\n\ttheme: themeProp,\n\tcloseButton: closeButtonProp,\n\trichColors: richColorsProp,\n\tvisibleToasts: visibleToastsProp,\n\ttoastOptions,\n\ticons,\n\tclassName,\n\tstyle,\n\t...props\n}: ToasterProps) {\n\tconst {\n\t\tduration,\n\t\tposition,\n\t\ttheme,\n\t\tcloseButton,\n\t\trichColors,\n\t\tvisibleToasts,\n\t} = useToastConfig();\n\n\tconst resolvedToastOptions: ToasterProps['toastOptions'] = {\n\t\t...toastOptions,\n\t\tclassNames: mergeToastClassNames(toastOptions?.classNames),\n\t};\n\n\treturn (\n\t\t<PrimitiveToaster\n\t\t\t{...props}\n\t\t\t// Toasts always sit on the inverse (dark) surface. Scoping the dark theme here\n\t\t\t// resolves status icons and the focus ring to their dark-surface values, so a\n\t\t\t// light page does not paint dark-green or dark-red glyphs on a dark toast.\n\t\t\tclassName={cn('toaster group toaster--component dark', className)}\n\t\t\tduration={durationProp ?? duration}\n\t\t\tposition={positionProp ?? position}\n\t\t\ttheme={themeProp ?? theme ?? 'dark'}\n\t\t\tcloseButton={closeButtonProp ?? closeButton}\n\t\t\trichColors={richColorsProp ?? richColors}\n\t\t\tvisibleToasts={visibleToastsProp ?? visibleToasts}\n\t\t\ttoastOptions={resolvedToastOptions}\n\t\t\ticons={{ ...DEFAULT_TOAST_ICONS, ...icons }}\n\t\t\tstyle={{ ...DEFAULT_TOAST_STYLE, ...style } as CSSProperties}\n\t\t/>\n\t);\n}\n\nToaster.displayName = 'Toaster';\n"],"mappings":"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"}
package/dist/base/tree.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../tree-CV11PURP.js";
2
+ import { t as e } from "../tree-CeYVzdFE.js";
3
3
  export { e as Tree };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { i as e, n as t, r as n, t as r } from "../upload-queue-DhQJiSRc.js";
2
+ import { i as e, n as t, r as n, t as r } from "../upload-queue-D0sYPuqo.js";
3
3
  export { n as UploadProgressList, r as UploadTray, e as defaultUploadProgressListStrings, t as defaultUploadTrayStrings };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { n as e, t } from "../media-gallery-CSl5W1Fy.js";
3
- import { a as n, i as r, n as i, o as a, r as o, t as s } from "../upload-queue-DhQJiSRc.js";
4
- import { a as c, i as l, n as u, o as d, r as f, t as p } from "../upload-C9SA0X-8.js";
2
+ import { n as e, t } from "../media-gallery-C81DAnKI.js";
3
+ import { a as n, i as r, n as i, o as a, r as o, t as s } from "../upload-queue-D0sYPuqo.js";
4
+ import { a as c, i as l, n as u, o as d, r as f, t as p } from "../upload-Hdm5gObf.js";
5
5
  export { p as AvatarUpload, n as Dropzone, c as FileUpload, f as ImageUpload, t as MediaGallery, o as UploadProgressList, s as UploadTray, u as defaultAvatarUploadStrings, a as defaultDropzoneStrings, d as defaultFileUploadStrings, l as defaultImageUploadStrings, e as defaultMediaGalleryStrings, r as defaultUploadProgressListStrings, i as defaultUploadTrayStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../value-inputs-C0o70p-U.js";
2
+ import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../value-inputs-D3aPgq9H.js";
3
3
  export { o as COUNTRY_PREFIX_MAP, r as ColorInput, c as DEFAULT_COUNTRY_PREFIXES, l as DateTimeInput, t as PhoneInput, a as SliderField, u as TagsInput, e as defaultColorInputStrings, i as defaultPhoneInputStrings, s as defaultSliderStrings, n as defaultTagsInputStrings };
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "./lib/strings.js";
3
- import { t } from "./utils-CF3c95Io.js";
4
- import { n } from "./buttons-BbfzgczK.js";
5
- import { c as r } from "./typography-CSyJrh28.js";
6
- import { t as i } from "./motion-recipes-ChBg4HBq.js";
7
- import { a, i as o, t as s } from "./surface-recipes-BKRVW8Os.js";
3
+ import { t } from "./utils-DhuoqFy4.js";
4
+ import { n } from "./buttons-DeW0bQeK.js";
5
+ import { c as r } from "./typography-C7-YMW1S.js";
6
+ import { t as i } from "./motion-recipes-DitYv6P2.js";
7
+ import { a, i as o, t as s } from "./surface-recipes-C8mNycaY.js";
8
8
  import { t as c } from "./layer-recipes-CCpklYME.js";
9
9
  import { useCallback as l, useEffect as u, useRef as d, useState as f } from "react";
10
10
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
@@ -13,7 +13,7 @@ var h = {
13
13
  summary: (e, t) => t === void 0 ? `${e} selected` : `${e} of ${t} selected`,
14
14
  clear: "Clear",
15
15
  label: "Batch actions"
16
- }, g = `batch-action-bar--component box-border flex min-w-0 flex-wrap items-center justify-between gap-space-md rounded-radius p-surface-xs ${a.anchored.shell}`, _ = {
16
+ }, g = `batch-action-bar--component box-border flex min-w-0 flex-wrap items-center justify-between gap-space-md rounded-surface p-surface-xs ${a.anchored.shell}`, _ = {
17
17
  floating: t("fixed bottom-[calc(1rem*var(--space-scale)+env(safe-area-inset-bottom,0px))] left-1/2 w-max max-w-[calc(100%-2rem*var(--space-scale))] -translate-x-1/2", "bg-popover text-popover-foreground", s.lifted, c.chrome, i.dock),
18
18
  inline: t("w-full text-foreground", o.band)
19
19
  };
@@ -102,4 +102,4 @@ b.displayName = "BatchActionBar";
102
102
  //#endregion
103
103
  export { h as n, b as t };
104
104
 
105
- //# sourceMappingURL=batch-action-bar-CdfIkCsV.js.map
105
+ //# sourceMappingURL=batch-action-bar-BoqWIIpV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-action-bar-BoqWIIpV.js","names":["Text","motionRecipes","neutralFillRecipes","elevationRecipes","layerRecipes","defaultBatchActionBarStrings","total","selected","barRecipe","surfaceDividerRecipes","placementRecipes","cn","isConnectedElement","node","isWithinBar","bar","BatchActionBar","stringsProp","strings","useStrings","visible","selectedCount","countReady","setCountReady","useState","barRef","useRef","focusInsideRef","focusOriginRef","handleFocusIn","inside","event","from","handlePointerDown","restoreFocus","useCallback","origin","owner","returnFocusRef","candidates","candidate","handBackFocus","active","handBackFocusRef","useEffect","handleKeyDown","onClear","hasActions","children","placement","className","totalCount","Button"],"sources":["../src/components/base/batch-action-bar/batch-action-bar.strings.ts","../src/components/base/batch-action-bar/batch-action-bar.tsx"],"sourcesContent":["/**\n * Default user-facing strings for `<BatchActionBar>`.\n *\n * Consumers wire their own i18n at the call site:\n *\n * <BatchActionBar strings={{ summary: (n, total) => t('selection.summary', { n, total }) }} … />\n */\n\nexport interface BatchActionBarStrings {\n\t/**\n\t * The selection summary (\"3 selected\", \"3 of 250 selected\"). A function,\n\t * because the sentence shape varies by language; `total` is `undefined`\n\t * when the caller does not know or bound the total.\n\t */\n\tsummary: (selected: number, total?: number) => string;\n\t/** The control that drops the selection. */\n\tclear: string;\n\t/** The accessible name of the bar's region. */\n\tlabel: string;\n}\n\nexport const defaultBatchActionBarStrings: BatchActionBarStrings = {\n\tsummary: (selected, total) =>\n\t\ttotal === undefined ? `${selected} selected` : `${selected} of ${total} selected`,\n\tclear: 'Clear',\n\tlabel: 'Batch actions',\n};\n","/**\n * BatchActionBar — the bar shown once a selection exists: the count, the bulk\n * actions, and a way out.\n *\n * Several features share it (DataTable, MediaLibrary, product variants), so it\n * lives in base. `floating` docks to the bottom centre of the viewport, so the\n * selection stays reachable after scrolling a long list; `inline` stays in flow\n * inside a panel that scrolls its own body, where a dock would cover the rows.\n *\n * Callers can mount it unconditionally: at a count of zero it renders nothing.\n * The count is a polite live region, so changes are announced. Escape inside\n * the bar clears, and when the bar goes away with focus inside it (Clear, or an\n * action that drops the selection), focus returns to `returnFocusRef` or to the\n * control focus came from rather than falling to the document body.\n */\nimport { useCallback, useEffect, useRef, useState, type KeyboardEvent, type ReactNode, type RefObject } from 'react';\n\nimport { Button } from '../buttons';\nimport { Text } from '../../typography';\nimport { layerRecipes } from '../../../lib/layer-recipes';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { elevationRecipes, neutralFillRecipes, surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultBatchActionBarStrings, type BatchActionBarStrings } from './batch-action-bar.strings';\n\nexport type BatchActionBarPlacement = 'floating' | 'inline';\n\nexport interface BatchActionBarProps {\n\t/** How many items are selected. At zero or below no bar renders, so a caller can mount it unconditionally. */\n\tselectedCount: number;\n\t/** Denominator for the summary. Omit when the total is unknown or unbounded. */\n\ttotalCount?: number;\n\t/** Drops the selection. Omit to render no Clear control or Escape shortcut; a selection the user cannot drop needs a reason. */\n\tonClear?: () => void;\n\t/**\n\t * `floating` (default) docks to the bottom centre of the viewport, or of the\n\t * nearest transformed ancestor; `inline` sits in flow at full width.\n\t */\n\tplacement?: BatchActionBarPlacement;\n\t/**\n\t * Where focus goes when the bar disappears while focus is inside it: the list\n\t * it acts on, or that list's select-all control. When focus entered the bar\n\t * from a control inside this element that is still there, it returns to that\n\t * control instead. Without it, or when it cannot take focus, focus returns to\n\t * the control it entered the bar from, if that is still in the document.\n\t */\n\treturnFocusRef?: RefObject<HTMLElement | null>;\n\t/** Overrides this bar's own copy: `summary(selected, total)`, `clear`, and the region's accessible `label`. */\n\tstrings?: StringsProp<BatchActionBarStrings>;\n\t/** The bulk actions: buttons, a menu, whatever the surface needs. Clear follows them. */\n\tchildren?: ReactNode;\n\t/** Merged onto the bar. */\n\tclassName?: string;\n}\n\n// Both placements share one geometry: the compact anchored-surface inset and\n// shell radius, so the bar's buttons sit in the same frame as a menu's rows.\nconst barRecipe = `batch-action-bar--component box-border flex min-w-0 flex-wrap items-center justify-between gap-space-md rounded-surface p-surface-xs ${surfaceDividerRecipes.anchored.shell}`;\n\nconst placementRecipes: Record<BatchActionBarPlacement, string> = {\n\t// Above sticky headers and toolbars, below the menus and dialogs its own\n\t// actions open. Opaque and lifted, so it never reads as part of the list\n\t// scrolling underneath. 100% rather than 100vw, so a dock inside a\n\t// transformed ancestor does not overhang it.\n\tfloating: cn(\n\t\t// Root knobs, not the --spacing-* aliases: those resolve once at :root, so a\n\t\t// scoped space-scale would never reach the dock offset.\n\t\t'fixed bottom-[calc(1rem*var(--space-scale)+env(safe-area-inset-bottom,0px))] left-1/2 w-max max-w-[calc(100%-2rem*var(--space-scale))] -translate-x-1/2',\n\t\t'bg-popover text-popover-foreground',\n\t\televationRecipes.lifted,\n\t\tlayerRecipes.chrome,\n\t\tmotionRecipes.dock,\n\t),\n\tinline: cn('w-full text-foreground', neutralFillRecipes.band),\n};\n\nfunction isConnectedElement(node: HTMLElement | null | undefined): node is HTMLElement {\n\treturn !!node && node.isConnected;\n}\n\n/**\n * Inside the bar, or inside a popup one of its actions has open: a menu is\n * portaled out of the bar's DOM but unmounts with it, so focus there is lost\n * with the bar just the same.\n */\nfunction isWithinBar(bar: HTMLElement | null, node: EventTarget | null): boolean {\n\tif (!bar || !(node instanceof Node)) return false;\n\treturn bar.contains(node) || bar.querySelector('[aria-expanded=\"true\"]') !== null;\n}\n\nexport function BatchActionBar({\n\tselectedCount,\n\ttotalCount,\n\tonClear,\n\tplacement = 'floating',\n\treturnFocusRef,\n\tstrings: stringsProp,\n\tchildren,\n\tclassName,\n}: BatchActionBarProps) {\n\tconst strings = useStrings(defaultBatchActionBarStrings, stringsProp);\n\tconst visible = selectedCount > 0;\n\n\t// The count is a polite live region. It mounts empty and fills once the bar\n\t// is in the document: a live region inserted together with its text is often\n\t// not read, and a second, hidden copy of the count would be read twice.\n\tconst [countReady, setCountReady] = useState(false);\n\tuseEffect(() => {\n\t\tsetCountReady(visible);\n\t}, [visible]);\n\n\tconst barRef = useRef<HTMLDivElement>(null);\n\t// Whether focus was last known to be inside the bar, and the control it came from.\n\tconst focusInsideRef = useRef(false);\n\tconst focusOriginRef = useRef<HTMLElement | null>(null);\n\n\t// Track focus through document listeners rather than blur: browsers differ\n\t// on whether removing a focused node fires blur, and the bar's own removal\n\t// is exactly the moment that matters.\n\tuseEffect(() => {\n\t\tif (!visible || typeof document === 'undefined') return;\n\t\tconst handleFocusIn = (event: FocusEvent) => {\n\t\t\tconst bar = barRef.current;\n\t\t\tconst inside = isWithinBar(bar, event.target);\n\t\t\tif (inside && !focusInsideRef.current) {\n\t\t\t\tconst from = event.relatedTarget;\n\t\t\t\tfocusOriginRef.current = from instanceof HTMLElement && !isWithinBar(bar, from) ? from : null;\n\t\t\t}\n\t\t\tfocusInsideRef.current = inside;\n\t\t};\n\t\t// Pressing somewhere else moves on, even when nothing there takes focus.\n\t\tconst handlePointerDown = (event: PointerEvent) => {\n\t\t\tif (!isWithinBar(barRef.current, event.target)) focusInsideRef.current = false;\n\t\t};\n\t\tdocument.addEventListener('focusin', handleFocusIn);\n\t\tdocument.addEventListener('pointerdown', handlePointerDown, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('focusin', handleFocusIn);\n\t\t\tdocument.removeEventListener('pointerdown', handlePointerDown, true);\n\t\t};\n\t}, [visible]);\n\n\tconst restoreFocus = useCallback(() => {\n\t\tconst origin = isConnectedElement(focusOriginRef.current) ? focusOriginRef.current : null;\n\t\tconst owner = isConnectedElement(returnFocusRef?.current) ? returnFocusRef.current : null;\n\t\tfocusOriginRef.current = null;\n\t\t// Entered from inside the owner, and that control is still there: the\n\t\t// user keeps their place in the list. Otherwise the owner, then the origin.\n\t\t// Going back to the origin restores where focus was, so it never scrolls\n\t\t// the page to it.\n\t\tconst candidates = owner && origin && owner.contains(origin) ? [origin, owner] : [owner, origin];\n\t\tfor (const candidate of candidates) {\n\t\t\tif (!candidate) continue;\n\t\t\tcandidate.focus(candidate === origin ? { preventScroll: true } : undefined);\n\t\t\tif (document.activeElement === candidate) return;\n\t\t}\n\t}, [returnFocusRef]);\n\n\t// The bar went away with focus inside it: hand focus back instead of\n\t// dropping it on the body. An action that already moved focus on (a\n\t// dialog, the next field) keeps it.\n\tconst handBackFocus = useCallback(() => {\n\t\tif (!focusInsideRef.current) return;\n\t\tfocusInsideRef.current = false;\n\t\tconst active = document.activeElement;\n\t\tconst lost = !active || active === document.body || !active.isConnected;\n\t\tif (lost) restoreFocus();\n\t}, [restoreFocus]);\n\tuseEffect(() => {\n\t\tif (!visible) handBackFocus();\n\t}, [visible, handBackFocus]);\n\t// The same when a caller unmounts the bar together with the selection.\n\tconst handBackFocusRef = useRef(handBackFocus);\n\thandBackFocusRef.current = handBackFocus;\n\tuseEffect(() => () => handBackFocusRef.current(), []);\n\n\tconst handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.key !== 'Escape' || !onClear || event.defaultPrevented) return;\n\t\t// React bubbles events out of portals; a menu opened from an action owns\n\t\t// its own Escape, so only keys pressed in the bar's DOM clear.\n\t\tif (!(event.target instanceof Node) || !event.currentTarget.contains(event.target)) return;\n\t\tevent.preventDefault();\n\t\t// One Escape, one layer: the dialog or drawer around the bar stays open.\n\t\tevent.stopPropagation();\n\t\tonClear();\n\t};\n\n\t// Nothing selected, nothing rendered.\n\tif (!visible) return null;\n\n\tconst hasActions = children !== undefined && children !== null && children !== false;\n\n\treturn (\n\t\t<div\n\t\t\tref={barRef}\n\t\t\t// A named region, so screen reader users can find the bar again after the list.\n\t\t\trole=\"region\"\n\t\t\taria-label={strings.label}\n\t\t\tdata-slot=\"batch-action-bar\"\n\t\t\tdata-placement={placement}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\tclassName={cn(barRecipe, placementRecipes[placement], className)}\n\t\t>\n\t\t\t{/*\n\t\t\t * Not `role=\"status\"`, which would collide with the page's own status\n\t\t\t * line. The control inset lines the count up with the buttons' labels,\n\t\t\t * also when the actions wrap below it. Tabular figures, so a changing\n\t\t\t * count does not shift a centred dock.\n\t\t\t */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"batch-action-bar-summary\"\n\t\t\t\tclassName=\"batch-action-bar--summary min-w-0 px-control\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\taria-atomic=\"true\"\n\t\t\t>\n\t\t\t\t{countReady && (\n\t\t\t\t\t<Text tag=\"span\" type=\"inherit\" className=\"tabular-nums\">\n\t\t\t\t\t\t{strings.summary(selectedCount, totalCount)}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{(hasActions || !!onClear) && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"batch-action-bar-actions\"\n\t\t\t\t\t// A rule between the count and the verbs, so the count does not read\n\t\t\t\t\t// as another button. Wrapped below the count on narrow screens, where\n\t\t\t\t\t// the rule would lead the row, it hides.\n\t\t\t\t\tclassName=\"batch-action-bar--actions flex min-w-0 shrink flex-wrap items-center gap-space-xs before:my-space-xs before:w-px before:self-stretch before:bg-border/60 max-sm:before:hidden\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t\t{!!onClear && (\n\t\t\t\t\t\t<Button type=\"button\" tone=\"neutral\" buttonStyle=\"ghost\" onClick={onClear}>\n\t\t\t\t\t\t\t{strings.clear}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nBatchActionBar.displayName = 'BatchActionBar';\n"],"mappings":"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"}
@@ -1,25 +1,25 @@
1
1
  "use client";
2
- import { m as e } from "../ui-provider-CQCuCBcy.js";
2
+ import { v as e } from "../ui-provider-C-74NVLc.js";
3
3
  import { useStrings as t } from "../lib/strings.js";
4
- import { t as n } from "../utils-CF3c95Io.js";
5
- import { n as r } from "../buttons-BbfzgczK.js";
6
- import { c as i, o as a } from "../typography-CSyJrh28.js";
4
+ import { t as n } from "../utils-DhuoqFy4.js";
5
+ import { n as r } from "../buttons-DeW0bQeK.js";
6
+ import { c as i, o as a } from "../typography-C7-YMW1S.js";
7
7
  import { o, s } from "../text.styles-B64My8RZ.js";
8
- import { r as c, t as l } from "../structure-C0V0_Fyf.js";
8
+ import { r as c, t as l } from "../structure-DZJ2wbAU.js";
9
9
  import { i as u } from "../tone-recipes-BPsRAvhu.js";
10
- import { h as d, m as f, p, v as m } from "../smart-card-CqkzQsK-.js";
11
- import { n as h } from "../action-menu-CHgs8vmj.js";
12
- import { m as g } from "../primitives-Du64iDbb.js";
13
- import { t as _ } from "../icon-badge-COWbCCWu.js";
14
- import { t as v } from "../badge-DErMA7ul.js";
15
- import { t as y } from "../input-Cdw4k0fb.js";
16
- import { t as b } from "../copyable-CnGCZdX4.js";
17
- import { t as ee } from "../form-field-CsgRmdit.js";
18
- import { s as te } from "../choice-inputs-JLtij2y4.js";
19
- import { t as ne } from "../checkbox-CzYUTPeJ.js";
20
- import { n as re } from "../display-BB4BL_-K.js";
21
- import { n as x, r as S, t as C } from "../collapsible-Do4G0zcC.js";
22
- import { c as w, n as T, o as E, r as D, t as O } from "../item-BvZ2DR_x.js";
10
+ import { h as d, m as f, p, v as m } from "../smart-card-B6vLxqa_.js";
11
+ import { n as h } from "../action-menu-C0gjzLyE.js";
12
+ import { m as g } from "../primitives-BkkQjYl7.js";
13
+ import { t as _ } from "../icon-badge-npxF1SLX.js";
14
+ import { t as v } from "../badge-wWauMgAt.js";
15
+ import { t as y } from "../input-7KAc7XQL.js";
16
+ import { t as b } from "../copyable-3fdHfMR3.js";
17
+ import { t as ee } from "../form-field-CAPdwdnZ.js";
18
+ import { s as te } from "../choice-inputs-DHGtx0QV.js";
19
+ import { t as ne } from "../checkbox-MoyHIAPs.js";
20
+ import { n as re } from "../display-CT_N2a3w.js";
21
+ import { n as x, r as S, t as C } from "../collapsible-BzJ91LUG.js";
22
+ import { c as w, n as T, o as E, r as D, t as O } from "../item-FfWnaYST.js";
23
23
  import { forwardRef as k, useCallback as A, useMemo as ie, useState as j } from "react";
24
24
  import { jsx as M, jsxs as N } from "react/jsx-runtime";
25
25
  import { Check as P, ChevronRight as F, Copy as I, KeyRound as L, Minus as R, Plus as z, Trash2 as B } from "lucide-react";
@@ -133,7 +133,7 @@ var W = {
133
133
  tone: "secondary",
134
134
  buttonStyle: "ghost",
135
135
  size: "md",
136
- className: "h-action flex-1 justify-start gap-space-md rounded-inner px-0 py-0 text-left",
136
+ className: "h-action flex-1 justify-start gap-space-md rounded-radius px-0 py-0 text-left",
137
137
  children: [/* @__PURE__ */ M(F, {
138
138
  "aria-hidden": "true",
139
139
  className: n("size-icon text-muted-foreground transition-transform", y && "rotate-90")
@@ -229,7 +229,7 @@ function q({ item: e, onDelete: t, onCopy: n, copyMenuLabel: r, copiedMenuLabel:
229
229
  className: "w-20 shrink-0 truncate @md/api-key-list:w-24",
230
230
  children: e.name
231
231
  }), /* @__PURE__ */ M(g, {
232
- className: "min-w-0 flex-1 truncate rounded-inner bg-muted px-space-md py-space-xs",
232
+ className: "min-w-0 flex-1 truncate rounded-radius bg-muted px-space-md py-space-xs",
233
233
  children: p
234
234
  })]
235
235
  }),
@@ -325,7 +325,7 @@ function X({ value: e, displayValue: r, title: a, description: o, action: s, cla
325
325
  displayValue: r ?? e,
326
326
  mono: !0,
327
327
  truncate: !0,
328
- className: "copyable-secret-alert--value max-w-full rounded-inner bg-background px-space-md py-space-xs",
328
+ className: "copyable-secret-alert--value max-w-full rounded-radius bg-background px-space-md py-space-xs",
329
329
  strings: { success: h.copySuccess }
330
330
  })]
331
331
  }) }),