themelia-react-ui 2.0.5 → 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 (489) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +13 -6
  4. package/dist/{accordion-B9MHG0cT.js → accordion-0tQUZ20r.js} +7 -7
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-Dr8K-ghE.js → action-menu-C0gjzLyE.js} +7 -7
  7. package/dist/{action-menu-Dr8K-ghE.js.map → action-menu-C0gjzLyE.js.map} +1 -1
  8. package/dist/{ai-artifact-C58tQcBy.js → ai-artifact-CGGpQryR.js} +172 -157
  9. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  10. package/dist/{app-shell-B_IuNWOo.js → app-shell-EHuuRDGy.js} +5 -5
  11. package/dist/{app-shell-B_IuNWOo.js.map → app-shell-EHuuRDGy.js.map} +1 -1
  12. package/dist/{attachment-Dg_69lPS.js → attachment-BCpA4e7i.js} +8 -8
  13. package/dist/{attachment-Dg_69lPS.js.map → attachment-BCpA4e7i.js.map} +1 -1
  14. package/dist/{auth-DTkkshS8.js → auth-B0girIk_.js} +15 -15
  15. package/dist/auth-B0girIk_.js.map +1 -0
  16. package/dist/{avatar-CeZaFmNH.js → avatar-B9Jnp-T-.js} +3 -3
  17. package/dist/{avatar-CeZaFmNH.js.map → avatar-B9Jnp-T-.js.map} +1 -1
  18. package/dist/{badge-xIiV_E7f.js → badge-wWauMgAt.js} +3 -3
  19. package/dist/{badge-xIiV_E7f.js.map → badge-wWauMgAt.js.map} +1 -1
  20. package/dist/base/accordion.js +1 -1
  21. package/dist/base/action-menu.js +1 -1
  22. package/dist/base/attachment.js +1 -1
  23. package/dist/base/avatar.js +1 -1
  24. package/dist/base/badge.js +1 -1
  25. package/dist/base/batch-action-bar.js +1 -1
  26. package/dist/base/buttons.js +1 -1
  27. package/dist/base/cards.js +2 -2
  28. package/dist/base/carousel.js +3 -3
  29. package/dist/base/cascader.js +1 -1
  30. package/dist/base/chart.js +1 -1
  31. package/dist/base/choice-inputs.js +2 -2
  32. package/dist/base/code-block.js +1 -1
  33. package/dist/base/combobox.js +1 -1
  34. package/dist/base/command.js +1 -1
  35. package/dist/base/copyable.js +1 -1
  36. package/dist/base/date-pickers.js +2 -2
  37. package/dist/base/display.js +6 -6
  38. package/dist/base/feedback.js +4 -4
  39. package/dist/base/forms-numeric.js +1 -1
  40. package/dist/base/forms.js +2 -2
  41. package/dist/base/inline-edit.js +8 -8
  42. package/dist/base/item.js +1 -1
  43. package/dist/base/media-gallery.js +1 -1
  44. package/dist/base/metadata-list.js +1 -1
  45. package/dist/base/navigation.js +6 -6
  46. package/dist/base/popover-menu.js +1 -1
  47. package/dist/base/popover.js +1 -1
  48. package/dist/base/qr-code.js +1 -1
  49. package/dist/base/repeaters.js +195 -188
  50. package/dist/base/repeaters.js.map +1 -1
  51. package/dist/base/sheet.js +1 -1
  52. package/dist/base/sidebar.js +2 -2
  53. package/dist/base/signature-pad.js +7 -7
  54. package/dist/base/skeleton.js +1 -1
  55. package/dist/base/spinner.js +5 -5
  56. package/dist/base/spinner.js.map +1 -1
  57. package/dist/base/structure.js +1 -1
  58. package/dist/base/table.js +1 -1
  59. package/dist/base/text-inputs.js +2 -2
  60. package/dist/base/toaster.js +1 -1
  61. package/dist/base/tree.js +1 -1
  62. package/dist/base/upload-queue.js +1 -1
  63. package/dist/base/upload.js +3 -3
  64. package/dist/base/value-inputs.js +1 -1
  65. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-BoqWIIpV.js} +5 -5
  66. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-BoqWIIpV.js.map} +1 -1
  67. package/dist/blocks/admin.js +17 -17
  68. package/dist/blocks/ai.js +227 -221
  69. package/dist/blocks/ai.js.map +1 -1
  70. package/dist/blocks/analytics/usage-card.js +1 -1
  71. package/dist/blocks/analytics.js +424 -449
  72. package/dist/blocks/analytics.js.map +1 -1
  73. package/dist/blocks/collaboration.js +1 -1
  74. package/dist/blocks/commerce/receipt.js +1 -1
  75. package/dist/blocks/commerce.js +225 -220
  76. package/dist/blocks/commerce.js.map +1 -1
  77. package/dist/blocks/data-display.js +2 -2
  78. package/dist/blocks/onboarding.js +5 -5
  79. package/dist/blocks/planning.js +11 -11
  80. package/dist/blocks/timelines.js +1 -1
  81. package/dist/{breadcrumbs-J-K2kl4c.js → breadcrumbs-Bp9Ke7kd.js} +4 -4
  82. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  83. package/dist/{button-S2Cubiiz.js → button-ChBovTx0.js} +2 -2
  84. package/dist/{button-S2Cubiiz.js.map → button-ChBovTx0.js.map} +1 -1
  85. package/dist/{buttons-BedGfygC.js → buttons-DeW0bQeK.js} +6 -6
  86. package/dist/{buttons-BedGfygC.js.map → buttons-DeW0bQeK.js.map} +1 -1
  87. package/dist/{cards-rNX1M4Xn.js → cards-CNXnmvV5.js} +8 -8
  88. package/dist/{cards-rNX1M4Xn.js.map → cards-CNXnmvV5.js.map} +1 -1
  89. package/dist/{cascader-B1MiqkBq.js → cascader-CrAl9zD5.js} +15 -15
  90. package/dist/{cascader-B1MiqkBq.js.map → cascader-CrAl9zD5.js.map} +1 -1
  91. package/dist/{chart-Darg_0Kv.js → chart-I7ROnsl8.js} +5 -5
  92. package/dist/{chart-Darg_0Kv.js.map → chart-I7ROnsl8.js.map} +1 -1
  93. package/dist/{checkbox-fflqmODR.js → checkbox-MoyHIAPs.js} +3 -3
  94. package/dist/{checkbox-fflqmODR.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  95. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-DHGtx0QV.js} +122 -110
  96. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  97. package/dist/{code-block-BzmM9Eig.js → code-block-BSJyq9e-.js} +7 -7
  98. package/dist/{code-block-BzmM9Eig.js.map → code-block-BSJyq9e-.js.map} +1 -1
  99. package/dist/{collapsible-BkAI_XD4.js → collapsible-BzJ91LUG.js} +3 -3
  100. package/dist/{collapsible-BkAI_XD4.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  101. package/dist/{collection-content-gDh1v6O4.js → collection-content-CSnwtOTH.js} +3 -3
  102. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  103. package/dist/{combobox-BEx0vJgF.js → combobox-Bcvu5J8O.js} +11 -10
  104. package/dist/{combobox-BEx0vJgF.js.map → combobox-Bcvu5J8O.js.map} +1 -1
  105. package/dist/combobox-C2JiSQPc.js +915 -0
  106. package/dist/combobox-C2JiSQPc.js.map +1 -0
  107. package/dist/{command-CrlPIL6m.js → command-9e52NPgK.js} +6 -6
  108. package/dist/{command-CrlPIL6m.js.map → command-9e52NPgK.js.map} +1 -1
  109. package/dist/{comments-Dmpp0YIc.js → comments-BsgErEqd.js} +33 -28
  110. package/dist/comments-BsgErEqd.js.map +1 -0
  111. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  112. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  113. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  114. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  115. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  116. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  117. package/dist/components/base/feedback/state-display.d.ts +5 -1
  118. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  119. package/dist/components/base/forms/form-field.d.ts +7 -2
  120. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  121. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  122. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  123. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  124. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  125. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  126. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  127. package/dist/components/base/sidebar/sidebar.d.ts +2 -0
  128. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  129. package/dist/components/base/upload/image-upload.d.ts +2 -1
  130. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  131. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  132. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  133. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +2 -0
  134. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  135. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  136. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  137. package/dist/components/blocks/analytics/types.d.ts +2 -2
  138. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  139. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  140. package/dist/components/features/activities/activities.types.d.ts +18 -11
  141. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  142. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  143. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  144. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  145. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  146. package/dist/components/features/combobox/combobox.d.ts +2 -2
  147. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  148. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  149. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  150. package/dist/components/features/combobox/types.d.ts +37 -8
  151. package/dist/components/features/email-composer/types.d.ts +3 -1
  152. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  153. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  154. package/dist/components/features/filters/filters.types.d.ts +3 -3
  155. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  156. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  157. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  158. package/dist/components/features/filters/utils/filter-utils.d.ts +5 -1
  159. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  160. package/dist/components/features/media-library/media-library.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
  162. package/dist/components/features/media-library/media-library.types.d.ts +36 -8
  163. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  164. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  165. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  166. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  167. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  168. package/dist/components/features/products/products.types.d.ts +2 -2
  169. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  170. package/dist/components/features/resource/resource.d.ts +1 -1
  171. package/dist/components/features/resource/resource.types.d.ts +2 -0
  172. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  173. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  174. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  175. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  176. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  177. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  178. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  179. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  180. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  181. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  182. package/dist/components/features/table/data-table.d.ts +1 -1
  183. package/dist/components/features/table/index.d.ts +1 -0
  184. package/dist/components/features/table/table-body.d.ts +1 -1
  185. package/dist/components/features/table/table-helpers.d.ts +6 -3
  186. package/dist/components/features/table/table.strings.d.ts +3 -0
  187. package/dist/components/features/table/table.types.d.ts +17 -1
  188. package/dist/components/layout/header/header.types.d.ts +3 -2
  189. package/dist/components/layout/layout.types.d.ts +5 -3
  190. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  191. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  192. package/dist/components/layout/settings/settings.d.ts +1 -1
  193. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  194. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +3 -1
  195. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  196. package/dist/components/layout/sidebar/sidebar.types.d.ts +2 -0
  197. package/dist/components/primitives/link.d.ts +3 -2
  198. package/dist/components/primitives/money.d.ts +1 -1
  199. package/dist/components/primitives/number.d.ts +1 -1
  200. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  201. package/dist/{containers-CIxwbZt5.js → containers-CSdc32h9.js} +2 -2
  202. package/dist/{containers-CIxwbZt5.js.map → containers-CSdc32h9.js.map} +1 -1
  203. package/dist/{copyable-DIznBqiT.js → copyable-3fdHfMR3.js} +4 -4
  204. package/dist/{copyable-DIznBqiT.js.map → copyable-3fdHfMR3.js.map} +1 -1
  205. package/dist/{data-display-BdgCAw8T.js → data-display-Cmj-xZYl.js} +16 -15
  206. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  207. package/dist/{date-Cq8ioE4o.js → date-Br0FicVv.js} +4 -4
  208. package/dist/{date-Cq8ioE4o.js.map → date-Br0FicVv.js.map} +1 -1
  209. package/dist/date-picker-CyQlFYsP.js +1617 -0
  210. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  211. package/dist/date-pickers-tj2MXmXd.js +185 -0
  212. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  213. package/dist/{display-KsZLw9Ov.js → display-CT_N2a3w.js} +7 -7
  214. package/dist/{display-KsZLw9Ov.js.map → display-CT_N2a3w.js.map} +1 -1
  215. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-C08iIugv.js} +6 -6
  216. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-C08iIugv.js.map} +1 -1
  217. package/dist/features/activities.js +283 -270
  218. package/dist/features/activities.js.map +1 -1
  219. package/dist/features/ai-chat.js +40 -27
  220. package/dist/features/ai-chat.js.map +1 -1
  221. package/dist/features/appointment-calendar.js +126 -126
  222. package/dist/features/appointment-calendar.js.map +1 -1
  223. package/dist/features/async-preview.js +9 -9
  224. package/dist/features/combobox.js +1 -1
  225. package/dist/features/comments.js +1 -1
  226. package/dist/features/data-view.js +10 -10
  227. package/dist/features/email-composer.js +24 -19
  228. package/dist/features/email-composer.js.map +1 -1
  229. package/dist/features/event-calendar.js +129 -125
  230. package/dist/features/event-calendar.js.map +1 -1
  231. package/dist/features/filters.js +2 -2
  232. package/dist/features/global-search.js +16 -20
  233. package/dist/features/global-search.js.map +1 -1
  234. package/dist/features/kanban.js +18 -28
  235. package/dist/features/kanban.js.map +1 -1
  236. package/dist/features/map/style.css +15 -0
  237. package/dist/features/map.js +331 -314
  238. package/dist/features/map.js.map +1 -1
  239. package/dist/features/media-library.js +1044 -866
  240. package/dist/features/media-library.js.map +1 -1
  241. package/dist/features/mentions.js +2 -2
  242. package/dist/features/overlays.js +1 -1
  243. package/dist/features/products.js +978 -964
  244. package/dist/features/products.js.map +1 -1
  245. package/dist/features/questionnaire.js +159 -152
  246. package/dist/features/questionnaire.js.map +1 -1
  247. package/dist/features/resource-assignment.js +8 -8
  248. package/dist/features/resource.js +74 -71
  249. package/dist/features/resource.js.map +1 -1
  250. package/dist/features/rich-text-editor.js +28 -19
  251. package/dist/features/rich-text-editor.js.map +1 -1
  252. package/dist/features/schema-form.js +297 -256
  253. package/dist/features/schema-form.js.map +1 -1
  254. package/dist/features/suggestions.js +57 -50
  255. package/dist/features/suggestions.js.map +1 -1
  256. package/dist/features/sync.js +3 -3
  257. package/dist/features/table.js +1 -1
  258. package/dist/features/theme-tweaker.js +400 -399
  259. package/dist/features/theme-tweaker.js.map +1 -1
  260. package/dist/feedback-Dzo1xtAU.js +246 -0
  261. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  262. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-D6H7tVJi.js} +2 -2
  263. package/dist/{field-affordance-recipes-DWcNcOjh.js.map → field-affordance-recipes-D6H7tVJi.js.map} +1 -1
  264. package/dist/field-control-attributes-B6i335wr.js +18 -0
  265. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  266. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  267. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  268. package/dist/{filters-DzgSJpMK.js → filters-Dl80yYtN.js} +763 -605
  269. package/dist/filters-Dl80yYtN.js.map +1 -0
  270. package/dist/form-field-CAPdwdnZ.js +74 -0
  271. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  272. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-CgcrUbLU.js} +2 -2
  273. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-CgcrUbLU.js.map} +1 -1
  274. package/dist/{forms-C0RGnJTe.js → forms-B3W8CH7-.js} +8 -8
  275. package/dist/{forms-C0RGnJTe.js.map → forms-B3W8CH7-.js.map} +1 -1
  276. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  277. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  278. package/dist/{header-DMMxG__r.js → header-ZIIsRKxP.js} +113 -113
  279. package/dist/header-ZIIsRKxP.js.map +1 -0
  280. package/dist/hooks/use-files.d.ts +2 -0
  281. package/dist/{hooks-DB6CJ4MR.js → hooks-BitHSh-Y.js} +3 -3
  282. package/dist/{hooks-DB6CJ4MR.js.map → hooks-BitHSh-Y.js.map} +1 -1
  283. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-npxF1SLX.js} +2 -2
  284. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  285. package/dist/index.js +1 -1
  286. package/dist/{input-CvyDQlY7.js → input-7KAc7XQL.js} +6 -6
  287. package/dist/{input-CvyDQlY7.js.map → input-7KAc7XQL.js.map} +1 -1
  288. package/dist/{input-DMBwAZmr.js → input-DIREVYHs.js} +3 -3
  289. package/dist/{input-DMBwAZmr.js.map → input-DIREVYHs.js.map} +1 -1
  290. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  291. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  292. package/dist/{item-DjCcM18E.js → item-FfWnaYST.js} +99 -98
  293. package/dist/item-FfWnaYST.js.map +1 -0
  294. package/dist/layout/app-shell.js +1 -1
  295. package/dist/layout/auth.js +1 -1
  296. package/dist/layout/containers.js +1 -1
  297. package/dist/layout/header.js +1 -1
  298. package/dist/layout/hooks.js +1 -1
  299. package/dist/layout/navigation.js +1 -1
  300. package/dist/layout/page.js +1 -1
  301. package/dist/layout/settings.js +1 -1
  302. package/dist/layout/sidebar.js +2 -2
  303. package/dist/layout/workspace.js +1 -1
  304. package/dist/layout.js +11 -11
  305. package/dist/layout.types-E_GAApzO.js +30 -0
  306. package/dist/layout.types-E_GAApzO.js.map +1 -0
  307. package/dist/lib/field-control-attributes.d.ts +11 -0
  308. package/dist/lib/field-state-recipes.d.ts +2 -0
  309. package/dist/lib/format.d.ts +1 -0
  310. package/dist/lib/surface-recipes.d.ts +1 -1
  311. package/dist/lib/token-merge.generated.d.ts +6 -6
  312. package/dist/lib/utils.js +1 -1
  313. package/dist/{media-gallery-C-vChPmE.js → media-gallery-C81DAnKI.js} +6 -6
  314. package/dist/{media-gallery-C-vChPmE.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  315. package/dist/{mentions-0_4nWuI-.js → mentions-qOnedSt4.js} +236 -167
  316. package/dist/mentions-qOnedSt4.js.map +1 -0
  317. package/dist/message-BJHnn43M.js +135 -0
  318. package/dist/message-BJHnn43M.js.map +1 -0
  319. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-XkqZ_UXH.js} +11 -11
  320. package/dist/{metadata-list-C3MkU-Om.js.map → metadata-list-XkqZ_UXH.js.map} +1 -1
  321. package/dist/{navigation-DaRjthVk.js → navigation-BgtPJAhi.js} +119 -119
  322. package/dist/navigation-BgtPJAhi.js.map +1 -0
  323. package/dist/{navigation-C90-oQFq.js → navigation-Bt-v7rWP.js} +52 -46
  324. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  325. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  326. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  327. package/dist/{number-CRU3kGuk.js → number-CYqBcrSj.js} +78 -86
  328. package/dist/number-CYqBcrSj.js.map +1 -0
  329. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-BQCA2Zn2.js} +7 -7
  330. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-BQCA2Zn2.js.map} +1 -1
  331. package/dist/{overlays-BSgCtM2v.js → overlays-CC8zI3Du.js} +264 -260
  332. package/dist/overlays-CC8zI3Du.js.map +1 -0
  333. package/dist/{page-DUUKDAjo.js → page-BoQ1VaFJ.js} +13 -13
  334. package/dist/{page-DUUKDAjo.js.map → page-BoQ1VaFJ.js.map} +1 -1
  335. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-DIKspJfx.js} +4 -4
  336. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-DIKspJfx.js.map} +1 -1
  337. package/dist/{pagination-CgCjElfu.js → pagination-Br8TdV9A.js} +4 -4
  338. package/dist/{pagination-CgCjElfu.js.map → pagination-Br8TdV9A.js.map} +1 -1
  339. package/dist/{popover-B85RenIl.js → popover-k8TdUcAt.js} +10 -10
  340. package/dist/popover-k8TdUcAt.js.map +1 -0
  341. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-yn-o0kyA.js} +7 -7
  342. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  343. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-DJ0AkUan.js} +2 -2
  344. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-DJ0AkUan.js.map} +1 -1
  345. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-DyUXqUtD.js} +2 -2
  346. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-DyUXqUtD.js.map} +1 -1
  347. package/dist/{primitives-ByWgGUgt.js → primitives-BkkQjYl7.js} +22 -17
  348. package/dist/primitives-BkkQjYl7.js.map +1 -0
  349. package/dist/primitives.js +4 -4
  350. package/dist/{progress-BJhQP9WX.js → progress-DZFXXzPs.js} +4 -4
  351. package/dist/{progress-BJhQP9WX.js.map → progress-DZFXXzPs.js.map} +1 -1
  352. package/dist/{receipt-tOc7B3hw.js → receipt-C7LhOg7Q.js} +6 -6
  353. package/dist/{receipt-tOc7B3hw.js.map → receipt-C7LhOg7Q.js.map} +1 -1
  354. package/dist/rich-text-BnTzZjIo.js +45 -0
  355. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  356. package/dist/rich-text-editor-CAurDwT5.js +1273 -0
  357. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  358. package/dist/{rich-text-editor-toolbar-laT3tpBT.js → rich-text-editor-toolbar-DbXig7Jk.js} +36 -35
  359. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  360. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  361. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  362. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  363. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  364. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-Bj6CRUif.js} +2 -2
  365. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  366. package/dist/{separator-Bb17I4pu.js → separator-B9ewiCGO.js} +2 -2
  367. package/dist/{separator-Bb17I4pu.js.map → separator-B9ewiCGO.js.map} +1 -1
  368. package/dist/{separator-Ct_WSWTJ.js → separator-DM6gs2vu.js} +3 -3
  369. package/dist/{separator-Ct_WSWTJ.js.map → separator-DM6gs2vu.js.map} +1 -1
  370. package/dist/services/actions.js +1 -1
  371. package/dist/settings-DZPHgpx4.js +155 -0
  372. package/dist/settings-DZPHgpx4.js.map +1 -0
  373. package/dist/{sheet-BGPERY55.js → sheet-C4DHsgLk.js} +6 -6
  374. package/dist/{sheet-BGPERY55.js.map → sheet-C4DHsgLk.js.map} +1 -1
  375. package/dist/sidebar-C8BnDwTH.js +709 -0
  376. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  377. package/dist/{sidebar-f9gRWXIR.js → sidebar-CmD6a-HK.js} +16 -13
  378. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  379. package/dist/{skeleton-BapcJd9C.js → skeleton-DDgdhmu9.js} +5 -5
  380. package/dist/{skeleton-BapcJd9C.js.map → skeleton-DDgdhmu9.js.map} +1 -1
  381. package/dist/{smart-card-CW0hjetE.js → smart-card-B6vLxqa_.js} +8 -8
  382. package/dist/{smart-card-CW0hjetE.js.map → smart-card-B6vLxqa_.js.map} +1 -1
  383. package/dist/{structure-DuxKl954.js → structure-DZJ2wbAU.js} +2 -2
  384. package/dist/{structure-DuxKl954.js.map → structure-DZJ2wbAU.js.map} +1 -1
  385. package/dist/style.css +1 -1
  386. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  387. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  388. package/dist/{table-CFOWY9pQ.js → table-CBonSdTp.js} +534 -486
  389. package/dist/table-CBonSdTp.js.map +1 -0
  390. package/dist/{table-B4TE7iOV.js → table-CXSPHH25.js} +75 -71
  391. package/dist/table-CXSPHH25.js.map +1 -0
  392. package/dist/{tabs-e7ko9S2o.js → tabs-C4Kr_hCr.js} +50 -49
  393. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  394. package/dist/{text-inputs-B1culiSK.js → text-inputs-jdkS3ReG.js} +9 -9
  395. package/dist/{text-inputs-B1culiSK.js.map → text-inputs-jdkS3ReG.js.map} +1 -1
  396. package/dist/{timelines-D3Sl9ueq.js → timelines-CoPwdJP0.js} +10 -10
  397. package/dist/{timelines-D3Sl9ueq.js.map → timelines-CoPwdJP0.js.map} +1 -1
  398. package/dist/{tooltip-8wz5S_Zr.js → tooltip-31NwIpTo.js} +4 -4
  399. package/dist/{tooltip-8wz5S_Zr.js.map → tooltip-31NwIpTo.js.map} +1 -1
  400. package/dist/{tree-CzUJHnFs.js → tree-CeYVzdFE.js} +6 -6
  401. package/dist/{tree-CzUJHnFs.js.map → tree-CeYVzdFE.js.map} +1 -1
  402. package/dist/typography/rich-text.js +1 -1
  403. package/dist/{typography-BQnine1k.js → typography-C7-YMW1S.js} +2 -2
  404. package/dist/{typography-BQnine1k.js.map → typography-C7-YMW1S.js.map} +1 -1
  405. package/dist/typography.js +1 -1
  406. package/dist/{upload-BOW6U2tI.js → upload-Hdm5gObf.js} +303 -291
  407. package/dist/upload-Hdm5gObf.js.map +1 -0
  408. package/dist/{upload-queue-qUXn1ykN.js → upload-queue-D0sYPuqo.js} +8 -8
  409. package/dist/{upload-queue-qUXn1ykN.js.map → upload-queue-D0sYPuqo.js.map} +1 -1
  410. package/dist/{usage-card-BeSLY0i0.js → usage-card-9s8hLDfn.js} +9 -9
  411. package/dist/{usage-card-BeSLY0i0.js.map → usage-card-9s8hLDfn.js.map} +1 -1
  412. package/dist/{utils-B6kKb8jB.js → utils-DhuoqFy4.js} +31 -37
  413. package/dist/utils-DhuoqFy4.js.map +1 -0
  414. package/dist/{value-inputs-skdVB2zh.js → value-inputs-D3aPgq9H.js} +15 -15
  415. package/dist/{value-inputs-skdVB2zh.js.map → value-inputs-D3aPgq9H.js.map} +1 -1
  416. package/dist/{value-typography-uAmWUAL1.js → value-typography-uSzzG9Gf.js} +32 -26
  417. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  418. package/dist/{workspace-DHeHv0qw.js → workspace-CC8Vchiu.js} +12 -12
  419. package/dist/{workspace-DHeHv0qw.js.map → workspace-CC8Vchiu.js.map} +1 -1
  420. package/docs/consumer-skill/examples/edit.tsx +3 -3
  421. package/docs/consumer-skill/references/agents-md.md +19 -19
  422. package/docs/consumer-skill/references/analytics.md +15 -0
  423. package/docs/consumer-skill/references/component-contracts.json +14724 -13057
  424. package/docs/consumer-skill/references/composition.md +21 -4
  425. package/docs/consumer-skill/references/design-contract.md +1 -0
  426. package/docs/consumer-skill/references/installation.md +51 -8
  427. package/docs/consumer-skill/references/integration.md +24 -1
  428. package/docs/consumer-skill/references/public-api.json +172 -34
  429. package/docs/consumer-skill/references/review.md +51 -11
  430. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  431. package/docs/consumer-skill/references/theming.md +7 -2
  432. package/docs/consumer-skill/references/tokens.json +1 -1
  433. package/docs/consumer-skill/scripts/composition-policy.mjs +144 -30
  434. package/docs/consumer-skill/scripts/setup-skills.mjs +46 -9
  435. package/package.json +4 -2
  436. package/templates/admin-shell-template.tsx +1 -2
  437. package/templates/customers-template.tsx +18 -16
  438. package/dist/accordion-B9MHG0cT.js.map +0 -1
  439. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  440. package/dist/auth-DTkkshS8.js.map +0 -1
  441. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  442. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  443. package/dist/combobox-BwzoXFSG.js +0 -884
  444. package/dist/combobox-BwzoXFSG.js.map +0 -1
  445. package/dist/comments-Dmpp0YIc.js.map +0 -1
  446. package/dist/data-display-BdgCAw8T.js.map +0 -1
  447. package/dist/date-picker-RlIzKom_.js +0 -1551
  448. package/dist/date-picker-RlIzKom_.js.map +0 -1
  449. package/dist/date-pickers-DY-CpXS1.js +0 -179
  450. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  451. package/dist/feedback-Dm4izqFn.js +0 -240
  452. package/dist/feedback-Dm4izqFn.js.map +0 -1
  453. package/dist/filters-DzgSJpMK.js.map +0 -1
  454. package/dist/form-field-BriWAXyg.js +0 -63
  455. package/dist/form-field-BriWAXyg.js.map +0 -1
  456. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  457. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  458. package/dist/header-DMMxG__r.js.map +0 -1
  459. package/dist/item-DjCcM18E.js.map +0 -1
  460. package/dist/layout.types-Cn7aUzJp.js +0 -20
  461. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  462. package/dist/mentions-0_4nWuI-.js.map +0 -1
  463. package/dist/message-g8p7eVtN.js +0 -128
  464. package/dist/message-g8p7eVtN.js.map +0 -1
  465. package/dist/navigation-C90-oQFq.js.map +0 -1
  466. package/dist/navigation-DaRjthVk.js.map +0 -1
  467. package/dist/number-CRU3kGuk.js.map +0 -1
  468. package/dist/overlays-BSgCtM2v.js.map +0 -1
  469. package/dist/popover-B85RenIl.js.map +0 -1
  470. package/dist/primitives-ByWgGUgt.js.map +0 -1
  471. package/dist/rich-text-Dth5E882.js +0 -78
  472. package/dist/rich-text-Dth5E882.js.map +0 -1
  473. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  474. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  475. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  476. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  477. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  478. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  479. package/dist/settings-Bar5wiSo.js +0 -167
  480. package/dist/settings-Bar5wiSo.js.map +0 -1
  481. package/dist/sidebar-D-JYMMbY.js +0 -686
  482. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  483. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  484. package/dist/table-B4TE7iOV.js.map +0 -1
  485. package/dist/table-CFOWY9pQ.js.map +0 -1
  486. package/dist/tabs-e7ko9S2o.js.map +0 -1
  487. package/dist/upload-BOW6U2tI.js.map +0 -1
  488. package/dist/utils-B6kKb8jB.js.map +0 -1
  489. package/dist/value-typography-uAmWUAL1.js.map +0 -1
@@ -1,22 +1,23 @@
1
1
  "use client";
2
2
  import { S as e, d as t, f as n } from "./ui-provider-C-74NVLc.js";
3
3
  import { useStrings as r } from "./lib/strings.js";
4
- import { t as i } from "./utils-B6kKb8jB.js";
5
- import { n as a } from "./buttons-BedGfygC.js";
6
- import { c as o } from "./typography-BQnine1k.js";
7
- import { h as s, p as c, v as l } from "./smart-card-CW0hjetE.js";
8
- import { a as u, i as d } from "./primitives-ByWgGUgt.js";
9
- import { n as f } from "./field-affordance-recipes-DWcNcOjh.js";
10
- import { o as p } from "./item-DjCcM18E.js";
11
- import { n as ee, t as m } from "./upload.recipes-BbxTqrCT.js";
12
- import { a as te, s as ne } from "./upload-queue-qUXn1ykN.js";
13
- import { a as h, c as g, i as _, n as v, o as y, r as b, t as x } from "./attachment-Dg_69lPS.js";
14
- import * as S from "react";
15
- import C, { forwardRef as w, useCallback as T, useEffect as E, useId as re, useLayoutEffect as ie, useMemo as D, useRef as O, useState as k } from "react";
16
- import { jsx as A, jsxs as j } from "react/jsx-runtime";
17
- import { Camera as M, ImageIcon as ae, Trash2Icon as N, TriangleAlert as oe, UploadIcon as P, X as se } from "lucide-react";
4
+ import { t as i } from "./utils-DhuoqFy4.js";
5
+ import { n as a } from "./buttons-DeW0bQeK.js";
6
+ import { c as o } from "./typography-C7-YMW1S.js";
7
+ import { h as s, p as c, v as l } from "./smart-card-B6vLxqa_.js";
8
+ import { a as u, i as d } from "./primitives-BkkQjYl7.js";
9
+ import { n as f } from "./field-affordance-recipes-D6H7tVJi.js";
10
+ import { n as p } from "./field-control-attributes-B6i335wr.js";
11
+ import { o as m } from "./item-FfWnaYST.js";
12
+ import { n as ee, t as h } from "./upload.recipes-BbxTqrCT.js";
13
+ import { a as te, s as ne } from "./upload-queue-D0sYPuqo.js";
14
+ import { a as g, c as re, i as ie, n as _, o as v, r as y, t as b } from "./attachment-BCpA4e7i.js";
15
+ import * as x from "react";
16
+ import S, { forwardRef as C, useCallback as w, useEffect as ae, useId as oe, useLayoutEffect as T, useMemo as E, useRef as D, useState as O } from "react";
17
+ import { jsx as k, jsxs as A } from "react/jsx-runtime";
18
+ import { Camera as j, ImageIcon as M, Trash2Icon as N, TriangleAlert as P, UploadIcon as F, X as se } from "lucide-react";
18
19
  //#region src/components/base/upload/file-upload.strings.ts
19
- var F = {
20
+ var I = {
20
21
  instruction: "Drag files here or click to browse",
21
22
  helper: "",
22
23
  browse: "Browse files",
@@ -35,17 +36,17 @@ var F = {
35
36
  };
36
37
  //#endregion
37
38
  //#region src/components/base/upload/file-upload.validation.ts
38
- function I(e) {
39
+ function L(e) {
39
40
  return `${e.name}\u0000${e.size}\u0000${e.type}\u0000${e.lastModified}`;
40
41
  }
41
- function ce(e, t) {
42
+ function R(e, t) {
42
43
  if (!t?.trim()) return !0;
43
44
  let n = e.name.toLowerCase(), r = e.type.toLowerCase();
44
45
  return t.split(",").map((e) => e.trim().toLowerCase()).filter(Boolean).some((e) => e.startsWith(".") ? n.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r === e);
45
46
  }
46
- function L(e, t) {
47
+ function z(e, t) {
47
48
  let { accept: n, minSizeBytes: r, maxSizeBytes: i, validateFile: a, formatSize: o, strings: s } = t;
48
- if (!ce(e, n)) return {
49
+ if (!R(e, n)) return {
49
50
  file: e,
50
51
  code: "invalid-type",
51
52
  message: s.invalidType(e.name, n ?? "")
@@ -74,10 +75,10 @@ function L(e, t) {
74
75
  };
75
76
  }
76
77
  }
77
- function le({ incoming: e, current: t, accept: n, minSizeBytes: r, maxSizeBytes: i, maxFiles: a, append: o, validateFile: s, formatSize: c, strings: l }) {
78
- let u = o ? [...t] : [], d = new Set(u.map(I)), f = [], p = [];
78
+ function ce({ incoming: e, current: t, accept: n, minSizeBytes: r, maxSizeBytes: i, maxFiles: a, append: o, validateFile: s, formatSize: c, strings: l }) {
79
+ let u = o ? [...t] : [], d = new Set(u.map(L)), f = [], p = [];
79
80
  for (let t of e) {
80
- let e = L(t, {
81
+ let e = z(t, {
81
82
  accept: n,
82
83
  minSizeBytes: r,
83
84
  maxSizeBytes: i,
@@ -89,7 +90,7 @@ function le({ incoming: e, current: t, accept: n, minSizeBytes: r, maxSizeBytes:
89
90
  p.push(e);
90
91
  continue;
91
92
  }
92
- let o = I(t);
93
+ let o = L(t);
93
94
  if (d.has(o)) {
94
95
  p.push({
95
96
  file: t,
@@ -116,40 +117,40 @@ function le({ incoming: e, current: t, accept: n, minSizeBytes: r, maxSizeBytes:
116
117
  }
117
118
  //#endregion
118
119
  //#region src/components/base/upload/file-upload.tsx
119
- function R(e) {
120
+ function le(e) {
120
121
  return Object.prototype.hasOwnProperty.call(e, "value");
121
122
  }
122
- function ue(e) {
123
+ function B(e) {
123
124
  return e === void 0 || !Number.isFinite(e) ? 2 ** 53 - 1 : Math.max(1, Math.floor(e));
124
125
  }
125
- function de(e, t) {
126
+ function V(e, t) {
126
127
  return `${e.name}-${e.size}-${e.type}-${e.lastModified}-${t}`;
127
128
  }
128
- function z(e, t, n) {
129
+ function H(e, t, n) {
129
130
  t.current = e, typeof n == "function" ? n(e) : n && (n.current = e);
130
131
  }
131
- function fe({ file: e, index: t, disabled: n, size: r, locale: i, strings: s, showReplace: c, onReplace: l, onRemove: u }) {
132
+ function ue({ file: e, index: t, disabled: n, size: r, locale: i, strings: s, showReplace: c, onReplace: l, onRemove: u }) {
132
133
  let f = s.replaceFileAria(e.name), p = s.removeFileAria(e.name);
133
- return /* @__PURE__ */ j(x, {
134
+ return /* @__PURE__ */ A(b, {
134
135
  variant: "outline",
135
136
  size: r,
136
137
  className: "file-upload--file flex-nowrap bg-card text-card-foreground",
137
138
  children: [
138
- /* @__PURE__ */ A(y, {
139
+ /* @__PURE__ */ k(v, {
139
140
  variant: "icon",
140
141
  className: "file-upload--file-media self-center group-has-data-[slot=item-description]/item:self-center",
141
- children: /* @__PURE__ */ A(h, { name: e.name })
142
+ children: /* @__PURE__ */ k(g, { name: e.name })
142
143
  }),
143
- /* @__PURE__ */ j(b, {
144
+ /* @__PURE__ */ A(y, {
144
145
  className: "file-upload--file-content min-w-0",
145
- children: [/* @__PURE__ */ A(g, {
146
+ children: [/* @__PURE__ */ k(re, {
146
147
  className: "file-upload--file-name truncate",
147
148
  title: e.name,
148
149
  children: e.name
149
- }), /* @__PURE__ */ A(_, {
150
+ }), /* @__PURE__ */ k(ie, {
150
151
  className: "file-upload--file-size",
151
152
  clamp: 1,
152
- children: /* @__PURE__ */ A(d, {
153
+ children: /* @__PURE__ */ k(d, {
153
154
  value: e.size,
154
155
  locale: i,
155
156
  size: "xs",
@@ -158,26 +159,26 @@ function fe({ file: e, index: t, disabled: n, size: r, locale: i, strings: s, sh
158
159
  })
159
160
  })]
160
161
  }),
161
- /* @__PURE__ */ j(v, {
162
+ /* @__PURE__ */ A(_, {
162
163
  className: "file-upload--actions gap-space-xs",
163
- children: [c && /* @__PURE__ */ A(a, {
164
+ children: [c && /* @__PURE__ */ k(a, {
164
165
  type: "button",
165
166
  tone: "secondary",
166
167
  buttonStyle: "ghost",
167
168
  size: "sm",
168
169
  iconOnly: !0,
169
- icon: P,
170
+ icon: F,
170
171
  "aria-label": f,
171
172
  title: f,
172
173
  disabled: n,
173
174
  onClick: l,
174
- children: /* @__PURE__ */ A(o, {
175
+ children: /* @__PURE__ */ k(o, {
175
176
  tag: "span",
176
177
  size: "inherit",
177
178
  className: "sr-only",
178
179
  children: s.replace
179
180
  })
180
- }), /* @__PURE__ */ A(a, {
181
+ }), /* @__PURE__ */ k(a, {
181
182
  type: "button",
182
183
  tone: "secondary",
183
184
  buttonStyle: "ghost",
@@ -189,7 +190,7 @@ function fe({ file: e, index: t, disabled: n, size: r, locale: i, strings: s, sh
189
190
  disabled: n,
190
191
  onClick: () => u(t),
191
192
  className: "file-upload--remove text-muted-foreground hover:text-destructive focus-visible:text-destructive",
192
- children: /* @__PURE__ */ A(o, {
193
+ children: /* @__PURE__ */ k(o, {
193
194
  tag: "span",
194
195
  size: "inherit",
195
196
  className: "sr-only",
@@ -200,209 +201,213 @@ function fe({ file: e, index: t, disabled: n, size: r, locale: i, strings: s, sh
200
201
  ]
201
202
  });
202
203
  }
203
- function B(d, f) {
204
- let { accept: h, disabled: g = !1, invalid: _ = !1, size: v, minSizeBytes: y, maxSizeBytes: b, validateFile: x, onRejectedFiles: S, className: C, strings: w, multiple: E = !1, value: M, defaultValue: ae, onValueChange: N, selectionMode: P, maxFiles: se, "aria-describedby": I, "aria-invalid": ce, ...L } = d, B = r(F, w), { defaultScale: V } = t(), { locale: H } = n(), U = e(v, V), W = R(d), [pe, me] = k(() => d.multiple ? [...d.defaultValue ?? []] : d.defaultValue ? [d.defaultValue] : []), [G, he] = k([]), K = O(null), q = O(null), J = O(!1), Y = O(!1), ge = re(), X = D(() => W ? d.multiple ? d.value ?? [] : d.value ? [d.value] : [] : pe, [
205
- W,
204
+ function de(d, f) {
205
+ let { accept: p, disabled: g = !1, invalid: re = !1, size: ie, minSizeBytes: _, maxSizeBytes: v, validateFile: y, onRejectedFiles: b, className: x, strings: S, multiple: C = !1, value: ae, defaultValue: j, onValueChange: M, selectionMode: N, maxFiles: F, "aria-describedby": se, "aria-invalid": L, ...R } = d, z = r(I, S), { defaultScale: de } = t(), { locale: U } = n(), W = e(ie, de), G = le(d), [fe, pe] = O(() => d.multiple ? [...d.defaultValue ?? []] : d.defaultValue ? [d.defaultValue] : []), [K, q] = O([]), J = D(null), Y = D(null), X = D(!1), me = D(!1), he = oe(), Z = E(() => G ? d.multiple ? d.value ?? [] : d.value ? [d.value] : [] : fe, [
206
+ G,
206
207
  d.multiple,
207
208
  d.value,
208
- pe
209
+ fe
209
210
  ]);
210
- ie(() => {
211
- if (!J.current) return;
212
- let e = q.current?.querySelector(".file-upload--actions button, .file-upload--dropzone input[type=file], .file-upload--dropzone button");
213
- e && (e.focus(), J.current = !1);
214
- }, [X]);
215
- let _e = d.multiple ? d : void 0, ve = E ? ue(_e?.maxFiles) : 1, Z = E && (_e?.selectionMode ?? "append") === "append", ye = `${L.id ?? `file-upload-${ge}`}-errors`, be = [I, G.length > 0 ? ye : void 0].filter(Boolean).join(" ") || void 0, Q = _ || G.length > 0, $ = T((e) => {
216
- if (W || me(e), d.multiple) d.onValueChange?.(e);
211
+ T(() => {
212
+ if (!X.current) return;
213
+ let e = Y.current?.querySelector(".file-upload--actions button, .file-upload--dropzone input[type=file], .file-upload--dropzone button");
214
+ e && (e.focus(), X.current = !1);
215
+ }, [Z]);
216
+ let ge = d.multiple ? d : void 0, _e = C ? B(ge?.maxFiles) : 1, ve = C && (ge?.selectionMode ?? "append") === "append", ye = `${R.id ?? `file-upload-${he}`}-errors`, be = [se, K.length > 0 ? ye : void 0].filter(Boolean).join(" ") || void 0, Q = re || K.length > 0, $ = w((e) => {
217
+ if (G || pe(e), d.multiple) d.onValueChange?.(e);
217
218
  else {
218
219
  let t = e[0];
219
220
  d.onValueChange?.(t);
220
221
  }
221
- }, [W, d]), xe = T((e) => u(e, { locale: H }) ?? `${e} B`, [H]), Se = T((e) => {
222
+ }, [G, d]), xe = w((e) => u(e, { locale: U }) ?? `${e} B`, [U]), Se = w((e) => {
222
223
  if (g || e.length === 0) return !1;
223
- let t = le({
224
+ let t = ce({
224
225
  incoming: e,
225
- current: X,
226
- accept: h,
227
- minSizeBytes: y,
228
- maxSizeBytes: b,
229
- maxFiles: ve,
230
- append: Z,
231
- validateFile: x,
226
+ current: Z,
227
+ accept: p,
228
+ minSizeBytes: _,
229
+ maxSizeBytes: v,
230
+ maxFiles: _e,
231
+ append: ve,
232
+ validateFile: y,
232
233
  formatSize: xe,
233
- strings: B
234
+ strings: z
234
235
  });
235
- return he(t.rejections), t.rejections.length > 0 && S?.(t.rejections), t.accepted.length !== 0 && (J.current = !E && (Y.current || !!q.current?.contains(document.activeElement)), Y.current = !1, $(t.nextFiles), t.rejections.length === 0);
236
+ return q(t.rejections), t.rejections.length > 0 && b?.(t.rejections), t.accepted.length !== 0 && (X.current = !C && (me.current || !!Y.current?.contains(document.activeElement)), me.current = !1, $(t.nextFiles), t.rejections.length === 0);
236
237
  }, [
237
- h,
238
- Z,
238
+ p,
239
+ ve,
239
240
  $,
240
241
  g,
241
- E,
242
- X,
242
+ C,
243
+ Z,
243
244
  xe,
244
- ve,
245
+ _e,
246
+ v,
247
+ _,
245
248
  b,
246
- y,
247
- S,
248
- B,
249
- x
250
- ]), Ce = T(() => {
251
- K.current && (K.current.value = "");
252
- }, []), we = T((e) => {
253
- g || (he([]), Ce(), J.current = !!q.current?.contains(document.activeElement), $(X.filter((t, n) => n !== e)));
249
+ z,
250
+ y
251
+ ]), Ce = w(() => {
252
+ J.current && (J.current.value = "");
253
+ }, []), we = w((e) => {
254
+ g || (q([]), Ce(), X.current = !!Y.current?.contains(document.activeElement), $(Z.filter((t, n) => n !== e)));
254
255
  }, [
255
256
  Ce,
256
257
  $,
257
258
  g,
258
- X
259
- ]), Te = T(() => {
260
- g || (Y.current = !!q.current?.contains(document.activeElement), K.current?.click());
259
+ Z
260
+ ]), Te = w(() => {
261
+ g || (me.current = !!Y.current?.contains(document.activeElement), J.current?.click());
261
262
  }, [g]), { isDragging: Ee, dropTargetProps: De } = ee({
262
263
  disabled: g,
263
264
  onFiles: Se
264
265
  }), Oe = {
265
- ...L,
266
- accept: h,
267
- multiple: E,
266
+ ...R,
267
+ accept: p,
268
+ multiple: C,
268
269
  disabled: g,
269
270
  "aria-describedby": be,
270
- "aria-invalid": Q ? !0 : ce
271
- }, ke = /* @__PURE__ */ A(te, {
272
- ref: (e) => z(e, K, f),
271
+ "aria-invalid": Q ? !0 : L
272
+ }, ke = /* @__PURE__ */ k(te, {
273
+ ref: (e) => H(e, J, f),
273
274
  onDrop: Se,
274
- accept: h,
275
- multiple: E,
275
+ accept: p,
276
+ multiple: C,
276
277
  disabled: g,
277
278
  invalid: Q,
278
- size: U,
279
+ size: W,
279
280
  className: "file-upload--dropzone",
280
281
  inputProps: Oe,
281
282
  strings: {
282
- instruction: B.instruction,
283
- helper: B.helper,
284
- dragOver: B.dragOver
283
+ instruction: z.instruction,
284
+ helper: z.helper,
285
+ dragOver: z.dragOver
285
286
  },
286
- children: /* @__PURE__ */ A(a, {
287
+ children: /* @__PURE__ */ k(a, {
287
288
  type: "button",
288
289
  tone: "secondary",
289
290
  buttonStyle: "outline",
290
- size: U,
291
+ size: W,
291
292
  disabled: g,
292
293
  className: "disabled:opacity-100 aria-disabled:opacity-100",
293
294
  onClick: Te,
294
- children: B.browse
295
+ children: z.browse
295
296
  })
296
297
  });
297
- return /* @__PURE__ */ j("div", {
298
- ref: q,
298
+ return /* @__PURE__ */ A("div", {
299
+ ref: Y,
299
300
  "data-disabled": g || void 0,
300
301
  "data-invalid": Q || void 0,
301
- className: i("file-upload--component grid gap-space-md", C),
302
+ className: i("file-upload--component grid gap-space-md", x),
302
303
  children: [
303
- (E || X.length === 0) && ke,
304
- !E && X[0] && /* @__PURE__ */ j("div", {
304
+ (C || Z.length === 0) && ke,
305
+ !C && Z[0] && /* @__PURE__ */ A("div", {
305
306
  ...De,
306
307
  "data-dragging": Ee || void 0,
307
308
  "data-invalid": Q || void 0,
308
- className: i("file-upload--selected rounded-radius transition-shadow", Q && "[&_.file-upload--file]:border-destructive", !g && Ee && (Q ? m.invalidDraggingRing : m.draggingRing)),
309
- children: [/* @__PURE__ */ A(ne, {
309
+ className: i("file-upload--selected rounded-radius transition-shadow", Q && "[&_.file-upload--file]:border-destructive", !g && Ee && (Q ? h.invalidDraggingRing : h.draggingRing)),
310
+ children: [/* @__PURE__ */ k(ne, {
310
311
  ...Oe,
311
- ref: (e) => z(e, K, f),
312
+ ref: (e) => H(e, J, f),
312
313
  tabIndex: -1,
313
314
  className: "file-upload--input",
314
315
  onFiles: Se
315
- }), /* @__PURE__ */ A(fe, {
316
- file: X[0],
316
+ }), /* @__PURE__ */ k(ue, {
317
+ file: Z[0],
317
318
  index: 0,
318
319
  disabled: g,
319
- size: U,
320
- locale: H,
321
- strings: B,
320
+ size: W,
321
+ locale: U,
322
+ strings: z,
322
323
  showReplace: !0,
323
324
  onReplace: Te,
324
325
  onRemove: we
325
326
  })]
326
327
  }),
327
- E && X.length > 0 && /* @__PURE__ */ A(p, {
328
+ C && Z.length > 0 && /* @__PURE__ */ k(m, {
328
329
  className: "file-upload--files",
329
- children: X.map((e, t) => /* @__PURE__ */ A(fe, {
330
+ children: Z.map((e, t) => /* @__PURE__ */ k(ue, {
330
331
  file: e,
331
332
  index: t,
332
333
  disabled: g,
333
- size: U,
334
- locale: H,
335
- strings: B,
334
+ size: W,
335
+ locale: U,
336
+ strings: z,
336
337
  showReplace: !1,
337
338
  onReplace: Te,
338
339
  onRemove: we
339
- }, de(e, t)))
340
+ }, V(e, t)))
340
341
  }),
341
- G.length > 0 && /* @__PURE__ */ j(c, {
342
+ K.length > 0 && /* @__PURE__ */ A(c, {
342
343
  id: ye,
343
344
  tone: "destructive",
344
345
  "aria-live": "polite",
345
- className: i("file-upload--errors", U === "sm" && "p-surface-xs"),
346
+ className: i("file-upload--errors", W === "sm" && "p-surface-xs"),
346
347
  children: [
347
- /* @__PURE__ */ A(oe, { "aria-hidden": "true" }),
348
- /* @__PURE__ */ A(l, { children: B.errorsHeading }),
349
- /* @__PURE__ */ A(s, { children: /* @__PURE__ */ A("ul", {
348
+ /* @__PURE__ */ k(P, { "aria-hidden": "true" }),
349
+ /* @__PURE__ */ k(l, { children: z.errorsHeading }),
350
+ /* @__PURE__ */ k(s, { children: /* @__PURE__ */ k("ul", {
350
351
  className: "m-0 p-0 list-none grid gap-space-2xs",
351
- children: G.map((e, t) => /* @__PURE__ */ A("li", {
352
+ children: K.map((e, t) => /* @__PURE__ */ k("li", {
352
353
  className: "file-upload--error",
353
- children: /* @__PURE__ */ A(o, {
354
+ children: /* @__PURE__ */ k(o, {
354
355
  tag: "span",
355
356
  size: "xs",
356
357
  type: "error",
357
358
  children: e.message
358
359
  })
359
- }, `${e.code}-${de(e.file, t)}`))
360
+ }, `${e.code}-${V(e.file, t)}`))
360
361
  }) })
361
362
  ]
362
363
  })
363
364
  ]
364
365
  });
365
366
  }
366
- var V = w(B);
367
- V.displayName = "FileUpload";
367
+ var U = C(de);
368
+ U.displayName = "FileUpload";
368
369
  //#endregion
369
370
  //#region src/hooks/use-files.ts
370
- var H = [
371
+ var W = [
371
372
  "B",
372
373
  "KB",
373
374
  "MB",
374
375
  "GB",
375
376
  "TB"
376
377
  ];
377
- function U(e) {
378
+ function G(e) {
378
379
  if (!Number.isFinite(e) || e <= 0) return "0 B";
379
- let t = Math.min(Math.floor(Math.log(e) / Math.log(1024)), H.length - 1), n = e / 1024 ** t;
380
- return `${t === 0 ? n.toFixed(0) : Number(n.toFixed(1)).toString()} ${H[t]}`;
380
+ let t = Math.min(Math.floor(Math.log(e) / Math.log(1024)), W.length - 1), n = e / 1024 ** t;
381
+ return `${t === 0 ? n.toFixed(0) : Number(n.toFixed(1)).toString()} ${W[t]}`;
381
382
  }
382
- var W = 0;
383
+ var fe = 0;
383
384
  function pe() {
384
- return `${Date.now().toString(36)}-${(W++).toString(36)}`;
385
+ return `${Date.now().toString(36)}-${(fe++).toString(36)}`;
385
386
  }
386
- function me(e) {
387
+ function K(e) {
387
388
  return e.name.split(".").pop()?.toLowerCase() ?? "";
388
389
  }
389
- function G(e) {
390
+ function q(e) {
390
391
  return `${e.name}\u0000${e.size}\u0000${e.type}\u0000${e.lastModified}`;
391
392
  }
392
- function he(e) {
393
+ function J(e) {
393
394
  return {
394
395
  id: pe(),
395
396
  file: e,
396
397
  name: e.name,
397
398
  size: e.size,
398
- formattedSize: U(e.size),
399
+ formattedSize: G(e.size),
399
400
  type: e.type,
400
- extension: me(e),
401
+ extension: K(e),
401
402
  lastModified: e.lastModified
402
403
  };
403
404
  }
404
- function K(e, t) {
405
- let n = me(e);
405
+ function Y(e, t, n) {
406
+ let r = n.split(",").map((e) => e.trim().toLowerCase()).filter(Boolean), i = e.name.toLowerCase(), a = e.type.toLowerCase();
407
+ return r.length === 0 || r.some((e) => e.startsWith(".") ? i.endsWith(e) : e.endsWith("/*") ? a.startsWith(e.slice(0, -1)) : e.includes("/") ? a === e : t === e);
408
+ }
409
+ function X(e, t) {
410
+ let n = K(e);
406
411
  if (t?.minSize !== void 0 && e.size < t.minSize) return {
407
412
  file: e,
408
413
  code: "too-small",
@@ -413,7 +418,7 @@ function K(e, t) {
413
418
  code: "too-large",
414
419
  details: { maximumBytes: t.maxSize }
415
420
  };
416
- if (t?.allowedExtensions && !t.allowedExtensions.some((e) => e.toLowerCase().replace(/^\./, "") === n)) return {
421
+ if (t?.accept && !Y(e, n, t.accept) || t?.allowedExtensions && !t.allowedExtensions.some((e) => e.toLowerCase().replace(/^\./, "") === n)) return {
417
422
  file: e,
418
423
  code: "invalid-type",
419
424
  details: { extension: n }
@@ -432,14 +437,14 @@ function K(e, t) {
432
437
  };
433
438
  }
434
439
  }
435
- function q(e) {
440
+ function me(e) {
436
441
  return Object.fromEntries(e.map((e) => [e.file.name, e]));
437
442
  }
438
- function J(e) {
439
- let [t, n] = k([]), r = O([]), [i, a] = k([]), o = T(U, []), s = T((t, i) => {
440
- let o = Array.isArray(t) ? t : Array.from(t), s = r.current, c = i ? [] : [...s], l = new Set(c.map((e) => G(e.file))), u = [], d = [];
443
+ function he(e) {
444
+ let [t, n] = O([]), r = D([]), [i, a] = O([]), o = w(G, []), s = w((t, i) => {
445
+ let o = Array.isArray(t) ? t : Array.from(t), s = r.current, c = i ? [] : [...s], l = new Set(c.map((e) => q(e.file))), u = [], d = [];
441
446
  for (let t of o) {
442
- let n = G(t);
447
+ let n = q(t);
443
448
  if (l.has(n)) {
444
449
  d.push({
445
450
  file: t,
@@ -448,7 +453,7 @@ function J(e) {
448
453
  });
449
454
  continue;
450
455
  }
451
- let r = K(t, e);
456
+ let r = X(t, e);
452
457
  if (r) {
453
458
  d.push(r);
454
459
  continue;
@@ -461,7 +466,7 @@ function J(e) {
461
466
  });
462
467
  continue;
463
468
  }
464
- let i = he(t);
469
+ let i = J(t);
465
470
  u.push(i), c.push(i), l.add(n);
466
471
  }
467
472
  return i && u.length === 0 && d.length > 0 && (c = s), r.current = c, n(c), a(d), {
@@ -472,28 +477,28 @@ function J(e) {
472
477
  }, [e]);
473
478
  return {
474
479
  files: t,
475
- addFiles: T((e) => s(e, !1), [s]),
476
- setFiles: T((e) => s(e, !0), [s]),
477
- remove: T((e) => {
480
+ addFiles: w((e) => s(e, !1), [s]),
481
+ setFiles: w((e) => s(e, !0), [s]),
482
+ remove: w((e) => {
478
483
  let t = r.current.filter((t) => t.id !== e);
479
484
  r.current = t, n(t);
480
485
  }, []),
481
- removeAll: T(() => {
486
+ removeAll: w(() => {
482
487
  r.current = [], n([]), a([]);
483
488
  }, []),
484
489
  formatSize: o,
485
- validationErrors: q(i),
490
+ validationErrors: me(i),
486
491
  rejections: i
487
492
  };
488
493
  }
489
494
  //#endregion
490
495
  //#region src/components/base/upload/image-upload.tsx
491
- var Y = 2, ge = {
496
+ var Z = 2, ge = {
492
497
  square: "aspect-square",
493
498
  standard: "aspect-[4/3]",
494
499
  widescreen: "aspect-[16/9]",
495
500
  portrait: "aspect-[9/16]"
496
- }, X = {
501
+ }, _e = {
497
502
  select: "Select image",
498
503
  change: "Change image",
499
504
  remove: "Remove",
@@ -509,7 +514,7 @@ var Y = 2, ge = {
509
514
  customValidationFailed: (e) => `${e} did not pass validation.`,
510
515
  moreFiles: (e) => `+ ${e} more file${e === 1 ? "" : "s"}`
511
516
  };
512
- function _e(e, t, n) {
517
+ function ve(e, t, n) {
513
518
  let { file: r, code: i, details: a } = e;
514
519
  switch (i) {
515
520
  case "invalid-type": return t.invalidType(r.name, a.extension ?? "");
@@ -520,8 +525,8 @@ function _e(e, t, n) {
520
525
  case "custom": return a.customMessage ?? t.customValidationFailed(r.name);
521
526
  }
522
527
  }
523
- function ve({ accept: e = ".png,.jpg,.jpeg,.gif,.svg", multiple: t = !1, value: n, onValueChange: s, disabled: c, initialPreviewUrl: l, aspectRatio: u = "square", fit: d = "cover", maxWidth: f, layout: p = "stacked", invalid: te, strings: ne }, h) {
524
- let g = r(X, ne), _ = re(), v = O(null), y = D(() => {
528
+ function ye({ accept: e = ".png,.jpg,.jpeg,.gif,.svg", multiple: t = !1, value: n, onValueChange: s, disabled: c, initialPreviewUrl: l, aspectRatio: u = "square", fit: d = "cover", maxWidth: f, layout: m = "stacked", invalid: te, strings: ne, id: g, "aria-label": re, "aria-labelledby": ie, "aria-describedby": _, "aria-invalid": v }, y) {
529
+ let b = r(_e, ne), { invalid: x, ariaInvalid: S } = p(te, v), C = oe(), T = D(null), j = E(() => {
525
530
  if (!e) return [
526
531
  "png",
527
532
  "jpg",
@@ -539,168 +544,173 @@ function ve({ accept: e = ".png,.jpg,.jpeg,.gif,.svg", multiple: t = !1, value:
539
544
  return e.toLowerCase();
540
545
  }).filter((e) => !!e);
541
546
  if (t.length !== 0) return Array.from(new Set(t));
542
- }, [e]), { files: b, setFiles: x, remove: S, removeAll: C, formatSize: w, rejections: ie } = J(D(() => ({
547
+ }, [e]), { files: N, setFiles: P, remove: F, removeAll: se, formatSize: I, rejections: L } = he(E(() => ({
543
548
  maxFiles: t ? void 0 : 1,
544
- maxSize: Y * 1024 * 1024,
545
- allowedExtensions: y
546
- }), [t, y]));
547
- E(() => {
548
- n ? x([n]) : (C(), v.current && (v.current.value = ""));
549
+ maxSize: Z * 1024 * 1024,
550
+ allowedExtensions: j
551
+ }), [t, j]));
552
+ ae(() => {
553
+ n ? P([n]) : (se(), T.current && (T.current.value = ""));
549
554
  }, [
550
555
  n,
551
- x,
552
- C
556
+ P,
557
+ se
553
558
  ]);
554
- let M = b[0], N = M ? g.change : g.select, [oe, P] = k(void 0), se = D(() => !y || y.length === 0 ? null : y.map((e) => e.toUpperCase()).join(", "), [y]);
555
- E(() => {
556
- let e = M?.file ?? n;
559
+ let R = N[0], z = R ? b.change : b.select, [ce, le] = O(void 0), B = E(() => !j || j.length === 0 ? null : j.map((e) => e.toUpperCase()).join(", "), [j]);
560
+ ae(() => {
561
+ let e = R?.file ?? n;
557
562
  if (!e) {
558
- P(void 0);
563
+ le(void 0);
559
564
  return;
560
565
  }
561
566
  let t = URL.createObjectURL(e);
562
- return P(t), () => URL.revokeObjectURL(t);
563
- }, [M, n]);
564
- let F = oe ?? l, I = !!F, ce = M?.name ?? g.previewAlt ?? X.previewAlt, L = ge[u] ?? ge.square, le = d === "contain" ? "object-contain p-space-sm" : "object-cover", R = f ? typeof f == "number" ? `${f}px` : f : "240px", ue = p === "inline" ? void 0 : { maxWidth: R }, de = p === "inline" ? {
565
- maxWidth: f ? R : "185px",
567
+ return le(t), () => URL.revokeObjectURL(t);
568
+ }, [R, n]);
569
+ let V = ce ?? l, H = !!V, ue = R?.name ?? b.previewAlt ?? _e.previewAlt, de = ge[u] ?? ge.square, U = d === "contain" ? "object-contain p-space-sm" : "object-cover", W = f ? typeof f == "number" ? `${f}px` : f : "240px", G = m === "inline" ? void 0 : { maxWidth: W }, fe = m === "inline" ? {
570
+ maxWidth: f ? W : "185px",
566
571
  width: "100%"
567
- } : void 0, z = T((e) => {
572
+ } : void 0, pe = w((e) => {
568
573
  if (c || e.length === 0) return;
569
- let t = x(e).accepted[0]?.file;
574
+ let t = P(e).accepted[0]?.file;
570
575
  t && s?.(t);
571
576
  }, [
572
577
  c,
573
- x,
578
+ P,
574
579
  s
575
- ]), fe = T((e) => {
576
- z(Array.from(e.target.files ?? []));
577
- }, [z]), { isDragging: B, dropTargetProps: V } = ee({
580
+ ]), K = w((e) => {
581
+ pe(Array.from(e.target.files ?? []));
582
+ }, [pe]), { isDragging: q, dropTargetProps: J } = ee({
578
583
  disabled: c,
579
- onFiles: z
580
- }), H = T(() => {
581
- c || v.current?.click();
582
- }, [c]), U = T(() => {
583
- M && S(M.id), s?.(void 0), v.current && (v.current.value = "");
584
+ onFiles: pe
585
+ }), Y = w(() => {
586
+ c || T.current?.click();
587
+ }, [c]), X = w(() => {
588
+ R && F(R.id), s?.(void 0), T.current && (T.current.value = "");
584
589
  }, [
585
- M,
586
- S,
590
+ R,
591
+ F,
587
592
  s
588
593
  ]);
589
- return /* @__PURE__ */ j("div", {
594
+ return /* @__PURE__ */ A("div", {
590
595
  className: i("image-upload--component", "grid gap-space-md"),
591
- style: ue,
596
+ style: G,
592
597
  children: [
593
- /* @__PURE__ */ A("input", {
598
+ /* @__PURE__ */ k("input", {
594
599
  ref: (e) => {
595
- v.current = e, typeof h == "function" ? h(e) : h && (h.current = e);
600
+ T.current = e, typeof y == "function" ? y(e) : y && (y.current = e);
596
601
  },
597
- id: _,
602
+ id: C,
598
603
  type: "file",
599
604
  className: "sr-only",
600
605
  tabIndex: -1,
601
- "aria-label": N,
606
+ "aria-label": z,
602
607
  accept: e,
603
608
  multiple: t,
604
609
  disabled: c,
605
- onChange: fe
610
+ onChange: K
606
611
  }),
607
- /* @__PURE__ */ j("div", {
608
- className: i(p === "inline" ? "flex flex-wrap items-start gap-space-xl" : "grid gap-space-md"),
609
- children: [/* @__PURE__ */ A("div", {
610
- ...V,
611
- "data-dragging": B || void 0,
612
- className: i("relative overflow-hidden rounded-surface border transition-colors", p === "inline" ? "flex-shrink-0 w-full" : "w-full", L, I ? "border-border bg-muted" : i("border-dashed bg-background text-muted-foreground", m.idle), te && m.invalid, !c && B && m.dragging),
613
- style: de,
614
- children: I && F ? /* @__PURE__ */ A("img", {
615
- src: F,
616
- alt: ce,
617
- className: i("absolute inset-0 box-border h-full w-full", le)
618
- }) : /* @__PURE__ */ A("div", {
612
+ /* @__PURE__ */ A("div", {
613
+ className: i(m === "inline" ? "flex flex-wrap items-start gap-space-xl" : "grid gap-space-md"),
614
+ children: [/* @__PURE__ */ k("div", {
615
+ ...J,
616
+ "data-dragging": q || void 0,
617
+ className: i("relative overflow-hidden rounded-surface border transition-colors", m === "inline" ? "flex-shrink-0 w-full" : "w-full", de, H ? "border-border bg-muted" : i("border-dashed bg-background text-muted-foreground", h.idle), x && h.invalid, !c && q && h.dragging),
618
+ style: fe,
619
+ children: H && V ? /* @__PURE__ */ k("img", {
620
+ src: V,
621
+ alt: ue,
622
+ className: i("absolute inset-0 box-border h-full w-full", U)
623
+ }) : /* @__PURE__ */ k("div", {
619
624
  className: "absolute inset-0 flex items-center justify-center",
620
- children: /* @__PURE__ */ A(ae, {
625
+ children: /* @__PURE__ */ k(M, {
621
626
  "aria-hidden": !0,
622
627
  className: "size-icon-lg"
623
628
  })
624
629
  })
625
- }), /* @__PURE__ */ j("div", {
626
- className: i("grid gap-space-sm", p === "inline" && "flex-1 min-w-0 basis-40"),
630
+ }), /* @__PURE__ */ A("div", {
631
+ className: i("grid gap-space-sm", m === "inline" && "flex-1 min-w-0 basis-40"),
627
632
  children: [
628
- /* @__PURE__ */ j("div", {
633
+ /* @__PURE__ */ A("div", {
629
634
  className: "flex flex-wrap items-center gap-space-md",
630
- children: [/* @__PURE__ */ A(a, {
635
+ children: [/* @__PURE__ */ k(a, {
631
636
  type: "button",
637
+ id: g,
638
+ "aria-label": re,
639
+ "aria-labelledby": ie,
640
+ "aria-describedby": _,
641
+ "aria-invalid": S,
632
642
  tone: "secondary",
633
643
  buttonStyle: "outline",
634
- onClick: H,
644
+ onClick: Y,
635
645
  disabled: c,
636
- children: N
637
- }), !M && !!I && /* @__PURE__ */ A(o, {
646
+ children: z
647
+ }), !R && !!H && /* @__PURE__ */ k(o, {
638
648
  size: "xs",
639
649
  type: "secondary",
640
- children: g.keepCurrent
650
+ children: b.keepCurrent
641
651
  })]
642
652
  }),
643
- !!se && /* @__PURE__ */ A(o, {
653
+ !!B && /* @__PURE__ */ k(o, {
644
654
  size: "xs",
645
655
  type: "secondary",
646
- children: g.supportsTemplate.replace("{ext}", se).replace("{size}", String(Y))
656
+ children: b.supportsTemplate.replace("{ext}", B).replace("{size}", String(Z))
647
657
  }),
648
- !!M && /* @__PURE__ */ j("div", {
658
+ !!R && /* @__PURE__ */ A("div", {
649
659
  className: "grid gap-space-2xs",
650
660
  children: [
651
- /* @__PURE__ */ A(o, {
661
+ /* @__PURE__ */ k(o, {
652
662
  weight: "medium",
653
- title: M.name,
663
+ title: R.name,
654
664
  className: "truncate",
655
- children: M.name
665
+ children: R.name
656
666
  }),
657
- /* @__PURE__ */ A(o, {
667
+ /* @__PURE__ */ k(o, {
658
668
  size: "xs",
659
669
  type: "secondary",
660
- children: M.formattedSize
670
+ children: R.formattedSize
661
671
  }),
662
- !!t && b.length > 1 && /* @__PURE__ */ A(o, {
672
+ !!t && N.length > 1 && /* @__PURE__ */ k(o, {
663
673
  size: "xs",
664
674
  type: "secondary",
665
- children: g.moreFiles(b.length - 1)
675
+ children: b.moreFiles(N.length - 1)
666
676
  }),
667
- /* @__PURE__ */ A(a, {
677
+ /* @__PURE__ */ k(a, {
668
678
  type: "button",
669
679
  tone: "destructive",
670
680
  buttonStyle: "ghost",
671
681
  size: "sm",
672
- onClick: U,
682
+ onClick: X,
673
683
  className: "justify-self-start",
674
- children: g.remove
684
+ children: b.remove
675
685
  })
676
686
  ]
677
687
  }),
678
- !M && !I && /* @__PURE__ */ A(o, {
688
+ !R && !H && /* @__PURE__ */ k(o, {
679
689
  size: "xs",
680
690
  type: "secondary",
681
- children: g.noSelection
691
+ children: b.noSelection
682
692
  })
683
693
  ]
684
694
  })]
685
695
  }),
686
- ie.length > 0 && /* @__PURE__ */ A("div", {
696
+ L.length > 0 && /* @__PURE__ */ k("div", {
687
697
  className: "image-upload--errors grid gap-space-2xs",
688
698
  role: "alert",
689
699
  "aria-live": "polite",
690
- children: ie.map((e, t) => /* @__PURE__ */ A(o, {
700
+ children: L.map((e, t) => /* @__PURE__ */ k(o, {
691
701
  size: "xs",
692
702
  type: "error",
693
- children: _e(e, g, w)
703
+ children: ve(e, b, I)
694
704
  }, `${e.file.name}-${e.code}-${t}`))
695
705
  })
696
706
  ]
697
707
  });
698
708
  }
699
- var Z = C.forwardRef(ve);
700
- Z.displayName = "ImageUpload";
709
+ var be = S.forwardRef(ye);
710
+ be.displayName = "ImageUpload";
701
711
  //#endregion
702
712
  //#region src/components/base/upload/avatar-upload.tsx
703
- var ye = {
713
+ var Q = {
704
714
  change: "Change photo",
705
715
  remove: "Remove photo",
706
716
  hint: "Click or drop an image",
@@ -712,7 +722,7 @@ var ye = {
712
722
  duplicate: (e) => `${e} is already selected.`,
713
723
  customValidationFailed: (e) => `${e} did not pass validation.`
714
724
  };
715
- function be(e, t, n) {
725
+ function $(e, t, n) {
716
726
  let { file: r, code: i, details: a } = e;
717
727
  switch (i) {
718
728
  case "invalid-type": return t.invalidType(r.name, a.extension ?? "");
@@ -723,7 +733,7 @@ function be(e, t, n) {
723
733
  case "custom": return a.customMessage ?? t.customValidationFailed(r.name);
724
734
  }
725
735
  }
726
- var Q = {
736
+ var xe = {
727
737
  sm: {
728
738
  box: "size-upload-avatar-small",
729
739
  icon: "size-icon",
@@ -740,116 +750,118 @@ var Q = {
740
750
  remove: "size-action-lg"
741
751
  }
742
752
  };
743
- function $({ value: n, onValueChange: a, initialPreviewUrl: s, accept: c = ".png,.jpg,.jpeg,.gif,.webp", disabled: l = !1, invalid: u = !1, size: d, className: p, strings: te, initials: ne }, h) {
744
- let { defaultScale: g } = t(), _ = e(d, g), v = r(ye, te), y = re(), b = O(null), x = Q[_], { files: S, setFiles: C, removeAll: w, formatSize: ie, rejections: ae } = J({
753
+ function Se({ value: n, onValueChange: a, initialPreviewUrl: s, accept: c = ".png,.jpg,.jpeg,.gif,.webp", disabled: l = !1, invalid: u, size: d, className: m, strings: te, initials: ne, id: g, "aria-label": re, "aria-labelledby": ie, "aria-describedby": _, "aria-invalid": v }, y) {
754
+ let { defaultScale: b } = t(), x = e(d, b), S = r(Q, te), C = oe(), { invalid: T, ariaInvalid: E } = p(u, v), M = D(null), N = xe[x], { files: P, setFiles: F, removeAll: I, formatSize: L, rejections: R } = he({
745
755
  maxFiles: 1,
746
- allowedExtensions: D(() => c.split(",").map((e) => e.trim().replace(/^\./, "").toLowerCase()).filter(Boolean), [c])
756
+ accept: c
747
757
  });
748
- E(() => {
749
- n ? C([n]) : w();
758
+ ae(() => {
759
+ n ? F([n]) : I();
750
760
  }, [n]);
751
- let N = S[0], [oe, P] = k(void 0);
752
- E(() => {
753
- let e = N?.file ?? n;
761
+ let z = P[0], [ce, le] = O(void 0);
762
+ ae(() => {
763
+ let e = z?.file ?? n;
754
764
  if (!e) {
755
- P(void 0);
765
+ le(void 0);
756
766
  return;
757
767
  }
758
768
  let t = URL.createObjectURL(e);
759
- return P(t), () => URL.revokeObjectURL(t);
760
- }, [N, n]);
761
- let F = oe ?? s, I = !!F, ce = T((e) => {
769
+ return le(t), () => URL.revokeObjectURL(t);
770
+ }, [z, n]);
771
+ let B = ce ?? s, V = !!B, H = w((e) => {
762
772
  let t = e.target.files;
763
773
  if (!t || t.length === 0) return;
764
- let n = C(t).accepted[0]?.file;
765
- n && a?.(n), b.current && (b.current.value = "");
766
- }, [a, C]), L = T(() => {
767
- w(), a?.(void 0), b.current && (b.current.value = "");
768
- }, [a, w]), le = T((e) => {
769
- let t = C(e).accepted[0]?.file;
774
+ let n = F(t).accepted[0]?.file;
775
+ n && a?.(n), M.current && (M.current.value = "");
776
+ }, [a, F]), ue = w(() => {
777
+ I(), a?.(void 0), M.current && (M.current.value = "");
778
+ }, [a, I]), de = w((e) => {
779
+ let t = F(e).accepted[0]?.file;
770
780
  t && a?.(t);
771
- }, [a, C]), { isDragging: R, dropTargetProps: ue } = ee({
781
+ }, [a, F]), { isDragging: U, dropTargetProps: W } = ee({
772
782
  disabled: l,
773
- onFiles: le
783
+ onFiles: de
774
784
  });
775
- return /* @__PURE__ */ j("div", {
776
- className: i("avatar-upload--component", "inline-flex w-fit flex-col items-start gap-space-md self-start", p),
785
+ return /* @__PURE__ */ A("div", {
786
+ className: i("avatar-upload--component", "inline-flex w-fit flex-col items-start gap-space-md self-start", m),
777
787
  children: [
778
- /* @__PURE__ */ j("div", {
779
- ...ue,
780
- className: i("group relative flex shrink-0 items-center justify-center rounded-full", "border transition-colors duration-150 outline-none", "has-[input:focus-visible]:ring-3", I ? "border-border bg-muted" : i("border-dashed bg-muted", !l && m.hover, m.idle), u ? i(m.invalid, m.focus.input.invalid) : m.focus.input.valid, l && "cursor-not-allowed opacity-50", !l && R && m.dragging, x.box),
788
+ /* @__PURE__ */ A("div", {
789
+ ...W,
790
+ className: i("group relative flex shrink-0 items-center justify-center rounded-full", "border transition-colors duration-150 outline-none", "has-[input:focus-visible]:ring-3", V ? "border-border bg-muted" : i("border-dashed bg-muted", !l && h.hover, h.idle), T ? i(h.invalid, h.focus.input.invalid) : h.focus.input.valid, l && "cursor-not-allowed opacity-50", !l && U && h.dragging, N.box),
781
791
  children: [
782
- /* @__PURE__ */ A("input", {
783
- id: y,
792
+ /* @__PURE__ */ k("input", {
793
+ id: g ?? C,
784
794
  ref: (e) => {
785
- b.current = e, typeof h == "function" ? h(e) : h && (h.current = e);
795
+ M.current = e, typeof y == "function" ? y(e) : y && (y.current = e);
786
796
  },
787
797
  type: "file",
788
798
  className: "absolute inset-0 z-10 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed",
789
- "aria-label": v.change,
790
- "aria-invalid": u || void 0,
799
+ "aria-label": re ?? S.change,
800
+ "aria-labelledby": ie,
801
+ "aria-describedby": _,
802
+ "aria-invalid": E,
791
803
  accept: c,
792
804
  disabled: l,
793
- onChange: ce
805
+ onChange: H
794
806
  }),
795
- /* @__PURE__ */ j("div", {
807
+ /* @__PURE__ */ A("div", {
796
808
  className: "pointer-events-none absolute inset-0 flex items-center justify-center overflow-hidden rounded-full",
797
- children: [I && F ? /* @__PURE__ */ A("img", {
798
- src: F,
799
- alt: v.change,
809
+ children: [V && B ? /* @__PURE__ */ k("img", {
810
+ src: B,
811
+ alt: S.change,
800
812
  className: "absolute inset-0 size-full object-cover"
801
- }) : ne ? /* @__PURE__ */ A(o, {
802
- size: _ === "sm" ? "sm" : _ === "lg" ? "lg" : "base",
813
+ }) : ne ? /* @__PURE__ */ k(o, {
814
+ size: x === "sm" ? "sm" : x === "lg" ? "lg" : "base",
803
815
  weight: "medium",
804
816
  lineHeight: "none",
805
817
  children: ne
806
- }) : /* @__PURE__ */ A(M, {
807
- className: i(x.icon, "text-muted-foreground"),
818
+ }) : /* @__PURE__ */ k(j, {
819
+ className: i(N.icon, "text-muted-foreground"),
808
820
  "aria-hidden": "true"
809
- }), !l && I && /* @__PURE__ */ A("div", {
821
+ }), !l && V && /* @__PURE__ */ k("div", {
810
822
  className: "absolute inset-0 hidden items-center justify-center bg-inverse-background/60 text-inverse-foreground group-hover:flex",
811
823
  "aria-hidden": "true",
812
- children: /* @__PURE__ */ A(M, { className: x.icon })
824
+ children: /* @__PURE__ */ k(j, { className: N.icon })
813
825
  })]
814
826
  }),
815
- !l && I && /* @__PURE__ */ A("button", {
827
+ !l && V && /* @__PURE__ */ k("button", {
816
828
  type: "button",
817
- "aria-label": v.remove,
829
+ "aria-label": S.remove,
818
830
  onClick: (e) => {
819
- e.stopPropagation(), L();
831
+ e.stopPropagation(), ue();
820
832
  },
821
- className: i(f.target, f.focus, "absolute end-0.5 top-0.5 z-10 bg-card text-card-foreground shadow-sm ring-1 ring-border", "opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100 group-focus-within:opacity-100 focus-visible:opacity-100", x.remove),
822
- children: /* @__PURE__ */ A(se, { className: f.icon })
833
+ className: i(f.target, f.focus, "absolute end-0.5 top-0.5 z-10 bg-card text-card-foreground shadow-sm ring-1 ring-border", "opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100 group-focus-within:opacity-100 focus-visible:opacity-100", N.remove),
834
+ children: /* @__PURE__ */ k(se, { className: f.icon })
823
835
  }),
824
- !l && !I && R && /* @__PURE__ */ A(o, {
836
+ !l && !V && U && /* @__PURE__ */ k(o, {
825
837
  size: "xs",
826
838
  weight: "medium",
827
839
  className: "absolute inset-x-0 bottom-1.5 text-center text-primary-accent",
828
- children: v.dragOver
840
+ children: S.dragOver
829
841
  })
830
842
  ]
831
843
  }),
832
- !I && /* @__PURE__ */ A(o, {
844
+ !V && /* @__PURE__ */ k(o, {
833
845
  size: "xs",
834
846
  type: "secondary",
835
- children: v.hint
847
+ children: S.hint
836
848
  }),
837
- ae.length > 0 && /* @__PURE__ */ A("div", {
849
+ R.length > 0 && /* @__PURE__ */ k("div", {
838
850
  className: "avatar-upload--errors grid gap-space-2xs",
839
851
  role: "alert",
840
852
  "aria-live": "polite",
841
- children: ae.map((e, t) => /* @__PURE__ */ A(o, {
853
+ children: R.map((e, t) => /* @__PURE__ */ k(o, {
842
854
  size: "xs",
843
855
  type: "error",
844
- children: be(e, v, ie)
856
+ children: $(e, S, L)
845
857
  }, `${e.file.name}-${e.code}-${t}`))
846
858
  })
847
859
  ]
848
860
  });
849
861
  }
850
- var xe = S.forwardRef($);
851
- xe.displayName = "AvatarUpload";
862
+ var Ce = x.forwardRef(Se);
863
+ Ce.displayName = "AvatarUpload";
852
864
  //#endregion
853
- export { V as a, X as i, ye as n, F as o, Z as r, xe as t };
865
+ export { U as a, _e as i, Q as n, I as o, be as r, Ce as t };
854
866
 
855
- //# sourceMappingURL=upload-BOW6U2tI.js.map
867
+ //# sourceMappingURL=upload-Hdm5gObf.js.map