themelia-react-ui 0.0.0-stage → 1.0.1

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 (1367) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/LICENSE +21 -0
  3. package/README.md +282 -2
  4. package/THIRD_PARTY_NOTICES.md +65 -0
  5. package/dist/accordion-B-5Focs8.js +205 -0
  6. package/dist/accordion-B-5Focs8.js.map +1 -0
  7. package/dist/action-menu-Cx3SdfbN.js +265 -0
  8. package/dist/action-menu-Cx3SdfbN.js.map +1 -0
  9. package/dist/action-presentation.js +11 -0
  10. package/dist/action-presentation.js.map +1 -0
  11. package/dist/affordance-geometry.generated-D8Jcfb0G.js +32 -0
  12. package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +1 -0
  13. package/dist/ai-artifact-B5tPpXnS.js +1121 -0
  14. package/dist/ai-artifact-B5tPpXnS.js.map +1 -0
  15. package/dist/anchored-positioning-DPnKTvNs.js +6 -0
  16. package/dist/anchored-positioning-DPnKTvNs.js.map +1 -0
  17. package/dist/app-shell-at8Kt4l_.js +235 -0
  18. package/dist/app-shell-at8Kt4l_.js.map +1 -0
  19. package/dist/attachment-BO2R47wn.js +244 -0
  20. package/dist/attachment-BO2R47wn.js.map +1 -0
  21. package/dist/auth-OFwWSAap.js +704 -0
  22. package/dist/auth-OFwWSAap.js.map +1 -0
  23. package/dist/avatar-Bpzty83c.js +178 -0
  24. package/dist/avatar-Bpzty83c.js.map +1 -0
  25. package/dist/badge-BZXZT9wd.js +92 -0
  26. package/dist/badge-BZXZT9wd.js.map +1 -0
  27. package/dist/base/accordion.js +3 -0
  28. package/dist/base/action-menu.js +3 -0
  29. package/dist/base/attachment.js +3 -0
  30. package/dist/base/avatar.js +3 -0
  31. package/dist/base/badge.js +3 -0
  32. package/dist/base/buttons.js +3 -0
  33. package/dist/base/cards.js +4 -0
  34. package/dist/base/carousel.js +251 -0
  35. package/dist/base/carousel.js.map +1 -0
  36. package/dist/base/cascader.js +361 -0
  37. package/dist/base/cascader.js.map +1 -0
  38. package/dist/base/chart.js +3 -0
  39. package/dist/base/choice-inputs.js +4 -0
  40. package/dist/base/code-block.js +3 -0
  41. package/dist/base/combobox.js +3 -0
  42. package/dist/base/command.js +3 -0
  43. package/dist/base/copyable.js +3 -0
  44. package/dist/base/date-pickers.js +4 -0
  45. package/dist/base/display.js +8 -0
  46. package/dist/base/feedback.js +5 -0
  47. package/dist/base/forms-numeric.js +3 -0
  48. package/dist/base/forms.js +4 -0
  49. package/dist/base/inline-edit.js +236 -0
  50. package/dist/base/inline-edit.js.map +1 -0
  51. package/dist/base/item.js +3 -0
  52. package/dist/base/media-gallery.js +3 -0
  53. package/dist/base/navigation.js +8 -0
  54. package/dist/base/popover-menu.js +3 -0
  55. package/dist/base/popover.js +3 -0
  56. package/dist/base/qr-code.js +63 -0
  57. package/dist/base/qr-code.js.map +1 -0
  58. package/dist/base/repeaters.js +620 -0
  59. package/dist/base/repeaters.js.map +1 -0
  60. package/dist/base/sheet.js +3 -0
  61. package/dist/base/sidebar.js +3 -0
  62. package/dist/base/signature-pad.js +364 -0
  63. package/dist/base/signature-pad.js.map +1 -0
  64. package/dist/base/skeleton.js +3 -0
  65. package/dist/base/spinner.js +3 -0
  66. package/dist/base/structure.js +3 -0
  67. package/dist/base/table.js +3 -0
  68. package/dist/base/text-inputs.js +4 -0
  69. package/dist/base/toaster.js +102 -0
  70. package/dist/base/toaster.js.map +1 -0
  71. package/dist/base/tree.js +3 -0
  72. package/dist/base/upload-queue.js +3 -0
  73. package/dist/base/upload.js +5 -0
  74. package/dist/base/value-inputs.js +3 -0
  75. package/dist/blocks/admin.js +478 -0
  76. package/dist/blocks/admin.js.map +1 -0
  77. package/dist/blocks/ai.js +1021 -0
  78. package/dist/blocks/ai.js.map +1 -0
  79. package/dist/blocks/analytics/usage-card.js +3 -0
  80. package/dist/blocks/analytics.js +1500 -0
  81. package/dist/blocks/analytics.js.map +1 -0
  82. package/dist/blocks/collaboration.js +3 -0
  83. package/dist/blocks/commerce/receipt.js +3 -0
  84. package/dist/blocks/commerce.js +3393 -0
  85. package/dist/blocks/commerce.js.map +1 -0
  86. package/dist/blocks/data-display.js +3 -0
  87. package/dist/blocks/onboarding.js +128 -0
  88. package/dist/blocks/onboarding.js.map +1 -0
  89. package/dist/blocks/planning.js +311 -0
  90. package/dist/blocks/planning.js.map +1 -0
  91. package/dist/blocks/timelines.js +3 -0
  92. package/dist/breadcrumbs-DdQ_I5ra.js +127 -0
  93. package/dist/breadcrumbs-DdQ_I5ra.js.map +1 -0
  94. package/dist/button-BS6l5JUw.js +47 -0
  95. package/dist/button-BS6l5JUw.js.map +1 -0
  96. package/dist/buttons-Co6GavvM.js +674 -0
  97. package/dist/buttons-Co6GavvM.js.map +1 -0
  98. package/dist/cards-Cum56XOF.js +66 -0
  99. package/dist/cards-Cum56XOF.js.map +1 -0
  100. package/dist/chart-DVfcwQu6.js +149 -0
  101. package/dist/chart-DVfcwQu6.js.map +1 -0
  102. package/dist/checkbox-BavDRjF7.js +34 -0
  103. package/dist/checkbox-BavDRjF7.js.map +1 -0
  104. package/dist/choice-inputs-CC7XqPQO.js +619 -0
  105. package/dist/choice-inputs-CC7XqPQO.js.map +1 -0
  106. package/dist/code-block-xHKbAJDj.js +183 -0
  107. package/dist/code-block-xHKbAJDj.js.map +1 -0
  108. package/dist/collapsible-DsnktFNv.js +81 -0
  109. package/dist/collapsible-DsnktFNv.js.map +1 -0
  110. package/dist/collection-content-C4fthJV_.js +53 -0
  111. package/dist/collection-content-C4fthJV_.js.map +1 -0
  112. package/dist/combobox-DEbdr-3u.js +273 -0
  113. package/dist/combobox-DEbdr-3u.js.map +1 -0
  114. package/dist/combobox-xv3yJbzl.js +850 -0
  115. package/dist/combobox-xv3yJbzl.js.map +1 -0
  116. package/dist/command-C0xe7u9B.js +421 -0
  117. package/dist/command-C0xe7u9B.js.map +1 -0
  118. package/dist/comments-DviPLnwy.js +1132 -0
  119. package/dist/comments-DviPLnwy.js.map +1 -0
  120. package/dist/component-vocabulary.js +26 -0
  121. package/dist/component-vocabulary.js.map +1 -0
  122. package/dist/components/base/accordion/accordion-variants.d.ts +36 -0
  123. package/dist/components/base/accordion/accordion.d.ts +20 -0
  124. package/dist/components/base/accordion/accordion.strings.d.ts +15 -0
  125. package/dist/components/base/accordion/accordion.types.d.ts +74 -0
  126. package/dist/components/base/accordion/index.d.ts +4 -0
  127. package/dist/components/base/accordion/smart-accordion.d.ts +7 -0
  128. package/dist/components/base/action-menu/action-menu.d.ts +147 -0
  129. package/dist/components/base/action-menu/action-menu.strings.d.ts +4 -0
  130. package/dist/components/base/action-menu/index.d.ts +11 -0
  131. package/dist/components/base/attachment/attachment.d.ts +17 -0
  132. package/dist/components/base/attachment/attachment.types.d.ts +49 -0
  133. package/dist/components/base/attachment/index.d.ts +2 -0
  134. package/dist/components/base/avatar/avatar.d.ts +24 -0
  135. package/dist/components/base/avatar/index.d.ts +14 -0
  136. package/dist/components/base/avatar/stacked-avatars.d.ts +39 -0
  137. package/dist/components/base/badge/badge.d.ts +22 -0
  138. package/dist/components/base/badge/badge.recipes.d.ts +20 -0
  139. package/dist/components/base/badge/index.d.ts +2 -0
  140. package/dist/components/base/buttons/base-button.d.ts +24 -0
  141. package/dist/components/base/buttons/button-group.d.ts +28 -0
  142. package/dist/components/base/buttons/button-group.recipes.d.ts +6 -0
  143. package/dist/components/base/buttons/button.d.ts +47 -0
  144. package/dist/components/base/buttons/button.recipes.d.ts +23 -0
  145. package/dist/components/base/buttons/button.variants.d.ts +8 -0
  146. package/dist/components/base/buttons/index.d.ts +7 -0
  147. package/dist/components/base/buttons/loader-button.d.ts +40 -0
  148. package/dist/components/base/buttons/text-button.d.ts +19 -0
  149. package/dist/components/base/buttons/tooltip-button.d.ts +7 -0
  150. package/dist/components/base/cards/card-actions.d.ts +41 -0
  151. package/dist/components/base/cards/card.recipes.d.ts +28 -0
  152. package/dist/components/base/cards/index.d.ts +5 -0
  153. package/dist/components/base/cards/partials/card-primitives.d.ts +21 -0
  154. package/dist/components/base/cards/partials/has-renderable-content.d.ts +8 -0
  155. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +8 -0
  156. package/dist/components/base/cards/partials/smart-card-alert.d.ts +20 -0
  157. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +33 -0
  158. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +16 -0
  159. package/dist/components/base/cards/smart-card.d.ts +9 -0
  160. package/dist/components/base/cards/smart-card.strings.d.ts +18 -0
  161. package/dist/components/base/cards/smart-card.tokens.d.ts +44 -0
  162. package/dist/components/base/cards/smart-card.types.d.ts +146 -0
  163. package/dist/components/base/carousel/carousel.d.ts +105 -0
  164. package/dist/components/base/carousel/carousel.strings.d.ts +6 -0
  165. package/dist/components/base/carousel/index.d.ts +2 -0
  166. package/dist/components/base/cascader/cascader.d.ts +2 -0
  167. package/dist/components/base/cascader/cascader.types.d.ts +57 -0
  168. package/dist/components/base/cascader/index.d.ts +2 -0
  169. package/dist/components/base/chart/chart.d.ts +99 -0
  170. package/dist/components/base/chart/index.d.ts +9 -0
  171. package/dist/components/base/choice-inputs/card-checkbox-group.d.ts +27 -0
  172. package/dist/components/base/choice-inputs/card-radio-group.d.ts +19 -0
  173. package/dist/components/base/choice-inputs/checkbox.d.ts +17 -0
  174. package/dist/components/base/choice-inputs/choice-types.d.ts +57 -0
  175. package/dist/components/base/choice-inputs/index.d.ts +28 -0
  176. package/dist/components/base/choice-inputs/list-radio-group.d.ts +13 -0
  177. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +27 -0
  178. package/dist/components/base/choice-inputs/select-popup.d.ts +26 -0
  179. package/dist/components/base/choice-inputs/select.d.ts +94 -0
  180. package/dist/components/base/choice-inputs/switch-card.d.ts +36 -0
  181. package/dist/components/base/choice-inputs/switch.d.ts +38 -0
  182. package/dist/components/base/choice-inputs/toggle-field.d.ts +41 -0
  183. package/dist/components/base/code-block/code-block.d.ts +3 -0
  184. package/dist/components/base/code-block/code-block.types.d.ts +46 -0
  185. package/dist/components/base/code-block/index.d.ts +2 -0
  186. package/dist/components/base/code-block/use-code-copy.d.ts +6 -0
  187. package/dist/components/base/combobox/index.d.ts +27 -0
  188. package/dist/components/base/command/command.d.ts +73 -0
  189. package/dist/components/base/command/index.d.ts +1 -0
  190. package/dist/components/base/copyable/copyable.d.ts +36 -0
  191. package/dist/components/base/copyable/index.d.ts +1 -0
  192. package/dist/components/base/date-pickers/date-picker-footer.d.ts +14 -0
  193. package/dist/components/base/date-pickers/date-picker-header.d.ts +10 -0
  194. package/dist/components/base/date-pickers/date-picker-helpers.d.ts +87 -0
  195. package/dist/components/base/date-pickers/date-picker-internals.d.ts +10 -0
  196. package/dist/components/base/date-pickers/date-picker-multiple.d.ts +20 -0
  197. package/dist/components/base/date-pickers/date-picker-range.d.ts +15 -0
  198. package/dist/components/base/date-pickers/date-picker-single.d.ts +15 -0
  199. package/dist/components/base/date-pickers/date-picker.d.ts +3 -0
  200. package/dist/components/base/date-pickers/date-picker.recipes.d.ts +18 -0
  201. package/dist/components/base/date-pickers/date-pickers.strings.d.ts +14 -0
  202. package/dist/components/base/date-pickers/datepicker.types.d.ts +285 -0
  203. package/dist/components/base/date-pickers/index.d.ts +7 -0
  204. package/dist/components/base/date-pickers/month-year-picker.d.ts +4 -0
  205. package/dist/components/base/date-pickers/time-picker.d.ts +70 -0
  206. package/dist/components/base/display/alert-dialog.d.ts +25 -0
  207. package/dist/components/base/display/boolean-indicator.d.ts +25 -0
  208. package/dist/components/base/display/collapsible.d.ts +21 -0
  209. package/dist/components/base/display/content-block.d.ts +73 -0
  210. package/dist/components/base/display/content-block.strings.d.ts +5 -0
  211. package/dist/components/base/display/date-block.d.ts +70 -0
  212. package/dist/components/base/display/dialog.d.ts +35 -0
  213. package/dist/components/base/display/icon-badge/icon-badge.d.ts +45 -0
  214. package/dist/components/base/display/icon-badge/index.d.ts +1 -0
  215. package/dist/components/base/display/icon-size.d.ts +5 -0
  216. package/dist/components/base/display/index.d.ts +31 -0
  217. package/dist/components/base/display/placeholder-pattern.d.ts +7 -0
  218. package/dist/components/base/display/scroll-area.d.ts +12 -0
  219. package/dist/components/base/display/separator.d.ts +10 -0
  220. package/dist/components/base/display/surface-title.d.ts +10 -0
  221. package/dist/components/base/display/tooltip.d.ts +28 -0
  222. package/dist/components/base/display/visually-hidden.d.ts +14 -0
  223. package/dist/components/base/feedback/alert.d.ts +49 -0
  224. package/dist/components/base/feedback/empty.d.ts +48 -0
  225. package/dist/components/base/feedback/index.d.ts +27 -0
  226. package/dist/components/base/feedback/progress.d.ts +81 -0
  227. package/dist/components/base/feedback/progress.strings.d.ts +5 -0
  228. package/dist/components/base/feedback/state-display.d.ts +39 -0
  229. package/dist/components/base/forms/controlled-form-field.d.ts +32 -0
  230. package/dist/components/base/forms/controlled-form-field.strings.d.ts +7 -0
  231. package/dist/components/base/forms/form-field.d.ts +38 -0
  232. package/dist/components/base/forms/form-sizing.d.ts +86 -0
  233. package/dist/components/base/forms/index.d.ts +4 -0
  234. package/dist/components/base/forms/operation-password-form.d.ts +16 -0
  235. package/dist/components/base/forms/workflow.d.ts +68 -0
  236. package/dist/components/base/forms-numeric/coordinates-input.d.ts +47 -0
  237. package/dist/components/base/forms-numeric/currency-input.d.ts +44 -0
  238. package/dist/components/base/forms-numeric/decimal-input.d.ts +53 -0
  239. package/dist/components/base/forms-numeric/dimensions-input.d.ts +79 -0
  240. package/dist/components/base/forms-numeric/index.d.ts +21 -0
  241. package/dist/components/base/forms-numeric/money-input.d.ts +67 -0
  242. package/dist/components/base/forms-numeric/money-input.strings.d.ts +6 -0
  243. package/dist/components/base/forms-numeric/percentage-input.d.ts +8 -0
  244. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +12 -0
  245. package/dist/components/base/forms-numeric/weight-input.d.ts +54 -0
  246. package/dist/components/base/inline-edit/index.d.ts +2 -0
  247. package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
  248. package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
  249. package/dist/components/base/item/index.d.ts +2 -0
  250. package/dist/components/base/item/item.d.ts +12 -0
  251. package/dist/components/base/item/item.types.d.ts +100 -0
  252. package/dist/components/base/media-gallery/index.d.ts +2 -0
  253. package/dist/components/base/media-gallery/media-gallery.d.ts +45 -0
  254. package/dist/components/base/navigation/breadcrumbs.d.ts +37 -0
  255. package/dist/components/base/navigation/dropdown-menu.d.ts +45 -0
  256. package/dist/components/base/navigation/index.d.ts +21 -0
  257. package/dist/components/base/navigation/language-switcher.d.ts +12 -0
  258. package/dist/components/base/navigation/navigation-tabs.d.ts +40 -0
  259. package/dist/components/base/navigation/overflow-tab-bar.d.ts +43 -0
  260. package/dist/components/base/navigation/page-header/index.d.ts +1 -0
  261. package/dist/components/base/navigation/page-header/page-header.d.ts +88 -0
  262. package/dist/components/base/navigation/pagination.d.ts +61 -0
  263. package/dist/components/base/navigation/tab-scroll-viewport.d.ts +12 -0
  264. package/dist/components/base/navigation/tabs.d.ts +23 -0
  265. package/dist/components/base/popover/collection-content.d.ts +22 -0
  266. package/dist/components/base/popover/index.d.ts +1 -0
  267. package/dist/components/base/popover/popover.d.ts +54 -0
  268. package/dist/components/base/popover/popover.recipes.d.ts +29 -0
  269. package/dist/components/base/popover-menu/index.d.ts +3 -0
  270. package/dist/components/base/popover-menu/popover-menu.d.ts +82 -0
  271. package/dist/components/base/popover-menu/popover-menu.types.d.ts +30 -0
  272. package/dist/components/base/qr-code/index.d.ts +8 -0
  273. package/dist/components/base/qr-code/qr-code.d.ts +13 -0
  274. package/dist/components/base/repeaters/index.d.ts +21 -0
  275. package/dist/components/base/repeaters/key-value-editor.d.ts +27 -0
  276. package/dist/components/base/repeaters/localized-object-field.d.ts +35 -0
  277. package/dist/components/base/repeaters/localized-string-field.d.ts +25 -0
  278. package/dist/components/base/repeaters/localized-string-repeater.d.ts +44 -0
  279. package/dist/components/base/repeaters/object-repeater.d.ts +66 -0
  280. package/dist/components/base/repeaters/repeater.d.ts +87 -0
  281. package/dist/components/base/repeaters/repeaters.strings.d.ts +16 -0
  282. package/dist/components/base/repeaters/string-repeater.d.ts +65 -0
  283. package/dist/components/base/repeaters/string-repeater.utils.d.ts +2 -0
  284. package/dist/components/base/sheet/index.d.ts +1 -0
  285. package/dist/components/base/sheet/sheet.d.ts +35 -0
  286. package/dist/components/base/sidebar/index.d.ts +6 -0
  287. package/dist/components/base/sidebar/sidebar.d.ts +135 -0
  288. package/dist/components/base/signature-pad/index.d.ts +4 -0
  289. package/dist/components/base/signature-pad/signature-pad.d.ts +4 -0
  290. package/dist/components/base/signature-pad/signature-pad.types.d.ts +66 -0
  291. package/dist/components/base/signature-pad/signature-pad.utils.d.ts +8 -0
  292. package/dist/components/base/skeleton/index.d.ts +14 -0
  293. package/dist/components/base/skeleton/skeleton.d.ts +54 -0
  294. package/dist/components/base/spinner/index.d.ts +1 -0
  295. package/dist/components/base/spinner/spinner.d.ts +32 -0
  296. package/dist/components/base/structure/adaptive-grid.d.ts +3 -0
  297. package/dist/components/base/structure/grid-cell.d.ts +3 -0
  298. package/dist/components/base/structure/grid.d.ts +3 -0
  299. package/dist/components/base/structure/index.d.ts +5 -0
  300. package/dist/components/base/structure/stack.d.ts +3 -0
  301. package/dist/components/base/structure/structure.context.d.ts +6 -0
  302. package/dist/components/base/structure/structure.recipes.d.ts +33 -0
  303. package/dist/components/base/structure/structure.responsive.d.ts +5 -0
  304. package/dist/components/base/structure/structure.types.d.ts +51 -0
  305. package/dist/components/base/table/index.d.ts +18 -0
  306. package/dist/components/base/text-inputs/hooks/index.d.ts +1 -0
  307. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +48 -0
  308. package/dist/components/base/text-inputs/index.d.ts +21 -0
  309. package/dist/components/base/text-inputs/input-group.d.ts +46 -0
  310. package/dist/components/base/text-inputs/input.d.ts +45 -0
  311. package/dist/components/base/text-inputs/password-input.d.ts +28 -0
  312. package/dist/components/base/text-inputs/slug-field.d.ts +21 -0
  313. package/dist/components/base/text-inputs/textarea.d.ts +37 -0
  314. package/dist/components/base/toaster/index.d.ts +1 -0
  315. package/dist/components/base/toaster/toaster.d.ts +6 -0
  316. package/dist/components/base/tree/hierarchy.d.ts +11 -0
  317. package/dist/components/base/tree/index.d.ts +2 -0
  318. package/dist/components/base/tree/tree.d.ts +3 -0
  319. package/dist/components/base/tree/tree.types.d.ts +47 -0
  320. package/dist/components/base/upload/avatar-upload.d.ts +39 -0
  321. package/dist/components/base/upload/dropzone.d.ts +40 -0
  322. package/dist/components/base/upload/file-picker-input.d.ts +15 -0
  323. package/dist/components/base/upload/file-upload.d.ts +9 -0
  324. package/dist/components/base/upload/file-upload.strings.d.ts +18 -0
  325. package/dist/components/base/upload/file-upload.types.d.ts +68 -0
  326. package/dist/components/base/upload/file-upload.validation.d.ts +21 -0
  327. package/dist/components/base/upload/image-upload.d.ts +57 -0
  328. package/dist/components/base/upload/index.d.ts +26 -0
  329. package/dist/components/base/upload/use-file-drop-target.d.ts +22 -0
  330. package/dist/components/base/upload-queue/index.d.ts +3 -0
  331. package/dist/components/base/upload-queue/upload-progress-list.d.ts +55 -0
  332. package/dist/components/base/upload-queue/upload-tray.d.ts +46 -0
  333. package/dist/components/base/value-inputs/color-input.d.ts +26 -0
  334. package/dist/components/base/value-inputs/date-time-input.d.ts +19 -0
  335. package/dist/components/base/value-inputs/index.d.ts +25 -0
  336. package/dist/components/base/value-inputs/phone-input.d.ts +48 -0
  337. package/dist/components/base/value-inputs/slider.d.ts +59 -0
  338. package/dist/components/base/value-inputs/tags-input.d.ts +67 -0
  339. package/dist/components/blocks/admin/action-surfaces/index.d.ts +127 -0
  340. package/dist/components/blocks/admin/admin.strings.d.ts +11 -0
  341. package/dist/components/blocks/admin/api-key-list/api-key-list.d.ts +2 -0
  342. package/dist/components/blocks/admin/api-key-list/api-key-list.strings.d.ts +16 -0
  343. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +58 -0
  344. package/dist/components/blocks/admin/api-key-list/index.d.ts +3 -0
  345. package/dist/components/blocks/admin/index.d.ts +4 -0
  346. package/dist/components/blocks/admin/role-permission/index.d.ts +2 -0
  347. package/dist/components/blocks/admin/role-permission/role-permission.d.ts +5 -0
  348. package/dist/components/blocks/admin/role-permission/types.d.ts +26 -0
  349. package/dist/components/blocks/ai/ai-agent/ai-agent.d.ts +5 -0
  350. package/dist/components/blocks/ai/ai-agent/index.d.ts +2 -0
  351. package/dist/components/blocks/ai/ai-agent/types.d.ts +30 -0
  352. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +5 -0
  353. package/dist/components/blocks/ai/ai-artifact/index.d.ts +2 -0
  354. package/dist/components/blocks/ai/ai-artifact/types.d.ts +50 -0
  355. package/dist/components/blocks/ai/ai-attachment/ai-attachment.d.ts +5 -0
  356. package/dist/components/blocks/ai/ai-attachment/index.d.ts +2 -0
  357. package/dist/components/blocks/ai/ai-attachment/types.d.ts +35 -0
  358. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +5 -0
  359. package/dist/components/blocks/ai/ai-chain-of-thought/index.d.ts +2 -0
  360. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +36 -0
  361. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +5 -0
  362. package/dist/components/blocks/ai/ai-citation/index.d.ts +2 -0
  363. package/dist/components/blocks/ai/ai-citation/types.d.ts +38 -0
  364. package/dist/components/blocks/ai/ai-classification/ai-classification.d.ts +2 -0
  365. package/dist/components/blocks/ai/ai-classification/index.d.ts +2 -0
  366. package/dist/components/blocks/ai/ai-classification/types.d.ts +27 -0
  367. package/dist/components/blocks/ai/ai-code-block/ai-code-block.d.ts +6 -0
  368. package/dist/components/blocks/ai/ai-code-block/index.d.ts +2 -0
  369. package/dist/components/blocks/ai/ai-code-block/types.d.ts +38 -0
  370. package/dist/components/blocks/ai/ai-confidence/ai-confidence.d.ts +5 -0
  371. package/dist/components/blocks/ai/ai-confidence/index.d.ts +2 -0
  372. package/dist/components/blocks/ai/ai-confidence/types.d.ts +25 -0
  373. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +5 -0
  374. package/dist/components/blocks/ai/ai-confirmation/index.d.ts +2 -0
  375. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +40 -0
  376. package/dist/components/blocks/ai/ai-feedback/ai-feedback.d.ts +5 -0
  377. package/dist/components/blocks/ai/ai-feedback/index.d.ts +2 -0
  378. package/dist/components/blocks/ai/ai-feedback/types.d.ts +24 -0
  379. package/dist/components/blocks/ai/ai-file-tree/ai-file-tree.d.ts +5 -0
  380. package/dist/components/blocks/ai/ai-file-tree/index.d.ts +2 -0
  381. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +59 -0
  382. package/dist/components/blocks/ai/ai-inline-citation/ai-inline-citation.d.ts +5 -0
  383. package/dist/components/blocks/ai/ai-inline-citation/index.d.ts +2 -0
  384. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +22 -0
  385. package/dist/components/blocks/ai/ai-message-bubble/ai-message-bubble.d.ts +6 -0
  386. package/dist/components/blocks/ai/ai-message-bubble/index.d.ts +2 -0
  387. package/dist/components/blocks/ai/ai-message-bubble/types.d.ts +35 -0
  388. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +5 -0
  389. package/dist/components/blocks/ai/ai-package-info/index.d.ts +2 -0
  390. package/dist/components/blocks/ai/ai-package-info/types.d.ts +39 -0
  391. package/dist/components/blocks/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +5 -0
  392. package/dist/components/blocks/ai/ai-prompt-suggestions/index.d.ts +2 -0
  393. package/dist/components/blocks/ai/ai-prompt-suggestions/types.d.ts +26 -0
  394. package/dist/components/blocks/ai/ai-reasoning/ai-reasoning.d.ts +5 -0
  395. package/dist/components/blocks/ai/ai-reasoning/index.d.ts +2 -0
  396. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +32 -0
  397. package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +5 -0
  398. package/dist/components/blocks/ai/ai-shimmer/index.d.ts +2 -0
  399. package/dist/components/blocks/ai/ai-shimmer/types.d.ts +11 -0
  400. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +5 -0
  401. package/dist/components/blocks/ai/ai-sources/index.d.ts +2 -0
  402. package/dist/components/blocks/ai/ai-sources/types.d.ts +44 -0
  403. package/dist/components/blocks/ai/ai-summary/ai-summary.d.ts +2 -0
  404. package/dist/components/blocks/ai/ai-summary/index.d.ts +2 -0
  405. package/dist/components/blocks/ai/ai-summary/types.d.ts +32 -0
  406. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +5 -0
  407. package/dist/components/blocks/ai/ai-task/index.d.ts +2 -0
  408. package/dist/components/blocks/ai/ai-task/types.d.ts +38 -0
  409. package/dist/components/blocks/ai/ai-token-usage/ai-token-usage.d.ts +5 -0
  410. package/dist/components/blocks/ai/ai-token-usage/index.d.ts +2 -0
  411. package/dist/components/blocks/ai/ai-token-usage/types.d.ts +22 -0
  412. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +5 -0
  413. package/dist/components/blocks/ai/ai-tool-call/index.d.ts +2 -0
  414. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +38 -0
  415. package/dist/components/blocks/ai/ai.strings.d.ts +36 -0
  416. package/dist/components/blocks/ai/index.d.ts +24 -0
  417. package/dist/components/blocks/ai/use-copy-feedback.d.ts +6 -0
  418. package/dist/components/blocks/analytics/activity-heatmap/activity-heatmap.d.ts +5 -0
  419. package/dist/components/blocks/analytics/activity-heatmap/index.d.ts +2 -0
  420. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +20 -0
  421. package/dist/components/blocks/analytics/analytics.strings.d.ts +35 -0
  422. package/dist/components/blocks/analytics/atoms/metric-skeleton.d.ts +13 -0
  423. package/dist/components/blocks/analytics/atoms/metric-sparkline.d.ts +15 -0
  424. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +15 -0
  425. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +42 -0
  426. package/dist/components/blocks/analytics/chart-card/index.d.ts +1 -0
  427. package/dist/components/blocks/analytics/format-metric-value.d.ts +8 -0
  428. package/dist/components/blocks/analytics/index.d.ts +35 -0
  429. package/dist/components/blocks/analytics/metric/index.d.ts +1 -0
  430. package/dist/components/blocks/analytics/metric/metric.d.ts +28 -0
  431. package/dist/components/blocks/analytics/metric-bar/index.d.ts +1 -0
  432. package/dist/components/blocks/analytics/metric-bar/metric-bar.d.ts +22 -0
  433. package/dist/components/blocks/analytics/metric-comparison/index.d.ts +1 -0
  434. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +26 -0
  435. package/dist/components/blocks/analytics/metric-gradient/index.d.ts +1 -0
  436. package/dist/components/blocks/analytics/metric-gradient/metric-gradient.d.ts +19 -0
  437. package/dist/components/blocks/analytics/metric-grid/index.d.ts +1 -0
  438. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +33 -0
  439. package/dist/components/blocks/analytics/metric-micro-grid/index.d.ts +1 -0
  440. package/dist/components/blocks/analytics/metric-micro-grid/metric-micro-grid.d.ts +23 -0
  441. package/dist/components/blocks/analytics/time-ruler/index.d.ts +2 -0
  442. package/dist/components/blocks/analytics/time-ruler/time-ruler.d.ts +5 -0
  443. package/dist/components/blocks/analytics/time-ruler/types.d.ts +32 -0
  444. package/dist/components/blocks/analytics/types.d.ts +83 -0
  445. package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
  446. package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
  447. package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
  448. package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
  449. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
  450. package/dist/components/blocks/collaboration/index.d.ts +1 -0
  451. package/dist/components/blocks/collaboration/message/index.d.ts +2 -0
  452. package/dist/components/blocks/collaboration/message/message.d.ts +8 -0
  453. package/dist/components/blocks/collaboration/message/message.types.d.ts +30 -0
  454. package/dist/components/blocks/commerce/address-card/address-card.d.ts +5 -0
  455. package/dist/components/blocks/commerce/address-card/index.d.ts +2 -0
  456. package/dist/components/blocks/commerce/address-card/types.d.ts +43 -0
  457. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +12 -0
  458. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +36 -0
  459. package/dist/components/blocks/commerce/booking-calendar-event-card/index.d.ts +2 -0
  460. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +5 -0
  461. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -0
  462. package/dist/components/blocks/commerce/cart-summary/types.d.ts +53 -0
  463. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +5 -0
  464. package/dist/components/blocks/commerce/coupon-input/index.d.ts +2 -0
  465. package/dist/components/blocks/commerce/coupon-input/types.d.ts +35 -0
  466. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +5 -0
  467. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -0
  468. package/dist/components/blocks/commerce/discount-stack/types.d.ts +27 -0
  469. package/dist/components/blocks/commerce/format-signed-amount.d.ts +22 -0
  470. package/dist/components/blocks/commerce/giftcard-card/giftcard-card.d.ts +62 -0
  471. package/dist/components/blocks/commerce/giftcard-card/index.d.ts +2 -0
  472. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +10 -0
  473. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +9 -0
  474. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +7 -0
  475. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +11 -0
  476. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +10 -0
  477. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +10 -0
  478. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +83 -0
  479. package/dist/components/blocks/commerce/index.d.ts +34 -0
  480. package/dist/components/blocks/commerce/inventory-level/index.d.ts +3 -0
  481. package/dist/components/blocks/commerce/inventory-level/inventory-level.d.ts +5 -0
  482. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +10 -0
  483. package/dist/components/blocks/commerce/inventory-level/types.d.ts +20 -0
  484. package/dist/components/blocks/commerce/inventory-section/index.d.ts +2 -0
  485. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +5 -0
  486. package/dist/components/blocks/commerce/inventory-section/types.d.ts +105 -0
  487. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -0
  488. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +5 -0
  489. package/dist/components/blocks/commerce/invoice-header/types.d.ts +51 -0
  490. package/dist/components/blocks/commerce/invoice-line-items/index.d.ts +2 -0
  491. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +5 -0
  492. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +64 -0
  493. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -0
  494. package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +5 -0
  495. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +28 -0
  496. package/dist/components/blocks/commerce/loyalty-points/index.d.ts +2 -0
  497. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +5 -0
  498. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +32 -0
  499. package/dist/components/blocks/commerce/order-status/index.d.ts +2 -0
  500. package/dist/components/blocks/commerce/order-status/order-status.d.ts +5 -0
  501. package/dist/components/blocks/commerce/order-status/types.d.ts +35 -0
  502. package/dist/components/blocks/commerce/order-timeline/index.d.ts +2 -0
  503. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +5 -0
  504. package/dist/components/blocks/commerce/order-timeline/types.d.ts +22 -0
  505. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -0
  506. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +5 -0
  507. package/dist/components/blocks/commerce/payment-method/types.d.ts +33 -0
  508. package/dist/components/blocks/commerce/payment-timeline/index.d.ts +2 -0
  509. package/dist/components/blocks/commerce/payment-timeline/payment-timeline.d.ts +5 -0
  510. package/dist/components/blocks/commerce/payment-timeline/types.d.ts +15 -0
  511. package/dist/components/blocks/commerce/receipt/index.d.ts +3 -0
  512. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +2 -0
  513. package/dist/components/blocks/commerce/receipt/receipt.d.ts +3 -0
  514. package/dist/components/blocks/commerce/receipt/types.d.ts +42 -0
  515. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -0
  516. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +5 -0
  517. package/dist/components/blocks/commerce/refund-status/types.d.ts +37 -0
  518. package/dist/components/blocks/commerce/seo-listing/index.d.ts +3 -0
  519. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +5 -0
  520. package/dist/components/blocks/commerce/seo-listing/seo-listing-score.d.ts +5 -0
  521. package/dist/components/blocks/commerce/seo-listing/types.d.ts +92 -0
  522. package/dist/components/blocks/commerce/shipment-tracking/index.d.ts +2 -0
  523. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +5 -0
  524. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +44 -0
  525. package/dist/components/blocks/commerce/subscription-summary/index.d.ts +2 -0
  526. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +5 -0
  527. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +39 -0
  528. package/dist/components/blocks/commerce/tax-breakdown/index.d.ts +2 -0
  529. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +5 -0
  530. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +34 -0
  531. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -0
  532. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +29 -0
  533. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +5 -0
  534. package/dist/components/blocks/commerce/vendor-profile/index.d.ts +3 -0
  535. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +86 -0
  536. package/dist/components/blocks/commerce/vendor-profile/vendor-profile.d.ts +2 -0
  537. package/dist/components/blocks/commerce/voucher-entry/index.d.ts +2 -0
  538. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +33 -0
  539. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +5 -0
  540. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +6 -0
  541. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +19 -0
  542. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +7 -0
  543. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +5 -0
  544. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +5 -0
  545. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +5 -0
  546. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +5 -0
  547. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +5 -0
  548. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +183 -0
  549. package/dist/components/blocks/data-display/empty-state/empty-state.d.ts +2 -0
  550. package/dist/components/blocks/data-display/empty-state/empty-state.strings.d.ts +19 -0
  551. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +86 -0
  552. package/dist/components/blocks/data-display/empty-state/index.d.ts +5 -0
  553. package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +9 -0
  554. package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +9 -0
  555. package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +25 -0
  556. package/dist/components/blocks/data-display/empty-state/partials/illustrations/search-glass.d.ts +9 -0
  557. package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +11 -0
  558. package/dist/components/blocks/data-display/empty-state/partials/illustrations/types.d.ts +4 -0
  559. package/dist/components/blocks/data-display/empty-state/partials/illustrations/users-circle.d.ts +9 -0
  560. package/dist/components/blocks/data-display/index.d.ts +6 -0
  561. package/dist/components/blocks/data-display/inline-stat/index.d.ts +1 -0
  562. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +35 -0
  563. package/dist/components/blocks/data-display/metadata/index.d.ts +4 -0
  564. package/dist/components/blocks/data-display/metadata/metadata-list.d.ts +78 -0
  565. package/dist/components/blocks/data-display/metadata/metadata-list.strings.d.ts +18 -0
  566. package/dist/components/blocks/data-display/metadata/metadata-value.d.ts +142 -0
  567. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +40 -0
  568. package/dist/components/blocks/onboarding/checklist/checklist.d.ts +2 -0
  569. package/dist/components/blocks/onboarding/checklist/checklist.strings.d.ts +15 -0
  570. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +64 -0
  571. package/dist/components/blocks/onboarding/checklist/index.d.ts +4 -0
  572. package/dist/components/blocks/onboarding/checklist/partials/step-status-indicator.d.ts +12 -0
  573. package/dist/components/blocks/onboarding/index.d.ts +7 -0
  574. package/dist/components/blocks/planning/index.d.ts +3 -0
  575. package/dist/components/blocks/planning/task-card.d.ts +3 -0
  576. package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
  577. package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
  578. package/dist/components/blocks/timelines/changelog/changelog-timeline.d.ts +5 -0
  579. package/dist/components/blocks/timelines/changelog/index.d.ts +2 -0
  580. package/dist/components/blocks/timelines/changelog/types.d.ts +33 -0
  581. package/dist/components/blocks/timelines/index.d.ts +5 -0
  582. package/dist/components/blocks/timelines/milestones/index.d.ts +2 -0
  583. package/dist/components/blocks/timelines/milestones/milestones-timeline.d.ts +5 -0
  584. package/dist/components/blocks/timelines/milestones/types.d.ts +32 -0
  585. package/dist/components/blocks/timelines/shared/index.d.ts +1 -0
  586. package/dist/components/blocks/timelines/shared/timeline.d.ts +40 -0
  587. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -0
  588. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +9 -0
  589. package/dist/components/blocks/timelines/steps-card/types.d.ts +38 -0
  590. package/dist/components/features/activities/activities-feed.d.ts +5 -0
  591. package/dist/components/features/activities/activities.config.d.ts +6 -0
  592. package/dist/components/features/activities/activities.strings.d.ts +38 -0
  593. package/dist/components/features/activities/activities.types.d.ts +431 -0
  594. package/dist/components/features/activities/activity-event-adapter.d.ts +38 -0
  595. package/dist/components/features/activities/activity-log.d.ts +6 -0
  596. package/dist/components/features/activities/hooks/index.d.ts +2 -0
  597. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +44 -0
  598. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +22 -0
  599. package/dist/components/features/activities/index.d.ts +8 -0
  600. package/dist/components/features/activities/partials/activity-actions-menu.d.ts +11 -0
  601. package/dist/components/features/activities/partials/activity-changes.d.ts +8 -0
  602. package/dist/components/features/activities/partials/activity-date-label.d.ts +9 -0
  603. package/dist/components/features/activities/partials/activity-empty-state.d.ts +9 -0
  604. package/dist/components/features/activities/partials/activity-headline.d.ts +20 -0
  605. package/dist/components/features/activities/partials/activity-marker.d.ts +25 -0
  606. package/dist/components/features/activities/partials/activity-resource-tag.d.ts +11 -0
  607. package/dist/components/features/activities/partials/activity-row.d.ts +68 -0
  608. package/dist/components/features/activities/partials/index.d.ts +8 -0
  609. package/dist/components/features/activities/partials/tone-tokens.d.ts +25 -0
  610. package/dist/components/features/ai-chat/ai-chat.d.ts +81 -0
  611. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +56 -0
  612. package/dist/components/features/ai-chat/ai-chat.types.d.ts +170 -0
  613. package/dist/components/features/ai-chat/hooks/index.d.ts +1 -0
  614. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +15 -0
  615. package/dist/components/features/ai-chat/index.d.ts +5 -0
  616. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +15 -0
  617. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +28 -0
  618. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +22 -0
  619. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +21 -0
  620. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +59 -0
  621. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +19 -0
  622. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +18 -0
  623. package/dist/components/features/ai-chat/partials/index.d.ts +7 -0
  624. package/dist/components/features/async-preview/async-preview.d.ts +84 -0
  625. package/dist/components/features/async-preview/async-preview.strings.d.ts +14 -0
  626. package/dist/components/features/async-preview/async-preview.types.d.ts +133 -0
  627. package/dist/components/features/async-preview/hooks/index.d.ts +1 -0
  628. package/dist/components/features/async-preview/hooks/use-async-preview.d.ts +8 -0
  629. package/dist/components/features/async-preview/index.d.ts +6 -0
  630. package/dist/components/features/async-preview/partials/index.d.ts +1 -0
  631. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +45 -0
  632. package/dist/components/features/combobox/async-resource-combobox.d.ts +94 -0
  633. package/dist/components/features/combobox/combobox.d.ts +20 -0
  634. package/dist/components/features/combobox/combobox.strings.d.ts +14 -0
  635. package/dist/components/features/combobox/components/combobox-dropdown.d.ts +57 -0
  636. package/dist/components/features/combobox/components/error-message.d.ts +15 -0
  637. package/dist/components/features/combobox/components/highlighted-text.d.ts +14 -0
  638. package/dist/components/features/combobox/components/index.d.ts +13 -0
  639. package/dist/components/features/combobox/components/loading-more.d.ts +15 -0
  640. package/dist/components/features/combobox/components/status-content.d.ts +21 -0
  641. package/dist/components/features/combobox/constants.d.ts +19 -0
  642. package/dist/components/features/combobox/hooks/index.d.ts +2 -0
  643. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +30 -0
  644. package/dist/components/features/combobox/hooks/use-debounced-search.d.ts +10 -0
  645. package/dist/components/features/combobox/hooks/use-grouped-items.d.ts +9 -0
  646. package/dist/components/features/combobox/hooks/use-load-more.d.ts +12 -0
  647. package/dist/components/features/combobox/index.d.ts +13 -0
  648. package/dist/components/features/combobox/types.d.ts +184 -0
  649. package/dist/components/features/comments/comments-provider.d.ts +15 -0
  650. package/dist/components/features/comments/comments.d.ts +2 -0
  651. package/dist/components/features/comments/comments.strings.d.ts +91 -0
  652. package/dist/components/features/comments/comments.types.d.ts +369 -0
  653. package/dist/components/features/comments/hooks/index.d.ts +4 -0
  654. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +28 -0
  655. package/dist/components/features/comments/hooks/use-comments.d.ts +34 -0
  656. package/dist/components/features/comments/index.d.ts +8 -0
  657. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +23 -0
  658. package/dist/components/features/comments/partials/comment-composer.d.ts +12 -0
  659. package/dist/components/features/comments/partials/comment-content.d.ts +13 -0
  660. package/dist/components/features/comments/partials/comment-empty.d.ts +12 -0
  661. package/dist/components/features/comments/partials/comment-item.d.ts +3 -0
  662. package/dist/components/features/comments/partials/comment-timeline.d.ts +3 -0
  663. package/dist/components/features/comments/partials/index.d.ts +9 -0
  664. package/dist/components/features/data-view/data-view-filtering.d.ts +3 -0
  665. package/dist/components/features/data-view/data-view.d.ts +7 -0
  666. package/dist/components/features/data-view/data-view.strings.d.ts +9 -0
  667. package/dist/components/features/data-view/data-view.types.d.ts +191 -0
  668. package/dist/components/features/data-view/hooks/index.d.ts +1 -0
  669. package/dist/components/features/data-view/hooks/use-data-view.d.ts +2 -0
  670. package/dist/components/features/data-view/index.d.ts +4 -0
  671. package/dist/components/features/email-composer/document.d.ts +8 -0
  672. package/dist/components/features/email-composer/email-composer.d.ts +2 -0
  673. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  674. package/dist/components/features/email-composer/engine.d.ts +18 -0
  675. package/dist/components/features/email-composer/http.d.ts +6 -0
  676. package/dist/components/features/email-composer/index.d.ts +6 -0
  677. package/dist/components/features/email-composer/partials/body-editor.d.ts +11 -0
  678. package/dist/components/features/email-composer/partials/data-status.d.ts +8 -0
  679. package/dist/components/features/email-composer/partials/html-preview.d.ts +6 -0
  680. package/dist/components/features/email-composer/partials/recipients.d.ts +14 -0
  681. package/dist/components/features/email-composer/partials/variables.d.ts +11 -0
  682. package/dist/components/features/email-composer/strings.d.ts +79 -0
  683. package/dist/components/features/email-composer/types.d.ts +195 -0
  684. package/dist/components/features/email-composer/use-composer.d.ts +119 -0
  685. package/dist/components/features/event-calendar/colors.d.ts +29 -0
  686. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +5 -0
  687. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +5 -0
  688. package/dist/components/features/event-calendar/event-calendar-event-card.d.ts +16 -0
  689. package/dist/components/features/event-calendar/event-calendar-header.d.ts +8 -0
  690. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +5 -0
  691. package/dist/components/features/event-calendar/event-calendar.d.ts +5 -0
  692. package/dist/components/features/event-calendar/event-calendar.types.d.ts +350 -0
  693. package/dist/components/features/event-calendar/index.d.ts +11 -0
  694. package/dist/components/features/event-calendar/use-event-calendar-data.d.ts +15 -0
  695. package/dist/components/features/event-calendar/use-event-calendar.d.ts +24 -0
  696. package/dist/components/features/filters/facets/async-select-facet.d.ts +28 -0
  697. package/dist/components/features/filters/facets/date-facet.d.ts +18 -0
  698. package/dist/components/features/filters/facets/range-facet.d.ts +30 -0
  699. package/dist/components/features/filters/facets/search-facet.d.ts +27 -0
  700. package/dist/components/features/filters/facets/select-facet.d.ts +19 -0
  701. package/dist/components/features/filters/facets/tags-facet.d.ts +27 -0
  702. package/dist/components/features/filters/filter-context.d.ts +61 -0
  703. package/dist/components/features/filters/filter-layout.d.ts +16 -0
  704. package/dist/components/features/filters/filter-query.d.ts +21 -0
  705. package/dist/components/features/filters/filters.strings.d.ts +103 -0
  706. package/dist/components/features/filters/filters.types.d.ts +222 -0
  707. package/dist/components/features/filters/hooks/index.d.ts +3 -0
  708. package/dist/components/features/filters/hooks/use-async-options.d.ts +16 -0
  709. package/dist/components/features/filters/hooks/use-filter-groups.d.ts +16 -0
  710. package/dist/components/features/filters/index.d.ts +42 -0
  711. package/dist/components/features/filters/operator-options.d.ts +9 -0
  712. package/dist/components/features/filters/partials/active-filter-item.d.ts +37 -0
  713. package/dist/components/features/filters/partials/async-filter-content.d.ts +21 -0
  714. package/dist/components/features/filters/partials/date-filter-content.d.ts +14 -0
  715. package/dist/components/features/filters/partials/filter-error-boundary.d.ts +9 -0
  716. package/dist/components/features/filters/partials/filter-list-content.d.ts +24 -0
  717. package/dist/components/features/filters/partials/filter-list-item.d.ts +19 -0
  718. package/dist/components/features/filters/partials/filter-operator-select.d.ts +22 -0
  719. package/dist/components/features/filters/partials/filter-pill.d.ts +26 -0
  720. package/dist/components/features/filters/partials/filter-popover-content.d.ts +36 -0
  721. package/dist/components/features/filters/partials/filter-tabs.d.ts +14 -0
  722. package/dist/components/features/filters/partials/filter-value-display.d.ts +21 -0
  723. package/dist/components/features/filters/partials/filters-button.d.ts +32 -0
  724. package/dist/components/features/filters/partials/index.d.ts +14 -0
  725. package/dist/components/features/filters/partials/regular-filter-content.d.ts +28 -0
  726. package/dist/components/features/filters/partials/search-filters-list.d.ts +25 -0
  727. package/dist/components/features/filters/partials/tags-filter-content.d.ts +28 -0
  728. package/dist/components/features/filters/utils/filter-utils.d.ts +37 -0
  729. package/dist/components/features/filters/validators.d.ts +63 -0
  730. package/dist/components/features/global-search/global-search-dialog.d.ts +13 -0
  731. package/dist/components/features/global-search/global-search.d.ts +52 -0
  732. package/dist/components/features/global-search/global-search.strings.d.ts +36 -0
  733. package/dist/components/features/global-search/global-search.types.d.ts +105 -0
  734. package/dist/components/features/global-search/hooks/index.d.ts +2 -0
  735. package/dist/components/features/global-search/hooks/use-global-search.d.ts +33 -0
  736. package/dist/components/features/global-search/index.d.ts +9 -0
  737. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +7 -0
  738. package/dist/components/features/global-search/partials/global-search-footer.d.ts +13 -0
  739. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +12 -0
  740. package/dist/components/features/global-search/partials/global-search-input.d.ts +17 -0
  741. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +16 -0
  742. package/dist/components/features/global-search/partials/global-search-tabs.d.ts +13 -0
  743. package/dist/components/features/global-search/partials/index.d.ts +12 -0
  744. package/dist/components/features/global-search/partials/tone-palettes.d.ts +8 -0
  745. package/dist/components/features/kanban/hooks/index.d.ts +1 -0
  746. package/dist/components/features/kanban/hooks/use-kanban.d.ts +32 -0
  747. package/dist/components/features/kanban/index.d.ts +5 -0
  748. package/dist/components/features/kanban/kanban-context.d.ts +25 -0
  749. package/dist/components/features/kanban/kanban-keyboard.d.ts +10 -0
  750. package/dist/components/features/kanban/kanban.d.ts +38 -0
  751. package/dist/components/features/kanban/kanban.strings.d.ts +24 -0
  752. package/dist/components/features/kanban/kanban.types.d.ts +168 -0
  753. package/dist/components/features/map/index.d.ts +13 -0
  754. package/dist/components/features/map/map.d.ts +166 -0
  755. package/dist/components/features/map/place-autocomplete.d.ts +97 -0
  756. package/dist/components/features/map/public-leaflet.types.d.ts +71 -0
  757. package/dist/components/features/map/use-map-color-scheme.d.ts +2 -0
  758. package/dist/components/features/media-library/hooks/index.d.ts +1 -0
  759. package/dist/components/features/media-library/hooks/use-media-library.d.ts +5 -0
  760. package/dist/components/features/media-library/index.d.ts +6 -0
  761. package/dist/components/features/media-library/media-library.d.ts +3 -0
  762. package/dist/components/features/media-library/media-library.strings.d.ts +124 -0
  763. package/dist/components/features/media-library/media-library.types.d.ts +568 -0
  764. package/dist/components/features/media-library/media-resource-gallery.d.ts +2 -0
  765. package/dist/components/features/media-library/partials/index.d.ts +1 -0
  766. package/dist/components/features/media-library/partials/media-library-partials.d.ts +10 -0
  767. package/dist/components/features/mentions/hooks/index.d.ts +2 -0
  768. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +41 -0
  769. package/dist/components/features/mentions/hooks/use-mentions.d.ts +35 -0
  770. package/dist/components/features/mentions/index.d.ts +5 -0
  771. package/dist/components/features/mentions/mentions.strings.d.ts +26 -0
  772. package/dist/components/features/mentions/mentions.types.d.ts +100 -0
  773. package/dist/components/features/mentions/partials/index.d.ts +4 -0
  774. package/dist/components/features/mentions/partials/mention-chip.d.ts +29 -0
  775. package/dist/components/features/mentions/partials/mention-content.d.ts +22 -0
  776. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +36 -0
  777. package/dist/components/features/mentions/partials/mention-picker.d.ts +31 -0
  778. package/dist/components/features/mentions/utils/build-mention-html.d.ts +24 -0
  779. package/dist/components/features/mentions/utils/index.d.ts +3 -0
  780. package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts +13 -0
  781. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +16 -0
  782. package/dist/components/features/overlays/alert-dialog.d.ts +4 -0
  783. package/dist/components/features/overlays/dialog.d.ts +4 -0
  784. package/dist/components/features/overlays/drawer.d.ts +4 -0
  785. package/dist/components/features/overlays/hooks/index.d.ts +2 -0
  786. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +24 -0
  787. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +36 -0
  788. package/dist/components/features/overlays/index.d.ts +6 -0
  789. package/dist/components/features/overlays/overlays.strings.d.ts +19 -0
  790. package/dist/components/features/overlays/overlays.types.d.ts +169 -0
  791. package/dist/components/features/products/components/index.d.ts +17 -0
  792. package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
  793. package/dist/components/features/products/components/product-details-card.d.ts +5 -0
  794. package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
  795. package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
  796. package/dist/components/features/products/components/product-options-matrix.d.ts +5 -0
  797. package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
  798. package/dist/components/features/products/components/product-overview.d.ts +5 -0
  799. package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
  800. package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
  801. package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
  802. package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
  803. package/dist/components/features/products/components/product-variant-action-menu.d.ts +5 -0
  804. package/dist/components/features/products/components/product-variant-details.d.ts +5 -0
  805. package/dist/components/features/products/components/product-variant-editor.d.ts +5 -0
  806. package/dist/components/features/products/components/product-variants-bulk-table.d.ts +5 -0
  807. package/dist/components/features/products/components/product-variants-manager.d.ts +5 -0
  808. package/dist/components/features/products/components/product-variants-table.d.ts +5 -0
  809. package/dist/components/features/products/index.d.ts +3 -0
  810. package/dist/components/features/products/partials/index.d.ts +7 -0
  811. package/dist/components/features/products/partials/product-actions.d.ts +10 -0
  812. package/dist/components/features/products/partials/product-empty-state.d.ts +10 -0
  813. package/dist/components/features/products/partials/product-metric-tile.d.ts +4 -0
  814. package/dist/components/features/products/partials/product-rows.d.ts +35 -0
  815. package/dist/components/features/products/partials/product-tone.d.ts +8 -0
  816. package/dist/components/features/products/partials/product-values.d.ts +1 -0
  817. package/dist/components/features/products/partials/product-variant-table-parts.d.ts +28 -0
  818. package/dist/components/features/products/products.strings.d.ts +308 -0
  819. package/dist/components/features/products/products.types.d.ts +906 -0
  820. package/dist/components/features/questionnaire/index.d.ts +3 -0
  821. package/dist/components/features/questionnaire/questionnaire-control.d.ts +3 -0
  822. package/dist/components/features/questionnaire/questionnaire.d.ts +2 -0
  823. package/dist/components/features/questionnaire/questionnaire.types.d.ts +98 -0
  824. package/dist/components/features/questionnaire/questionnaire.utils.d.ts +5 -0
  825. package/dist/components/features/resource/index.d.ts +3 -0
  826. package/dist/components/features/resource/resource.d.ts +8 -0
  827. package/dist/components/features/resource/resource.strings.d.ts +12 -0
  828. package/dist/components/features/resource/resource.types.d.ts +161 -0
  829. package/dist/components/features/resource-assignment/hooks/index.d.ts +2 -0
  830. package/dist/components/features/resource-assignment/hooks/use-shared-resource-card.d.ts +32 -0
  831. package/dist/components/features/resource-assignment/index.d.ts +6 -0
  832. package/dist/components/features/resource-assignment/partials/default-shared-resource-partials.d.ts +31 -0
  833. package/dist/components/features/resource-assignment/partials/index.d.ts +1 -0
  834. package/dist/components/features/resource-assignment/resource-assignment.d.ts +12 -0
  835. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +17 -0
  836. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +193 -0
  837. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +6 -0
  838. package/dist/components/features/rich-text-editor/index.d.ts +5 -0
  839. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +28 -0
  840. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +32 -0
  841. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +7 -0
  842. package/dist/components/features/rich-text-editor/partials/index.d.ts +7 -0
  843. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +8 -0
  844. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +3 -0
  845. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +33 -0
  846. package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +3 -0
  847. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +6 -0
  848. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +32 -0
  849. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +111 -0
  850. package/dist/components/features/schema-form/hooks/index.d.ts +1 -0
  851. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +23 -0
  852. package/dist/components/features/schema-form/index.d.ts +5 -0
  853. package/dist/components/features/schema-form/partials/index.d.ts +3 -0
  854. package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +23 -0
  855. package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +12 -0
  856. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +12 -0
  857. package/dist/components/features/schema-form/schema-form.d.ts +5 -0
  858. package/dist/components/features/schema-form/schema-form.strings.d.ts +11 -0
  859. package/dist/components/features/schema-form/schema-form.types.d.ts +271 -0
  860. package/dist/components/features/schema-form/schema-form.utils.d.ts +18 -0
  861. package/dist/components/features/suggestions/hooks/index.d.ts +1 -0
  862. package/dist/components/features/suggestions/hooks/use-suggestions.d.ts +9 -0
  863. package/dist/components/features/suggestions/index.d.ts +4 -0
  864. package/dist/components/features/suggestions/suggestions.d.ts +5 -0
  865. package/dist/components/features/suggestions/suggestions.strings.d.ts +16 -0
  866. package/dist/components/features/suggestions/suggestions.types.d.ts +79 -0
  867. package/dist/components/features/sync/index.d.ts +3 -0
  868. package/dist/components/features/sync/sync-range-dialog-form.d.ts +5 -0
  869. package/dist/components/features/sync/sync.strings.d.ts +18 -0
  870. package/dist/components/features/sync/sync.types.d.ts +44 -0
  871. package/dist/components/features/table/column-visibility-toggle.d.ts +5 -0
  872. package/dist/components/features/table/data-table.d.ts +6 -0
  873. package/dist/components/features/table/filter-bar.d.ts +5 -0
  874. package/dist/components/features/table/hooks.d.ts +47 -0
  875. package/dist/components/features/table/index.d.ts +16 -0
  876. package/dist/components/features/table/pagination.d.ts +5 -0
  877. package/dist/components/features/table/partials/cell-renderers.d.ts +141 -0
  878. package/dist/components/features/table/partials/cell-value.d.ts +121 -0
  879. package/dist/components/features/table/partials/fullscreen-toggle.d.ts +16 -0
  880. package/dist/components/features/table/partials/resource-cell.d.ts +63 -0
  881. package/dist/components/features/table/partials/table-link.d.ts +3 -0
  882. package/dist/components/features/table/table-actions.d.ts +5 -0
  883. package/dist/components/features/table/table-body.d.ts +5 -0
  884. package/dist/components/features/table/table-header.d.ts +6 -0
  885. package/dist/components/features/table/table-helpers.d.ts +39 -0
  886. package/dist/components/features/table/table-toolbar.d.ts +5 -0
  887. package/dist/components/features/table/table.strings.d.ts +3 -0
  888. package/dist/components/features/table/table.types.d.ts +489 -0
  889. package/dist/components/features/theme-tweaker/admin-ui-theme-provider.d.ts +6 -0
  890. package/dist/components/features/theme-tweaker/index.d.ts +10 -0
  891. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +49 -0
  892. package/dist/components/features/theme-tweaker/theme-scope.d.ts +7 -0
  893. package/dist/components/features/theme-tweaker/theme-tweaker.d.ts +2 -0
  894. package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.ts +7 -0
  895. package/dist/components/features/theme-tweaker/theme-tweaker.recipes.d.ts +25 -0
  896. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +75 -0
  897. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +161 -0
  898. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +23 -0
  899. package/dist/components/features/theme-tweaker/use-applied-theme.d.ts +11 -0
  900. package/dist/components/layout/app-shell/app-layout.d.ts +12 -0
  901. package/dist/components/layout/app-shell/app-shell.types.d.ts +151 -0
  902. package/dist/components/layout/app-shell/index.d.ts +6 -0
  903. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +2 -0
  904. package/dist/components/layout/app-shell/stacked-layout.d.ts +2 -0
  905. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +2 -0
  906. package/dist/components/layout/auth/auth-card.d.ts +2 -0
  907. package/dist/components/layout/auth/auth-footer-links.d.ts +2 -0
  908. package/dist/components/layout/auth/auth-form.d.ts +11 -0
  909. package/dist/components/layout/auth/auth-hooks.d.ts +4 -0
  910. package/dist/components/layout/auth/auth-method-switch.d.ts +4 -0
  911. package/dist/components/layout/auth/auth-shell.d.ts +2 -0
  912. package/dist/components/layout/auth/auth-social-providers.d.ts +3 -0
  913. package/dist/components/layout/auth/auth-split-panel.d.ts +2 -0
  914. package/dist/components/layout/auth/auth.strings.d.ts +21 -0
  915. package/dist/components/layout/auth/auth.types.d.ts +282 -0
  916. package/dist/components/layout/auth/index.d.ts +10 -0
  917. package/dist/components/layout/containers/container.recipes.d.ts +5 -0
  918. package/dist/components/layout/containers/containers.types.d.ts +17 -0
  919. package/dist/components/layout/containers/content-container.d.ts +3 -0
  920. package/dist/components/layout/containers/index.d.ts +5 -0
  921. package/dist/components/layout/containers/page-viewport.d.ts +3 -0
  922. package/dist/components/layout/containers/section.d.ts +3 -0
  923. package/dist/components/layout/containers/two-column-layout.d.ts +27 -0
  924. package/dist/components/layout/header/header.d.ts +2 -0
  925. package/dist/components/layout/header/header.types.d.ts +198 -0
  926. package/dist/components/layout/header/index.d.ts +9 -0
  927. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +4 -0
  928. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +2 -0
  929. package/dist/components/layout/header/partials/header-notifications.d.ts +2 -0
  930. package/dist/components/layout/header/partials/header-search.d.ts +2 -0
  931. package/dist/components/layout/header/partials/header-tool-button.d.ts +4 -0
  932. package/dist/components/layout/header/partials/header-tool-popover.d.ts +2 -0
  933. package/dist/components/layout/header/partials/header-user-menu.d.ts +2 -0
  934. package/dist/components/layout/hooks/index.d.ts +3 -0
  935. package/dist/components/layout/hooks/use-active-path.d.ts +1 -0
  936. package/dist/components/layout/hooks/use-command-shortcut.d.ts +7 -0
  937. package/dist/components/layout/hooks/use-layout-link.d.ts +2 -0
  938. package/dist/components/layout/index.d.ts +24 -0
  939. package/dist/components/layout/layout.types.d.ts +91 -0
  940. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +5 -0
  941. package/dist/components/layout/navigation/breadcrumb-progress/index.d.ts +2 -0
  942. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +24 -0
  943. package/dist/components/layout/navigation/category-nav/category-nav.d.ts +5 -0
  944. package/dist/components/layout/navigation/category-nav/index.d.ts +2 -0
  945. package/dist/components/layout/navigation/category-nav/types.d.ts +22 -0
  946. package/dist/components/layout/navigation/index.d.ts +17 -0
  947. package/dist/components/layout/navigation/section-nav/index.d.ts +1 -0
  948. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +29 -0
  949. package/dist/components/layout/navigation/side-nav.d.ts +58 -0
  950. package/dist/components/layout/page/index.d.ts +4 -0
  951. package/dist/components/layout/page/page.d.ts +3 -0
  952. package/dist/components/layout/page/page.types.d.ts +138 -0
  953. package/dist/components/layout/page/partials/page-actions.d.ts +2 -0
  954. package/dist/components/layout/page/partials/page-header.d.ts +2 -0
  955. package/dist/components/layout/settings/index.d.ts +1 -0
  956. package/dist/components/layout/settings/settings.d.ts +65 -0
  957. package/dist/components/layout/sidebar/app-sidebar.d.ts +7 -0
  958. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +4 -0
  959. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +10 -0
  960. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +2 -0
  961. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +23 -0
  962. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +4 -0
  963. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +2 -0
  964. package/dist/components/layout/sidebar/index.d.ts +11 -0
  965. package/dist/components/layout/sidebar/sidebar.context.d.ts +17 -0
  966. package/dist/components/layout/sidebar/sidebar.d.ts +9 -0
  967. package/dist/components/layout/sidebar/sidebar.types.d.ts +218 -0
  968. package/dist/components/layout/sidebar/sidebar.utils.d.ts +29 -0
  969. package/dist/components/layout/workspace/index.d.ts +3 -0
  970. package/dist/components/layout/workspace/workspace.d.ts +6 -0
  971. package/dist/components/layout/workspace/workspace.strings.d.ts +18 -0
  972. package/dist/components/layout/workspace/workspace.types.d.ts +141 -0
  973. package/dist/components/primitives/date.d.ts +63 -0
  974. package/dist/components/primitives/dimensions.d.ts +30 -0
  975. package/dist/components/primitives/duration.d.ts +23 -0
  976. package/dist/components/primitives/file-size.d.ts +23 -0
  977. package/dist/components/primitives/index.d.ts +11 -0
  978. package/dist/components/primitives/initials-format.d.ts +21 -0
  979. package/dist/components/primitives/initials.d.ts +16 -0
  980. package/dist/components/primitives/link.d.ts +28 -0
  981. package/dist/components/primitives/money.d.ts +79 -0
  982. package/dist/components/primitives/name.d.ts +16 -0
  983. package/dist/components/primitives/number.d.ts +23 -0
  984. package/dist/components/primitives/value.d.ts +23 -0
  985. package/dist/components/typography/content-typography.d.ts +4 -0
  986. package/dist/components/typography/display-label.d.ts +5 -0
  987. package/dist/components/typography/heading.d.ts +16 -0
  988. package/dist/components/typography/index.d.ts +10 -0
  989. package/dist/components/typography/label.d.ts +8 -0
  990. package/dist/components/typography/rich-text/index.d.ts +2 -0
  991. package/dist/components/typography/rich-text/rich-text.d.ts +6 -0
  992. package/dist/components/typography/text-link.d.ts +7 -0
  993. package/dist/components/typography/text.d.ts +17 -0
  994. package/dist/components/typography/text.styles.d.ts +50 -0
  995. package/dist/components/ui/accordion.d.ts +6 -0
  996. package/dist/components/ui/alert-dialog.d.ts +21 -0
  997. package/dist/components/ui/avatar.d.ts +11 -0
  998. package/dist/components/ui/badge.d.ts +5 -0
  999. package/dist/components/ui/breadcrumb.d.ts +11 -0
  1000. package/dist/components/ui/button-group.d.ts +12 -0
  1001. package/dist/components/ui/button.d.ts +12 -0
  1002. package/dist/components/ui/calendar.d.ts +10 -0
  1003. package/dist/components/ui/card.d.ts +11 -0
  1004. package/dist/components/ui/checkbox.d.ts +6 -0
  1005. package/dist/components/ui/collapsible.d.ts +9 -0
  1006. package/dist/components/ui/combobox.d.ts +40 -0
  1007. package/dist/components/ui/command.d.ts +50 -0
  1008. package/dist/components/ui/dialog.d.ts +26 -0
  1009. package/dist/components/ui/disclosure-panel.d.ts +14 -0
  1010. package/dist/components/ui/empty.d.ts +11 -0
  1011. package/dist/components/ui/input-group.d.ts +18 -0
  1012. package/dist/components/ui/input.d.ts +3 -0
  1013. package/dist/components/ui/item.d.ts +22 -0
  1014. package/dist/components/ui/overlay.recipes.d.ts +2 -0
  1015. package/dist/components/ui/pagination.d.ts +17 -0
  1016. package/dist/components/ui/popover.d.ts +22 -0
  1017. package/dist/components/ui/select.d.ts +18 -0
  1018. package/dist/components/ui/separator.d.ts +3 -0
  1019. package/dist/components/ui/sheet.d.ts +25 -0
  1020. package/dist/components/ui/sidebar.d.ts +64 -0
  1021. package/dist/components/ui/skeleton.d.ts +2 -0
  1022. package/dist/components/ui/slot.d.ts +6 -0
  1023. package/dist/components/ui/sonner.d.ts +3 -0
  1024. package/dist/components/ui/switch.d.ts +5 -0
  1025. package/dist/components/ui/table.d.ts +13 -0
  1026. package/dist/components/ui/tabs.d.ts +10 -0
  1027. package/dist/components/ui/textarea.d.ts +3 -0
  1028. package/dist/components/ui/toggle-group.d.ts +12 -0
  1029. package/dist/components/ui/toggle.d.ts +8 -0
  1030. package/dist/components/ui/tooltip.d.ts +13 -0
  1031. package/dist/containers-6s-ucRQQ.js +125 -0
  1032. package/dist/containers-6s-ucRQQ.js.map +1 -0
  1033. package/dist/content-typography-CnwgMJ37.js +6 -0
  1034. package/dist/content-typography-CnwgMJ37.js.map +1 -0
  1035. package/dist/copyable-B7SBXJMr.js +65 -0
  1036. package/dist/copyable-B7SBXJMr.js.map +1 -0
  1037. package/dist/data-display-cWIRdeaf.js +1129 -0
  1038. package/dist/data-display-cWIRdeaf.js.map +1 -0
  1039. package/dist/date-BFNMnrS5.js +140 -0
  1040. package/dist/date-BFNMnrS5.js.map +1 -0
  1041. package/dist/date-picker-CA6ogMQB.js +1521 -0
  1042. package/dist/date-picker-CA6ogMQB.js.map +1 -0
  1043. package/dist/date-pickers-BPIKLdsD.js +224 -0
  1044. package/dist/date-pickers-BPIKLdsD.js.map +1 -0
  1045. package/dist/disclosure-panel-B0HFNZ9x.js +35 -0
  1046. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -0
  1047. package/dist/display-CFM5myut.js +343 -0
  1048. package/dist/display-CFM5myut.js.map +1 -0
  1049. package/dist/dropdown-menu-BlnyHr-9.js +186 -0
  1050. package/dist/dropdown-menu-BlnyHr-9.js.map +1 -0
  1051. package/dist/editable-text-recipe-Bkm6wKHp.js +10 -0
  1052. package/dist/editable-text-recipe-Bkm6wKHp.js.map +1 -0
  1053. package/dist/favicon.svg +1 -0
  1054. package/dist/features/activities.js +1360 -0
  1055. package/dist/features/activities.js.map +1 -0
  1056. package/dist/features/ai-chat.js +567 -0
  1057. package/dist/features/ai-chat.js.map +1 -0
  1058. package/dist/features/async-preview.js +478 -0
  1059. package/dist/features/async-preview.js.map +1 -0
  1060. package/dist/features/combobox.js +3 -0
  1061. package/dist/features/comments.js +3 -0
  1062. package/dist/features/data-view.js +519 -0
  1063. package/dist/features/data-view.js.map +1 -0
  1064. package/dist/features/email-composer/engine.js +2 -0
  1065. package/dist/features/email-composer.js +1099 -0
  1066. package/dist/features/email-composer.js.map +1 -0
  1067. package/dist/features/event-calendar.js +711 -0
  1068. package/dist/features/event-calendar.js.map +1 -0
  1069. package/dist/features/filters.js +3 -0
  1070. package/dist/features/global-search.js +593 -0
  1071. package/dist/features/global-search.js.map +1 -0
  1072. package/dist/features/kanban.js +425 -0
  1073. package/dist/features/kanban.js.map +1 -0
  1074. package/dist/features/map/images/layers-2x.png +0 -0
  1075. package/dist/features/map/images/layers.png +0 -0
  1076. package/dist/features/map/images/marker-icon-2x.png +0 -0
  1077. package/dist/features/map/images/marker-icon.png +0 -0
  1078. package/dist/features/map/images/marker-shadow.png +0 -0
  1079. package/dist/features/map/images/spritesheet-2x.png +0 -0
  1080. package/dist/features/map/images/spritesheet.png +0 -0
  1081. package/dist/features/map/images/spritesheet.svg +156 -0
  1082. package/dist/features/map/style.css +809 -0
  1083. package/dist/features/map.js +1052 -0
  1084. package/dist/features/map.js.map +1 -0
  1085. package/dist/features/media-library.js +2007 -0
  1086. package/dist/features/media-library.js.map +1 -0
  1087. package/dist/features/mentions.js +3 -0
  1088. package/dist/features/overlays.js +3 -0
  1089. package/dist/features/products.js +3077 -0
  1090. package/dist/features/products.js.map +1 -0
  1091. package/dist/features/questionnaire.js +366 -0
  1092. package/dist/features/questionnaire.js.map +1 -0
  1093. package/dist/features/resource-assignment.js +317 -0
  1094. package/dist/features/resource-assignment.js.map +1 -0
  1095. package/dist/features/resource.js +254 -0
  1096. package/dist/features/resource.js.map +1 -0
  1097. package/dist/features/rich-text-editor.js +23 -0
  1098. package/dist/features/rich-text-editor.js.map +1 -0
  1099. package/dist/features/schema-form.js +744 -0
  1100. package/dist/features/schema-form.js.map +1 -0
  1101. package/dist/features/suggestions.js +149 -0
  1102. package/dist/features/suggestions.js.map +1 -0
  1103. package/dist/features/sync.js +136 -0
  1104. package/dist/features/sync.js.map +1 -0
  1105. package/dist/features/table.js +3 -0
  1106. package/dist/features/theme-tweaker.js +2083 -0
  1107. package/dist/features/theme-tweaker.js.map +1 -0
  1108. package/dist/feedback-DWUkgEjR.js +233 -0
  1109. package/dist/feedback-DWUkgEjR.js.map +1 -0
  1110. package/dist/field-affordance-recipes-IjzPrCTw.js +17 -0
  1111. package/dist/field-affordance-recipes-IjzPrCTw.js.map +1 -0
  1112. package/dist/field-state-recipes-CBTRt9Bt.js +11 -0
  1113. package/dist/field-state-recipes-CBTRt9Bt.js.map +1 -0
  1114. package/dist/filters-BhsUtsxW.js +2203 -0
  1115. package/dist/filters-BhsUtsxW.js.map +1 -0
  1116. package/dist/form-field-Bn7ZH1rA.js +48 -0
  1117. package/dist/form-field-Bn7ZH1rA.js.map +1 -0
  1118. package/dist/form-sizing-BWs70_a2.js +100 -0
  1119. package/dist/form-sizing-BWs70_a2.js.map +1 -0
  1120. package/dist/format-iamDSqs2.js +110 -0
  1121. package/dist/format-iamDSqs2.js.map +1 -0
  1122. package/dist/forms-B7pzS25o.js +194 -0
  1123. package/dist/forms-B7pzS25o.js.map +1 -0
  1124. package/dist/forms-numeric-BUBxELBv.js +867 -0
  1125. package/dist/forms-numeric-BUBxELBv.js.map +1 -0
  1126. package/dist/header-C59QZyxV.js +452 -0
  1127. package/dist/header-C59QZyxV.js.map +1 -0
  1128. package/dist/hooks/use-debounce.d.ts +1 -0
  1129. package/dist/hooks/use-debounced-callback.d.ts +40 -0
  1130. package/dist/hooks/use-files.d.ts +48 -0
  1131. package/dist/hooks/use-mobile.d.ts +2 -0
  1132. package/dist/hooks/useFormErrors.d.ts +7 -0
  1133. package/dist/hooks-CM1Vp9Pe.js +88 -0
  1134. package/dist/hooks-CM1Vp9Pe.js.map +1 -0
  1135. package/dist/http-CLTVJc5I.js +331 -0
  1136. package/dist/http-CLTVJc5I.js.map +1 -0
  1137. package/dist/icon-badge-Dv0RYQwj.js +53 -0
  1138. package/dist/icon-badge-Dv0RYQwj.js.map +1 -0
  1139. package/dist/icon-size-B6PVwjbC.js +18 -0
  1140. package/dist/icon-size-B6PVwjbC.js.map +1 -0
  1141. package/dist/index.d.ts +14 -0
  1142. package/dist/index.js +7 -0
  1143. package/dist/initials-format-CDoQEOd_.js +35 -0
  1144. package/dist/initials-format-CDoQEOd_.js.map +1 -0
  1145. package/dist/input-WwYQZJzG.js +202 -0
  1146. package/dist/input-WwYQZJzG.js.map +1 -0
  1147. package/dist/input-ci9fIgFH.js +20 -0
  1148. package/dist/input-ci9fIgFH.js.map +1 -0
  1149. package/dist/item-pJ0GsOiJ.js +257 -0
  1150. package/dist/item-pJ0GsOiJ.js.map +1 -0
  1151. package/dist/layout/app-shell.js +3 -0
  1152. package/dist/layout/auth.js +3 -0
  1153. package/dist/layout/containers.js +3 -0
  1154. package/dist/layout/header.js +3 -0
  1155. package/dist/layout/hooks.js +3 -0
  1156. package/dist/layout/navigation.js +3 -0
  1157. package/dist/layout/page.js +3 -0
  1158. package/dist/layout/settings.js +3 -0
  1159. package/dist/layout/sidebar.js +4 -0
  1160. package/dist/layout/workspace.js +3 -0
  1161. package/dist/layout.js +13 -0
  1162. package/dist/layout.types-Cn7aUzJp.js +20 -0
  1163. package/dist/layout.types-Cn7aUzJp.js.map +1 -0
  1164. package/dist/lib/action-presentation.d.ts +15 -0
  1165. package/dist/lib/affordance-geometry.generated.d.ts +27 -0
  1166. package/dist/lib/anchored-positioning.d.ts +5 -0
  1167. package/dist/lib/command-filter.d.ts +1 -0
  1168. package/dist/lib/component-vocabulary.d.ts +12 -0
  1169. package/dist/lib/editable-text-recipe.d.ts +6 -0
  1170. package/dist/lib/email-composer.d.ts +6 -0
  1171. package/dist/lib/field-affordance-recipes.d.ts +20 -0
  1172. package/dist/lib/field-state-recipes.d.ts +10 -0
  1173. package/dist/lib/format.d.ts +53 -0
  1174. package/dist/lib/motion-recipes.d.ts +8 -0
  1175. package/dist/lib/navigation-row-recipes.d.ts +26 -0
  1176. package/dist/lib/overlay-anatomy-recipes.d.ts +8 -0
  1177. package/dist/lib/row-recipes.d.ts +3 -0
  1178. package/dist/lib/sanitize-html.d.ts +8 -0
  1179. package/dist/lib/strings.d.ts +16 -0
  1180. package/dist/lib/strings.js +32 -0
  1181. package/dist/lib/strings.js.map +1 -0
  1182. package/dist/lib/surface-recipes.d.ts +27 -0
  1183. package/dist/lib/theme-scope.d.ts +31 -0
  1184. package/dist/lib/token-merge.generated.d.ts +2 -0
  1185. package/dist/lib/track-recipes.d.ts +4 -0
  1186. package/dist/lib/ui-provider/defaults.d.ts +12 -0
  1187. package/dist/lib/ui-provider/hooks.d.ts +13 -0
  1188. package/dist/lib/ui-provider/index.d.ts +28 -0
  1189. package/dist/lib/ui-provider/provider.d.ts +15 -0
  1190. package/dist/lib/ui-provider/scale.d.ts +5 -0
  1191. package/dist/lib/ui-provider/store.d.ts +11 -0
  1192. package/dist/lib/ui-provider/types.d.ts +157 -0
  1193. package/dist/lib/utils.d.ts +2 -0
  1194. package/dist/lib/utils.js +2 -0
  1195. package/dist/map-demo-tile.svg +1 -0
  1196. package/dist/media-gallery-DhDRgnVZ.js +200 -0
  1197. package/dist/media-gallery-DhDRgnVZ.js.map +1 -0
  1198. package/dist/mentions-B8Ko-fhS.js +563 -0
  1199. package/dist/mentions-B8Ko-fhS.js.map +1 -0
  1200. package/dist/message-COsdEvXT.js +108 -0
  1201. package/dist/message-COsdEvXT.js.map +1 -0
  1202. package/dist/motion-recipes-B6jKXEcN.js +27 -0
  1203. package/dist/motion-recipes-B6jKXEcN.js.map +1 -0
  1204. package/dist/navigation-BUIn2Qxx.js +265 -0
  1205. package/dist/navigation-BUIn2Qxx.js.map +1 -0
  1206. package/dist/navigation-DBEu4POU.js +267 -0
  1207. package/dist/navigation-DBEu4POU.js.map +1 -0
  1208. package/dist/navigation-row-recipes-GVh11KiT.js +29 -0
  1209. package/dist/navigation-row-recipes-GVh11KiT.js.map +1 -0
  1210. package/dist/number-BNT_BIzJ.js +269 -0
  1211. package/dist/number-BNT_BIzJ.js.map +1 -0
  1212. package/dist/overlay.recipes-BxW5FIfK.js +6 -0
  1213. package/dist/overlay.recipes-BxW5FIfK.js.map +1 -0
  1214. package/dist/overlays-B11wZka6.js +982 -0
  1215. package/dist/overlays-B11wZka6.js.map +1 -0
  1216. package/dist/page-BV6ioQg3.js +202 -0
  1217. package/dist/page-BV6ioQg3.js.map +1 -0
  1218. package/dist/page-header-DQRa0jug.js +112 -0
  1219. package/dist/page-header-DQRa0jug.js.map +1 -0
  1220. package/dist/pagination-C29vvt3I.js +149 -0
  1221. package/dist/pagination-C29vvt3I.js.map +1 -0
  1222. package/dist/popover-CoLDEg19.js +194 -0
  1223. package/dist/popover-CoLDEg19.js.map +1 -0
  1224. package/dist/popover-menu-GLIQTJTx.js +99 -0
  1225. package/dist/popover-menu-GLIQTJTx.js.map +1 -0
  1226. package/dist/popover.recipes-zgBhMlUu.js +34 -0
  1227. package/dist/popover.recipes-zgBhMlUu.js.map +1 -0
  1228. package/dist/primitives-DKPOGVpj.js +330 -0
  1229. package/dist/primitives-DKPOGVpj.js.map +1 -0
  1230. package/dist/primitives.js +7 -0
  1231. package/dist/progress-BOe8l_FZ.js +168 -0
  1232. package/dist/progress-BOe8l_FZ.js.map +1 -0
  1233. package/dist/receipt-BM8xsGFy.js +113 -0
  1234. package/dist/receipt-BM8xsGFy.js.map +1 -0
  1235. package/dist/rich-text-B7sBAdDG.js +32 -0
  1236. package/dist/rich-text-B7sBAdDG.js.map +1 -0
  1237. package/dist/rich-text-editor-CoVrTiSv.js +575 -0
  1238. package/dist/rich-text-editor-CoVrTiSv.js.map +1 -0
  1239. package/dist/rich-text-editor.recipes-DxvOE0Lp.js +72 -0
  1240. package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +1 -0
  1241. package/dist/rich-text-editor.strings-BpnIQgMl.js +25 -0
  1242. package/dist/rich-text-editor.strings-BpnIQgMl.js.map +1 -0
  1243. package/dist/row-recipes-DL8n7t_b.js +10 -0
  1244. package/dist/row-recipes-DL8n7t_b.js.map +1 -0
  1245. package/dist/sanitize-html-BG9FGe-j.js +64 -0
  1246. package/dist/sanitize-html-BG9FGe-j.js.map +1 -0
  1247. package/dist/scroll-area-BheMQ270.js +47 -0
  1248. package/dist/scroll-area-BheMQ270.js.map +1 -0
  1249. package/dist/select-B2mb-qN2.js +108 -0
  1250. package/dist/select-B2mb-qN2.js.map +1 -0
  1251. package/dist/separator-DO0EbCEm.js +17 -0
  1252. package/dist/separator-DO0EbCEm.js.map +1 -0
  1253. package/dist/separator-Gk_WXH-l.js +21 -0
  1254. package/dist/separator-Gk_WXH-l.js.map +1 -0
  1255. package/dist/services/actions/action-adapters.d.ts +77 -0
  1256. package/dist/services/actions/action-overlay-outlet.d.ts +3 -0
  1257. package/dist/services/actions/action-provider.d.ts +7 -0
  1258. package/dist/services/actions/action-scope.d.ts +3 -0
  1259. package/dist/services/actions/action-store.d.ts +55 -0
  1260. package/dist/services/actions/actions.strings.d.ts +2 -0
  1261. package/dist/services/actions/actions.types.d.ts +322 -0
  1262. package/dist/services/actions/hooks.d.ts +8 -0
  1263. package/dist/services/actions/index.d.ts +8 -0
  1264. package/dist/services/actions.js +811 -0
  1265. package/dist/services/actions.js.map +1 -0
  1266. package/dist/settings-BnCyyPOJ.js +160 -0
  1267. package/dist/settings-BnCyyPOJ.js.map +1 -0
  1268. package/dist/sheet-B-q914Ad.js +205 -0
  1269. package/dist/sheet-B-q914Ad.js.map +1 -0
  1270. package/dist/sidebar-C_2p3Tfj.js +501 -0
  1271. package/dist/sidebar-C_2p3Tfj.js.map +1 -0
  1272. package/dist/sidebar-DPR7fmqN.js +598 -0
  1273. package/dist/sidebar-DPR7fmqN.js.map +1 -0
  1274. package/dist/skeleton-CmT1ppqb.js +264 -0
  1275. package/dist/skeleton-CmT1ppqb.js.map +1 -0
  1276. package/dist/slot-CLF9kLrS.js +16 -0
  1277. package/dist/slot-CLF9kLrS.js.map +1 -0
  1278. package/dist/smart-card-CYLn46e6.js +578 -0
  1279. package/dist/smart-card-CYLn46e6.js.map +1 -0
  1280. package/dist/spinner-BY9HbUEh.js +78 -0
  1281. package/dist/spinner-BY9HbUEh.js.map +1 -0
  1282. package/dist/structure-MvKVq-oL.js +95 -0
  1283. package/dist/structure-MvKVq-oL.js.map +1 -0
  1284. package/dist/structure.recipes-Bqhf9oIh.js +548 -0
  1285. package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
  1286. package/dist/style.css +3 -0
  1287. package/dist/surface-recipes-CQfRr-VL.js +27 -0
  1288. package/dist/surface-recipes-CQfRr-VL.js.map +1 -0
  1289. package/dist/table-BS39xnlq.js +1424 -0
  1290. package/dist/table-BS39xnlq.js.map +1 -0
  1291. package/dist/table-DnlAJ-xR.js +146 -0
  1292. package/dist/table-DnlAJ-xR.js.map +1 -0
  1293. package/dist/tabs-B5cNMWiP.js +187 -0
  1294. package/dist/tabs-B5cNMWiP.js.map +1 -0
  1295. package/dist/text-inputs-Dh9XGyiS.js +331 -0
  1296. package/dist/text-inputs-Dh9XGyiS.js.map +1 -0
  1297. package/dist/text.styles-BwB7vAF2.js +64 -0
  1298. package/dist/text.styles-BwB7vAF2.js.map +1 -0
  1299. package/dist/theme-scope-kStaAer0.js +39 -0
  1300. package/dist/theme-scope-kStaAer0.js.map +1 -0
  1301. package/dist/theme.css +872 -0
  1302. package/dist/timelines-B9ICkQcV.js +446 -0
  1303. package/dist/timelines-B9ICkQcV.js.map +1 -0
  1304. package/dist/track-recipes-LLPNVwFg.js +10 -0
  1305. package/dist/track-recipes-LLPNVwFg.js.map +1 -0
  1306. package/dist/tree-BdWSaoFT.js +185 -0
  1307. package/dist/tree-BdWSaoFT.js.map +1 -0
  1308. package/dist/types/index.d.ts +11 -0
  1309. package/dist/types/locale.types.d.ts +7 -0
  1310. package/dist/types/pagination.types.d.ts +24 -0
  1311. package/dist/typography/rich-text.js +3 -0
  1312. package/dist/typography-Cv8MT-82.js +96 -0
  1313. package/dist/typography-Cv8MT-82.js.map +1 -0
  1314. package/dist/typography.js +3 -0
  1315. package/dist/ui-provider-CftIB6TY.js +128 -0
  1316. package/dist/ui-provider-CftIB6TY.js.map +1 -0
  1317. package/dist/ui-provider.js +4 -0
  1318. package/dist/upload-D8Za5x_c.js +849 -0
  1319. package/dist/upload-D8Za5x_c.js.map +1 -0
  1320. package/dist/upload-queue-hIIYBLS7.js +410 -0
  1321. package/dist/upload-queue-hIIYBLS7.js.map +1 -0
  1322. package/dist/usage-card-DnmnJ58D.js +458 -0
  1323. package/dist/usage-card-DnmnJ58D.js.map +1 -0
  1324. package/dist/use-debounce-DZ_1ZBPa.js +18 -0
  1325. package/dist/use-debounce-DZ_1ZBPa.js.map +1 -0
  1326. package/dist/use-debounced-callback-Cx1h-hdv.js +30 -0
  1327. package/dist/use-debounced-callback-Cx1h-hdv.js.map +1 -0
  1328. package/dist/use-file-drop-target-BX7GnhoQ.js +39 -0
  1329. package/dist/use-file-drop-target-BX7GnhoQ.js.map +1 -0
  1330. package/dist/use-mobile-vaLKwgyf.js +15 -0
  1331. package/dist/use-mobile-vaLKwgyf.js.map +1 -0
  1332. package/dist/utils-C2EKeIw3.js +72 -0
  1333. package/dist/utils-C2EKeIw3.js.map +1 -0
  1334. package/dist/value-inputs-DX2dbxjj.js +824 -0
  1335. package/dist/value-inputs-DX2dbxjj.js.map +1 -0
  1336. package/dist/workspace-C1PZmk8L.js +402 -0
  1337. package/dist/workspace-C1PZmk8L.js.map +1 -0
  1338. package/docs/consumer-skill/SKILL.md +135 -0
  1339. package/docs/consumer-skill/examples/app-layout.tsx +31 -0
  1340. package/docs/consumer-skill/examples/composition.tsx +37 -0
  1341. package/docs/consumer-skill/examples/content-workflow.tsx +13 -0
  1342. package/docs/consumer-skill/examples/destructive-confirm.tsx +42 -0
  1343. package/docs/consumer-skill/examples/detail.tsx +27 -0
  1344. package/docs/consumer-skill/examples/edit.tsx +61 -0
  1345. package/docs/consumer-skill/examples/email-composer.tsx +25 -0
  1346. package/docs/consumer-skill/examples/hierarchy-capture.tsx +25 -0
  1347. package/docs/consumer-skill/examples/index-table.tsx +36 -0
  1348. package/docs/consumer-skill/examples/manifest.json +108 -0
  1349. package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
  1350. package/docs/consumer-skill/examples/receipt.tsx +19 -0
  1351. package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
  1352. package/docs/consumer-skill/references/composition.md +273 -0
  1353. package/docs/consumer-skill/references/design-contract.md +146 -0
  1354. package/docs/consumer-skill/references/discovery.md +50 -0
  1355. package/docs/consumer-skill/references/installation.md +83 -0
  1356. package/docs/consumer-skill/references/integration.md +69 -0
  1357. package/docs/consumer-skill/references/public-api.json +17750 -0
  1358. package/docs/consumer-skill/references/review.md +74 -0
  1359. package/docs/consumer-skill/references/theming.md +56 -0
  1360. package/docs/consumer-skill/references/tokens.json +422 -0
  1361. package/docs/consumer-skill/references/workflows.md +135 -0
  1362. package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
  1363. package/docs/consumer-skill/scripts/composition-policy.mjs +155 -0
  1364. package/docs/consumer-skill/scripts/discovery.mjs +84 -0
  1365. package/docs/consumer-skill/scripts/find-components.mjs +11 -0
  1366. package/docs/consumer-skill/scripts/surface-policy.mjs +22 -0
  1367. package/package.json +642 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-D8Za5x_c.js","names":["React","resolveComponentScale","useFormattingConfig","useDensityConfig","cn","Button","Text","AlertTitle","Alert","AlertDescription","formatFileSize","FileSize","ItemGroup","useFileDropTarget","Dropzone","FilePickerInput","AttachmentFileIcon","AttachmentTitle","AttachmentDescription","AttachmentActions","AttachmentMedia","AttachmentContent","Attachment","React$1","React","defaultFileUploadStrings","fileName","accept","minimum","maximum","fileFingerprint","file","fileMatchesAccept","fileType","part","rule","validateOneFile","options","strings","minSizeBytes","formatSize","maxSizeBytes","validateFile","result","validateFileSelection","nextFiles","append","current","fingerprints","accepted","rejections","incoming","validationRejection","fingerprint","maxFiles","hasOwnValue","props","normalizeMaximum","value","fileKey","index","assignInputRef","node","forwardedRef","SelectedFileRow","replaceLabel","removeLabel","showReplace","UploadIcon","onReplace","Trash2Icon","onRemove","FileUploadImpl","sizeProp","stringsProp","_value","_defaultValue","_onValueChange","_selectionMode","_maxFiles","ariaDescribedBy","nativeAriaInvalid","nativeInputProps","useStrings","size","defaultScale","controlled","uncontrolledFiles","setUncontrolledFiles","useState","setRejections","inputRef","useRef","rootRef","continueFocus","pickerWasFocused","generatedId","useId","files","useMemo","target","multipleProps","multiple","errorId","describedBy","hasInvalidState","invalid","commitFiles","useCallback","nextFile","bytes","locale","handleFiles","disabled","onRejectedFiles","clearNativeInput","handleRemove","fileIndex","openPicker","inputProps","picker","className","dropTargetProps","isDragging","TriangleAlert","rejection","FileUpload","forwardRef","FILE_SIZE_UNITS","defaultFormatSize","unitIndex","idCounter","generateId","getExtension","getFingerprint","createMeta","extension","rules","allowed","toErrorMap","useFiles","setFilesState","filesRef","processFiles","incomingFiles","previousFiles","replace","meta","nextRejections","id","MAX_FILE_SIZE_MB","ASPECT_RATIO_CLASSES","defaultImageUploadStrings","count","getImageUploadRejectionMessage","code","details","ImageUploadImpl","inputId","allowedExtensions","parsed","item","subtype","ext","setFiles","removeAll","selected","selectOrChangeButtonLabel","filePreviewUrl","setFilePreviewUrl","acceptedExtensionsLabel","url","previewUrl","initialPreviewUrl","hasPreview","previewAlt","aspectClass","aspectRatio","imgFitClass","fit","computedMaxWidth","maxWidth","wrapperStyle","layout","inlinePreviewStyle","acceptedFile","onValueChange","handleInput","event","triggerFileDialog","remove","ImageIcon","Trash2","ImageUpload","defaultAvatarUploadStrings","getAvatarUploadRejectionMessage","SIZE_PX","AvatarUploadImpl","sizes","s","list","initials","Camera","X","AvatarUpload"],"sources":["../src/components/base/upload/file-upload.strings.ts","../src/components/base/upload/file-upload.validation.ts","../src/components/base/upload/file-upload.tsx","../src/hooks/use-files.ts","../src/components/base/upload/image-upload.tsx","../src/components/base/upload/avatar-upload.tsx"],"sourcesContent":["export interface FileUploadStrings {\n\tinstruction: string;\n\thelper: string;\n\tbrowse: string;\n\treplace: string;\n\tremove: string;\n\tdragOver: string;\n\terrorsHeading: string;\n\treplaceFileAria: (fileName: string) => string;\n\tremoveFileAria: (fileName: string) => string;\n\tinvalidType: (fileName: string, accept: string) => string;\n\tfileTooSmall: (fileName: string, minimum: string) => string;\n\tfileTooLarge: (fileName: string, maximum: string) => string;\n\ttooManyFiles: (fileName: string, maximum: number) => string;\n\tduplicateFile: (fileName: string) => string;\n\tcustomValidationFailed: (fileName: string) => string;\n}\n\nexport const defaultFileUploadStrings: FileUploadStrings = {\n\tinstruction: 'Drag files here or click to browse',\n\thelper: '',\n\tbrowse: 'Browse files',\n\treplace: 'Replace file',\n\tremove: 'Remove file',\n\tdragOver: 'Release to select',\n\terrorsHeading: 'Some files could not be selected',\n\treplaceFileAria: (fileName) => `Replace ${fileName}`,\n\tremoveFileAria: (fileName) => `Remove ${fileName}`,\n\tinvalidType: (fileName, accept) => `${fileName} is not an accepted file type (${accept}).`,\n\tfileTooSmall: (fileName, minimum) => `${fileName} is smaller than the minimum size of ${minimum}.`,\n\tfileTooLarge: (fileName, maximum) => `${fileName} is larger than the maximum size of ${maximum}.`,\n\ttooManyFiles: (fileName, maximum) => `${fileName} exceeds the limit of ${maximum} files.`,\n\tduplicateFile: (fileName) => `${fileName} has already been selected.`,\n\tcustomValidationFailed: (fileName) => `${fileName} did not pass validation.`,\n};\n\n","import type {\n\tFileUploadRejection,\n\tFileUploadValidator,\n} from './file-upload.types';\nimport type { FileUploadStrings } from './file-upload.strings';\n\ninterface ValidateFileSelectionOptions {\n\tincoming: File[];\n\tcurrent: File[];\n\taccept?: string;\n\tminSizeBytes?: number;\n\tmaxSizeBytes?: number;\n\tmaxFiles: number;\n\tappend: boolean;\n\tvalidateFile?: FileUploadValidator;\n\tformatSize: (bytes: number) => string;\n\tstrings: FileUploadStrings;\n}\n\nexport interface FileSelectionResult {\n\taccepted: File[];\n\tnextFiles: File[];\n\trejections: FileUploadRejection[];\n}\n\nfunction fileFingerprint(file: File) {\n\treturn `${file.name}\\u0000${file.size}\\u0000${file.type}\\u0000${file.lastModified}`;\n}\n\nfunction fileMatchesAccept(file: File, accept?: string) {\n\tif (!accept?.trim()) return true;\n\n\tconst fileName = file.name.toLowerCase();\n\tconst fileType = file.type.toLowerCase();\n\treturn accept\n\t\t.split(',')\n\t\t.map((part) => part.trim().toLowerCase())\n\t\t.filter(Boolean)\n\t\t.some((rule) => {\n\t\t\tif (rule.startsWith('.')) return fileName.endsWith(rule);\n\t\t\tif (rule.endsWith('/*')) return fileType.startsWith(rule.slice(0, -1));\n\t\t\treturn fileType === rule;\n\t\t});\n}\n\nfunction validateOneFile(\n\tfile: File,\n\toptions: Pick<\n\t\tValidateFileSelectionOptions,\n\t\t'accept' | 'minSizeBytes' | 'maxSizeBytes' | 'validateFile' | 'formatSize' | 'strings'\n\t>,\n): FileUploadRejection | undefined {\n\tconst { accept, minSizeBytes, maxSizeBytes, validateFile, formatSize, strings } = options;\n\n\tif (!fileMatchesAccept(file, accept)) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'invalid-type',\n\t\t\tmessage: strings.invalidType(file.name, accept ?? ''),\n\t\t};\n\t}\n\tif (minSizeBytes !== undefined && file.size < minSizeBytes) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'too-small',\n\t\t\tmessage: strings.fileTooSmall(file.name, formatSize(minSizeBytes)),\n\t\t};\n\t}\n\tif (maxSizeBytes !== undefined && file.size > maxSizeBytes) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'too-large',\n\t\t\tmessage: strings.fileTooLarge(file.name, formatSize(maxSizeBytes)),\n\t\t};\n\t}\n\tif (validateFile) {\n\t\tlet result: boolean | string;\n\t\ttry {\n\t\t\tresult = validateFile(file);\n\t\t} catch {\n\t\t\tresult = false;\n\t\t}\n\t\tif (result !== true) {\n\t\t\treturn {\n\t\t\t\tfile,\n\t\t\t\tcode: 'custom',\n\t\t\t\tmessage: typeof result === 'string'\n\t\t\t\t\t? result\n\t\t\t\t\t: strings.customValidationFailed(file.name),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nexport function validateFileSelection({\n\tincoming,\n\tcurrent,\n\taccept,\n\tminSizeBytes,\n\tmaxSizeBytes,\n\tmaxFiles,\n\tappend,\n\tvalidateFile,\n\tformatSize,\n\tstrings,\n}: ValidateFileSelectionOptions): FileSelectionResult {\n\tconst nextFiles = append ? [...current] : [];\n\tconst fingerprints = new Set(nextFiles.map(fileFingerprint));\n\tconst accepted: File[] = [];\n\tconst rejections: FileUploadRejection[] = [];\n\n\tfor (const file of incoming) {\n\t\tconst validationRejection = validateOneFile(file, {\n\t\t\taccept,\n\t\t\tminSizeBytes,\n\t\t\tmaxSizeBytes,\n\t\t\tvalidateFile,\n\t\t\tformatSize,\n\t\t\tstrings,\n\t\t});\n\t\tif (validationRejection) {\n\t\t\trejections.push(validationRejection);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst fingerprint = fileFingerprint(file);\n\t\tif (fingerprints.has(fingerprint)) {\n\t\t\trejections.push({\n\t\t\t\tfile,\n\t\t\t\tcode: 'duplicate',\n\t\t\t\tmessage: strings.duplicateFile(file.name),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (nextFiles.length >= maxFiles) {\n\t\t\trejections.push({\n\t\t\t\tfile,\n\t\t\t\tcode: 'too-many',\n\t\t\t\tmessage: strings.tooManyFiles(file.name, maxFiles),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\taccepted.push(file);\n\t\tnextFiles.push(file);\n\t\tfingerprints.add(fingerprint);\n\t}\n\n\treturn { accepted, nextFiles, rejections };\n}\n","/**\n * FileUpload — controlled or uncontrolled local-file selection with validation.\n * The component never transfers files; consumers own upload/network behavior.\n */\nimport {\n\tforwardRef,\n\tuseCallback,\n\tuseLayoutEffect,\n\tuseId,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\ttype ForwardedRef,\n\ttype MutableRefObject,\n} from 'react';\nimport {\n\tTrash2Icon,\n\tTriangleAlert,\n\tUploadIcon,\n} from 'lucide-react';\n\nimport { Button } from '../buttons';\nimport { Alert, AlertDescription, AlertTitle } from '../feedback';\nimport {\n\tItemGroup,\n} from '../item';\nimport { Attachment, AttachmentMedia, AttachmentContent, AttachmentTitle, AttachmentDescription, AttachmentActions, AttachmentFileIcon } from '../attachment';\nimport { FileSize, formatFileSize } from '../../primitives';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { useFormattingConfig, useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\n\nimport { Dropzone } from './dropzone';\nimport {\n\tFilePickerInput,\n\ttype FilePickerNativeInputProps,\n} from './file-picker-input';\nimport {\n\tdefaultFileUploadStrings,\n\ttype FileUploadStrings,\n} from './file-upload.strings';\nimport type {\n\tFileUploadRejection,\n\tMultipleFileUploadProps,\n\tSingleFileUploadProps,\n} from './file-upload.types';\nimport { validateFileSelection } from './file-upload.validation';\nimport { useFileDropTarget } from './use-file-drop-target';\n\n/** Public discriminated single/multiple contract, declared here for docgen discoverability. */\nexport type FileUploadProps = SingleFileUploadProps | MultipleFileUploadProps;\n\nfunction hasOwnValue(props: FileUploadProps) {\n\treturn Object.prototype.hasOwnProperty.call(props, 'value');\n}\n\nfunction normalizeMaximum(value: number | undefined) {\n\tif (value === undefined) return Number.MAX_SAFE_INTEGER;\n\tif (!Number.isFinite(value)) return Number.MAX_SAFE_INTEGER;\n\treturn Math.max(1, Math.floor(value));\n}\n\nfunction fileKey(file: File, index: number) {\n\treturn `${file.name}-${file.size}-${file.type}-${file.lastModified}-${index}`;\n}\n\nfunction assignInputRef(\n\tnode: HTMLInputElement | null,\n\tlocalRef: MutableRefObject<HTMLInputElement | null>,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tlocalRef.current = node;\n\tif (typeof forwardedRef === 'function') forwardedRef(node);\n\telse if (forwardedRef) forwardedRef.current = node;\n}\n\ninterface SelectedFileRowProps {\n\tfile: File;\n\tindex: number;\n\tdisabled: boolean;\n\tsize: ComponentScale;\n\tlocale?: string;\n\tstrings: FileUploadStrings;\n\tshowReplace: boolean;\n\tonReplace: () => void;\n\tonRemove: (index: number) => void;\n}\n\nfunction SelectedFileRow({\n\tfile,\n\tindex,\n\tdisabled,\n\tsize,\n\tlocale,\n\tstrings,\n\tshowReplace,\n\tonReplace,\n\tonRemove,\n}: SelectedFileRowProps) {\n\tconst replaceLabel = strings.replaceFileAria(file.name);\n\tconst removeLabel = strings.removeFileAria(file.name);\n\n\treturn (\n\t\t<Attachment\n\t\t\tvariant=\"outline\"\n\t\t\tsize={size}\n\t\t\tclassName=\"file-upload--file flex-nowrap bg-card text-card-foreground\"\n\t\t>\n\t\t\t<AttachmentMedia variant=\"icon\" className=\"file-upload--file-media self-center group-has-data-[slot=item-description]/item:self-center\">\n\t\t\t\t<AttachmentFileIcon name={file.name} />\n\t\t\t</AttachmentMedia>\n\t\t\t<AttachmentContent className=\"file-upload--file-content min-w-0\">\n\t\t\t\t<AttachmentTitle className=\"file-upload--file-name truncate\" title={file.name}>\n\t\t\t\t\t{file.name}\n\t\t\t\t</AttachmentTitle>\n\t\t\t\t<AttachmentDescription className=\"file-upload--file-size\" clamp={1}>\n\t\t\t\t\t<FileSize\n\t\t\t\t\t\tvalue={file.size}\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t/>\n\t\t\t\t</AttachmentDescription>\n\t\t\t</AttachmentContent>\n\t\t\t<AttachmentActions className=\"file-upload--actions gap-space-xs\">\n\t\t\t\t{showReplace && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\ticon={UploadIcon}\n\t\t\t\t\t\taria-label={replaceLabel}\n\t\t\t\t\t\ttitle={replaceLabel}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonClick={onReplace}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t{strings.replace}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"destructive\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\ticon={Trash2Icon}\n\t\t\t\t\taria-label={removeLabel}\n\t\t\t\t\ttitle={removeLabel}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonClick={() => onRemove(index)}\n\t\t\t\t>\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t{strings.remove}\n\t\t\t\t\t</Text>\n\t\t\t\t</Button>\n\t\t\t</AttachmentActions>\n\t\t</Attachment>\n\t);\n}\n\nfunction FileUploadImpl(\n\tprops: FileUploadProps,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tconst {\n\t\taccept,\n\t\tdisabled = false,\n\t\tinvalid = false,\n\t\tsize: sizeProp,\n\t\tminSizeBytes,\n\t\tmaxSizeBytes,\n\t\tvalidateFile,\n\t\tonRejectedFiles,\n\t\tclassName,\n\t\tstrings: stringsProp,\n\t\tmultiple = false,\n\t\tvalue: _value,\n\t\tdefaultValue: _defaultValue,\n\t\tonValueChange: _onValueChange,\n\t\tselectionMode: _selectionMode,\n\t\tmaxFiles: _maxFiles,\n\t\t'aria-describedby': ariaDescribedBy,\n\t\t'aria-invalid': nativeAriaInvalid,\n\t\t...nativeInputProps\n\t} = props;\n\tconst strings = useStrings(defaultFileUploadStrings, stringsProp);\n\tconst { defaultScale } = useDensityConfig();\n\tconst { locale } = useFormattingConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst controlled = hasOwnValue(props);\n\tconst [uncontrolledFiles, setUncontrolledFiles] = useState<File[]>(() => {\n\t\tif (props.multiple) return [...(props.defaultValue ?? [])];\n\t\treturn props.defaultValue ? [props.defaultValue] : [];\n\t});\n\tconst [rejections, setRejections] = useState<FileUploadRejection[]>([]);\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst rootRef = useRef<HTMLDivElement | null>(null);\n\tconst continueFocus = useRef(false);\n\tconst pickerWasFocused = useRef(false);\n\tconst generatedId = useId();\n\n\tconst files = useMemo(() => {\n\t\tif (!controlled) return uncontrolledFiles;\n\t\tif (props.multiple) return props.value ?? [];\n\t\treturn props.value ? [props.value] : [];\n\t}, [controlled, props.multiple, props.value, uncontrolledFiles]);\n\tuseLayoutEffect(() => {\n\t\tif (!continueFocus.current) return;\n\t\tconst target = rootRef.current?.querySelector<HTMLElement>('.file-upload--actions button, .file-upload--dropzone input[type=file], .file-upload--dropzone button');\n\t\tif (target) {\n\t\t\ttarget.focus();\n\t\t\tcontinueFocus.current = false;\n\t\t}\n\t}, [files]);\n\tconst multipleProps = props.multiple ? props as MultipleFileUploadProps : undefined;\n\tconst maxFiles = multiple ? normalizeMaximum(multipleProps?.maxFiles) : 1;\n\tconst append = multiple && (multipleProps?.selectionMode ?? 'append') === 'append';\n\tconst errorId = `${nativeInputProps.id ?? `file-upload-${generatedId}`}-errors`;\n\tconst describedBy = [ariaDescribedBy, rejections.length > 0 ? errorId : undefined]\n\t\t.filter(Boolean)\n\t\t.join(' ') || undefined;\n\tconst hasInvalidState = invalid || rejections.length > 0;\n\n\tconst commitFiles = useCallback((nextFiles: File[]) => {\n\t\tif (!controlled) setUncontrolledFiles(nextFiles);\n\t\tif (props.multiple) {\n\t\t\tprops.onValueChange?.(nextFiles);\n\t\t} else {\n\t\t\tconst nextFile = nextFiles[0];\n\t\t\tprops.onValueChange?.(nextFile);\n\t\t}\n\t}, [controlled, props]);\n\n\tconst formatSize = useCallback((bytes: number) => (\n\t\tformatFileSize(bytes, { locale }) ?? `${bytes} B`\n\t), [locale]);\n\n\tconst handleFiles = useCallback((incoming: File[]) => {\n\t\tif (disabled || incoming.length === 0) return false;\n\t\tconst result = validateFileSelection({\n\t\t\tincoming,\n\t\t\tcurrent: files,\n\t\t\taccept,\n\t\t\tminSizeBytes,\n\t\t\tmaxSizeBytes,\n\t\t\tmaxFiles,\n\t\t\tappend,\n\t\t\tvalidateFile,\n\t\t\tformatSize,\n\t\t\tstrings,\n\t\t});\n\n\t\tsetRejections(result.rejections);\n\t\tif (result.rejections.length > 0) onRejectedFiles?.(result.rejections);\n\t\tif (result.accepted.length === 0) return false;\n\t\tcontinueFocus.current = !multiple && (pickerWasFocused.current || Boolean(rootRef.current?.contains(document.activeElement)));\n\t\tpickerWasFocused.current = false;\n\t\tcommitFiles(result.nextFiles);\n\t\treturn result.rejections.length === 0;\n\t}, [\n\t\taccept,\n\t\tappend,\n\t\tcommitFiles,\n\t\tdisabled,\n\t\tmultiple,\n\t\tfiles,\n\t\tformatSize,\n\t\tmaxFiles,\n\t\tmaxSizeBytes,\n\t\tminSizeBytes,\n\t\tonRejectedFiles,\n\t\tstrings,\n\t\tvalidateFile,\n\t]);\n\n\tconst clearNativeInput = useCallback(() => {\n\t\tif (inputRef.current) inputRef.current.value = '';\n\t}, []);\n\n\tconst handleRemove = useCallback((index: number) => {\n\t\tif (disabled) return;\n\t\tsetRejections([]);\n\t\tclearNativeInput();\n\t\tcontinueFocus.current = Boolean(rootRef.current?.contains(document.activeElement));\n\t\tcommitFiles(files.filter((_, fileIndex) => fileIndex !== index));\n\t}, [clearNativeInput, commitFiles, disabled, files]);\n\n\tconst openPicker = useCallback(() => {\n\t\tif (!disabled) {\n\t\t\tpickerWasFocused.current = Boolean(rootRef.current?.contains(document.activeElement));\n\t\t\tinputRef.current?.click();\n\t\t}\n\t}, [disabled]);\n\n\tconst { isDragging, dropTargetProps } = useFileDropTarget({\n\t\tdisabled,\n\t\tonFiles: handleFiles,\n\t});\n\n\tconst inputProps: FilePickerNativeInputProps = {\n\t\t...(nativeInputProps as FilePickerNativeInputProps),\n\t\taccept,\n\t\tmultiple,\n\t\tdisabled,\n\t\t'aria-describedby': describedBy,\n\t\t'aria-invalid': hasInvalidState ? true : nativeAriaInvalid,\n\t};\n\n\tconst picker = (\n\t\t<Dropzone\n\t\t\tref={(node) => assignInputRef(node, inputRef, forwardedRef)}\n\t\t\tonDrop={handleFiles}\n\t\t\taccept={accept}\n\t\t\tmultiple={multiple}\n\t\t\tdisabled={disabled}\n\t\t\tinvalid={hasInvalidState}\n\t\t\tsize={size}\n\t\t\tclassName=\"file-upload--dropzone\"\n\t\t\tinputProps={inputProps}\n\t\t\tstrings={{\n\t\t\t\tinstruction: strings.instruction,\n\t\t\t\thelper: strings.helper,\n\t\t\t\tdragOver: strings.dragOver,\n\t\t\t}}\n\t\t>\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\ttone=\"secondary\"\n\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\tsize={size}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonClick={openPicker}\n\t\t\t>\n\t\t\t\t{strings.browse}\n\t\t\t</Button>\n\t\t</Dropzone>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={rootRef}\n\t\t\tdata-disabled={disabled || undefined}\n\t\t\tdata-invalid={hasInvalidState || undefined}\n\t\t\tclassName={cn('file-upload--component grid gap-space-md', className)}\n\t\t>\n\t\t\t{(multiple || files.length === 0) && picker}\n\n\t\t\t{!multiple && files[0] && (\n\t\t\t\t<div\n\t\t\t\t\t{...dropTargetProps}\n\t\t\t\t\tdata-dragging={isDragging || undefined}\n\t\t\t\t\tdata-invalid={hasInvalidState || undefined}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'file-upload--selected rounded-radius transition-shadow',\n\t\t\t\t\t\thasInvalidState && '[&_.file-upload--file]:border-destructive',\n\t\t\t\t\t\t!disabled && isDragging && (\n\t\t\t\t\t\t\thasInvalidState\n\t\t\t\t\t\t\t\t? 'ring-2 ring-destructive/50 ring-offset-2'\n\t\t\t\t\t\t\t\t: 'ring-2 ring-primary/50 ring-offset-2'\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<FilePickerInput\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t\tref={(node) => assignInputRef(node, inputRef, forwardedRef)}\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\tclassName=\"file-upload--input\"\n\t\t\t\t\t\tonFiles={handleFiles}\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectedFileRow\n\t\t\t\t\t\tfile={files[0]}\n\t\t\t\t\t\tindex={0}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\tshowReplace\n\t\t\t\t\t\tonReplace={openPicker}\n\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{multiple && files.length > 0 && (\n\t\t\t\t<ItemGroup className=\"file-upload--files\">\n\t\t\t\t\t{files.map((file, index) => (\n\t\t\t\t\t\t<SelectedFileRow\n\t\t\t\t\t\t\tkey={fileKey(file, index)}\n\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\tshowReplace={false}\n\t\t\t\t\t\t\tonReplace={openPicker}\n\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</ItemGroup>\n\t\t\t)}\n\n\t\t\t{rejections.length > 0 && (\n\t\t\t\t<Alert\n\t\t\t\t\tid={errorId}\n\t\t\t\t\ttone=\"destructive\"\n\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'file-upload--errors',\n\t\t\t\t\t\tsize === 'sm' && 'p-surface-xs',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<TriangleAlert aria-hidden=\"true\" />\n\t\t\t\t\t<AlertTitle>{strings.errorsHeading}</AlertTitle>\n\t\t\t\t\t<AlertDescription>\n\t\t\t\t\t\t<ul className=\"grid gap-space-2xs\">\n\t\t\t\t\t\t\t{rejections.map((rejection, index) => (\n\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\tkey={`${rejection.code}-${fileKey(rejection.file, index)}`}\n\t\t\t\t\t\t\t\t\tclassName=\"file-upload--error\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"error\">\n\t\t\t\t\t\t\t\t\t\t{rejection.message}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</AlertDescription>\n\t\t\t\t</Alert>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\n/** Selects and validates local File values without performing network uploads. */\nexport const FileUpload = forwardRef<HTMLInputElement, FileUploadProps>(FileUploadImpl);\nFileUpload.displayName = 'FileUpload';\n\nexport { defaultFileUploadStrings };\nexport type { FileUploadStrings };\nexport type {\n\tFileUploadRejection,\n\tFileUploadRejectionCode,\n\tFileUploadCommonProps,\n\tFileUploadSelectionMode,\n\tFileUploadValidator,\n\tMultipleFileUploadProps,\n\tSingleFileUploadProps,\n} from './file-upload.types';\n","import { useCallback, useRef, useState } from 'react';\n\nexport type FileRejectionCode =\n\t| 'invalid-type'\n\t| 'too-small'\n\t| 'too-large'\n\t| 'too-many'\n\t| 'duplicate'\n\t| 'custom';\n\nexport interface FileRejectionDetails {\n\textension?: string;\n\tminimumBytes?: number;\n\tmaximumBytes?: number;\n\tmaximumFiles?: number;\n\t/** Consumer-provided custom copy. The hook never manufactures a message. */\n\tcustomMessage?: string;\n}\n\nexport interface FileRejection {\n\tfile: File;\n\tcode: FileRejectionCode;\n\tdetails: FileRejectionDetails;\n}\n\nexport interface FileValidationRules {\n\tmaxSize?: number;\n\tminSize?: number;\n\tallowedExtensions?: string[];\n\tmaxFiles?: number;\n\tcustomValidator?: (file: File) => boolean | string;\n}\n\nexport interface FileMeta {\n\tid: string;\n\tfile: File;\n\tname: string;\n\tsize: number;\n\tformattedSize: string;\n\ttype: string;\n\textension: string;\n\tlastModified: number;\n}\n\nexport interface FileProcessingResult {\n\taccepted: FileMeta[];\n\tfiles: FileMeta[];\n\trejections: FileRejection[];\n}\n\nexport interface UseFilesReturn {\n\tfiles: FileMeta[];\n\taddFiles: (incoming: FileList | File[]) => FileProcessingResult;\n\tsetFiles: (incoming: FileList | File[]) => FileProcessingResult;\n\tremove: (id: string) => void;\n\tremoveAll: () => void;\n\tformatSize: (bytes: number) => string;\n\t/** Compatibility lookup keyed by file name. Values are typed details, never copy. */\n\tvalidationErrors: Record<string, FileRejection>;\n\trejections: FileRejection[];\n}\n\nconst FILE_SIZE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB'] as const;\n\nfunction defaultFormatSize(bytes: number): string {\n\tif (!Number.isFinite(bytes) || bytes <= 0) return '0 B';\n\tconst unitIndex = Math.min(\n\t\tMath.floor(Math.log(bytes) / Math.log(1024)),\n\t\tFILE_SIZE_UNITS.length - 1,\n\t);\n\tconst value = bytes / 1024 ** unitIndex;\n\tconst formattedValue = unitIndex === 0\n\t\t? value.toFixed(0)\n\t\t: Number(value.toFixed(1)).toString();\n\treturn `${formattedValue} ${FILE_SIZE_UNITS[unitIndex]}`;\n}\n\nlet idCounter = 0;\nfunction generateId(): string {\n\tconst timestamp = Date.now().toString(36);\n\tconst count = (idCounter++).toString(36);\n\treturn `${timestamp}-${count}`;\n}\n\nfunction getExtension(file: File) {\n\treturn file.name.split('.').pop()?.toLowerCase() ?? '';\n}\n\nfunction getFingerprint(file: File) {\n\treturn `${file.name}\\u0000${file.size}\\u0000${file.type}\\u0000${file.lastModified}`;\n}\n\nfunction createMeta(file: File): FileMeta {\n\treturn {\n\t\tid: generateId(),\n\t\tfile,\n\t\tname: file.name,\n\t\tsize: file.size,\n\t\tformattedSize: defaultFormatSize(file.size),\n\t\ttype: file.type,\n\t\textension: getExtension(file),\n\t\tlastModified: file.lastModified,\n\t};\n}\n\nfunction validateFile(\n\tfile: File,\n\trules?: FileValidationRules,\n): FileRejection | undefined {\n\tconst extension = getExtension(file);\n\tif (rules?.minSize !== undefined && file.size < rules.minSize) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'too-small',\n\t\t\tdetails: { minimumBytes: rules.minSize },\n\t\t};\n\t}\n\tif (rules?.maxSize !== undefined && file.size > rules.maxSize) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'too-large',\n\t\t\tdetails: { maximumBytes: rules.maxSize },\n\t\t};\n\t}\n\tif (\n\t\trules?.allowedExtensions &&\n\t\t!rules.allowedExtensions.some((allowed) => allowed.toLowerCase().replace(/^\\./, '') === extension)\n\t) {\n\t\treturn {\n\t\t\tfile,\n\t\t\tcode: 'invalid-type',\n\t\t\tdetails: { extension },\n\t\t};\n\t}\n\tif (rules?.customValidator) {\n\t\tlet result: boolean | string;\n\t\ttry {\n\t\t\tresult = rules.customValidator(file);\n\t\t} catch {\n\t\t\tresult = false;\n\t\t}\n\t\tif (result !== true) {\n\t\t\treturn {\n\t\t\t\tfile,\n\t\t\t\tcode: 'custom',\n\t\t\t\tdetails: {\n\t\t\t\t\tcustomMessage: typeof result === 'string' && result.length > 0\n\t\t\t\t\t\t? result\n\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction toErrorMap(rejections: FileRejection[]) {\n\treturn Object.fromEntries(rejections.map((rejection) => [rejection.file.name, rejection]));\n}\n\nexport function useFiles(rules?: FileValidationRules): UseFilesReturn {\n\tconst [files, setFilesState] = useState<FileMeta[]>([]);\n\tconst filesRef = useRef<FileMeta[]>([]);\n\tconst [rejections, setRejections] = useState<FileRejection[]>([]);\n\n\tconst formatSize = useCallback(defaultFormatSize, []);\n\n\tconst processFiles = useCallback((incoming: FileList | File[], replace: boolean) => {\n\t\tconst incomingFiles = Array.isArray(incoming) ? incoming : Array.from(incoming);\n\t\tconst previousFiles = filesRef.current;\n\t\tlet nextFiles = replace ? [] : [...previousFiles];\n\t\tconst fingerprints = new Set(nextFiles.map((meta) => getFingerprint(meta.file)));\n\t\tconst accepted: FileMeta[] = [];\n\t\tconst nextRejections: FileRejection[] = [];\n\n\t\tfor (const file of incomingFiles) {\n\t\t\tconst fingerprint = getFingerprint(file);\n\t\t\tif (fingerprints.has(fingerprint)) {\n\t\t\t\tnextRejections.push({ file, code: 'duplicate', details: {} });\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst rejection = validateFile(file, rules);\n\t\t\tif (rejection) {\n\t\t\t\tnextRejections.push(rejection);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (rules?.maxFiles !== undefined && nextFiles.length >= rules.maxFiles) {\n\t\t\t\tnextRejections.push({\n\t\t\t\t\tfile,\n\t\t\t\t\tcode: 'too-many',\n\t\t\t\t\tdetails: { maximumFiles: rules.maxFiles },\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst meta = createMeta(file);\n\t\t\taccepted.push(meta);\n\t\t\tnextFiles.push(meta);\n\t\t\tfingerprints.add(fingerprint);\n\t\t}\n\t\tif (replace && accepted.length === 0 && nextRejections.length > 0) {\n\t\t\tnextFiles = previousFiles;\n\t\t}\n\n\t\tfilesRef.current = nextFiles;\n\t\tsetFilesState(nextFiles);\n\t\tsetRejections(nextRejections);\n\t\treturn { accepted, files: nextFiles, rejections: nextRejections };\n\t}, [rules]);\n\n\tconst addFiles = useCallback(\n\t\t(incoming: FileList | File[]) => processFiles(incoming, false),\n\t\t[processFiles],\n\t);\n\tconst setFiles = useCallback(\n\t\t(incoming: FileList | File[]) => processFiles(incoming, true),\n\t\t[processFiles],\n\t);\n\tconst remove = useCallback((id: string) => {\n\t\tconst nextFiles = filesRef.current.filter((file) => file.id !== id);\n\t\tfilesRef.current = nextFiles;\n\t\tsetFilesState(nextFiles);\n\t}, []);\n\tconst removeAll = useCallback(() => {\n\t\tfilesRef.current = [];\n\t\tsetFilesState([]);\n\t\tsetRejections([]);\n\t}, []);\n\n\treturn {\n\t\tfiles,\n\t\taddFiles,\n\t\tsetFiles,\n\t\tremove,\n\t\tremoveAll,\n\t\tformatSize,\n\t\tvalidationErrors: toErrorMap(rejections),\n\t\trejections,\n\t};\n}\n","/**\n * ImageUpload — preview-first image picker. Drops in a file → renders an img\n * preview with a configurable aspect ratio and fit mode. Layout can be\n * stacked (preview on top, controls below) or inline (preview alongside\n * controls). Reflects controlled `value` and reports change via `onValueChange`.\n * Strings overridable for i18n.\n */\nimport { ImageIcon, Trash2 } from 'lucide-react';\nimport React, { useEffect, useId, useMemo, useRef, useState, useCallback } from 'react';\nimport { Button } from '../buttons';\nimport { Text } from '../../typography';\nimport { useFiles, type FileRejection } from '../../../hooks/use-files';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport { useFileDropTarget } from './use-file-drop-target';\n\nconst MAX_FILE_SIZE_MB = 2;\n\ntype ImageUploadAspectRatio = 'square' | 'standard' | 'widescreen' | 'portrait';\ntype ImageUploadLayout = 'stacked' | 'inline';\ntype ImageUploadFit = 'cover' | 'contain';\n\nconst ASPECT_RATIO_CLASSES: Record<ImageUploadAspectRatio, string> = {\n\t\tsquare: 'aspect-square',\n\t\tstandard: 'aspect-[4/3]',\n\t\twidescreen: 'aspect-[16/9]',\n\t\tportrait: 'aspect-[9/16]',\n};\n\nexport interface ImageUploadStrings {\n\t\tselect: string;\n\t\tchange: string;\n\t\tremove: string;\n\t\tnoSelection: string;\n\t\tkeepCurrent: string;\n\t/** Accessible description for an existing preview without a selected file name. */\n\tpreviewAlt?: string;\n\t\t/** Template for the supports-text. `{ext}` is the comma-separated allowed\n\t\t * extensions; `{size}` is the max-size MB number. */\n\t\tsupportsTemplate: string;\n\tinvalidType: (fileName: string, extension: string) => string;\n\ttooSmall: (fileName: string, minimum: string) => string;\n\ttooLarge: (fileName: string, maximum: string) => string;\n\ttooMany: (fileName: string, maximum: number) => string;\n\tduplicate: (fileName: string) => string;\n\tcustomValidationFailed: (fileName: string) => string;\n\t\t/** Summary line when `multiple` is set and more than one file is selected.\n\t\t * Receives the count of files beyond the displayed one — e.g. `count=3`\n\t\t * for \"+ 3 more files\". Override to swap the English plural-`s` rule\n\t\t * (`'+ ' + count + ' more file' + (count === 1 ? '' : 's')`) for the\n\t\t * consumer locale. */\n\t\tmoreFiles: (count: number) => string;\n}\n\nexport const defaultImageUploadStrings: ImageUploadStrings = {\n\t\tselect: 'Select image',\n\t\tchange: 'Change image',\n\t\tremove: 'Remove',\n\t\tnoSelection: 'No file selected yet.',\n\t\tkeepCurrent: 'Current image stays until you upload a new one.',\n\tpreviewAlt: 'Selected image',\n\t\tsupportsTemplate: 'Supports {ext} files up to {size} MB.',\n\tinvalidType: (fileName, extension) => `${fileName} uses an unsupported .${extension || 'unknown'} file type.`,\n\ttooSmall: (fileName, minimum) => `${fileName} is smaller than ${minimum}.`,\n\ttooLarge: (fileName, maximum) => `${fileName} is larger than ${maximum}.`,\n\ttooMany: (fileName, maximum) => `${fileName} exceeds the limit of ${maximum} images.`,\n\tduplicate: (fileName) => `${fileName} is already selected.`,\n\tcustomValidationFailed: (fileName) => `${fileName} did not pass validation.`,\n\t\tmoreFiles: (count) => `+ ${count} more file${count === 1 ? '' : 's'}`,\n};\n\nfunction getImageUploadRejectionMessage(\n\trejection: FileRejection,\n\tstrings: ImageUploadStrings,\n\tformatSize: (bytes: number) => string,\n) {\n\tconst { file, code, details } = rejection;\n\tswitch (code) {\n\t\tcase 'invalid-type':\n\t\t\treturn strings.invalidType(file.name, details.extension ?? '');\n\t\tcase 'too-small':\n\t\t\treturn strings.tooSmall(file.name, formatSize(details.minimumBytes ?? 0));\n\t\tcase 'too-large':\n\t\t\treturn strings.tooLarge(file.name, formatSize(details.maximumBytes ?? 0));\n\t\tcase 'too-many':\n\t\t\treturn strings.tooMany(file.name, details.maximumFiles ?? 1);\n\t\tcase 'duplicate':\n\t\t\treturn strings.duplicate(file.name);\n\t\tcase 'custom':\n\t\t\treturn details.customMessage ?? strings.customValidationFailed(file.name);\n\t}\n}\n\nexport interface ImageUploadProps {\n\t\t/** Accepted MIME types or extensions, as the native `accept` attribute. */\n\t\taccept?: string;\n\t\t/** Allows more than one file to be chosen. */\n\t\tmultiple?: boolean;\n\t\t/** Selected files. Controlled. */\n\t\tvalue?: File;\n\t\tonValueChange?: (file?: File) => void;\n\t\t/** Disables the control and blocks drops. */\n\t\tdisabled?: boolean;\n\t\t/** Image shown before anything is chosen — an existing upload. */\n\t\tinitialPreviewUrl?: string;\n\t\t/** Aspect ratio the preview is cropped to. */\n\t\taspectRatio?: ImageUploadAspectRatio;\n\t\t/** How the preview fills its frame — cover or contain. */\n\t\tfit?: ImageUploadFit;\n\t\t/** Caps the preview's width. */\n\t\tmaxWidth?: number | string;\n\t\t/** Arrangement of the preview and drop target. */\n\t\tlayout?: ImageUploadLayout;\n\t\t/** Applies the invalid styling. */\n\t\tinvalid?: boolean;\n\t\t/** Override default strings (button labels, helper text, supports template). */\n\t\tstrings?: StringsProp<ImageUploadStrings>;\n}\n\nfunction ImageUploadImpl(\n\t\t{\n\t\taccept = '.png,.jpg,.jpeg,.gif,.svg',\n\t\tmultiple = false,\n\t\tvalue,\n\t\tonValueChange,\n\t\tdisabled,\n\t\tinitialPreviewUrl,\n\t\taspectRatio = 'square',\n\t\tfit = 'cover',\n\t\tmaxWidth,\n\t\tlayout = 'stacked',\n\t\tinvalid,\n\t\tstrings: stringsProp,\n}: ImageUploadProps,\n\t\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n\t\tconst strings = useStrings(defaultImageUploadStrings, stringsProp);\n\t\tconst inputId = useId();\n\t\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\n\t\tconst allowedExtensions = useMemo(() => {\n\t\t\t\tif (!accept) {\n\t\t\t\t\t\treturn ['png', 'jpg', 'jpeg', 'gif', 'svg'];\n\t\t\t\t}\n\n\t\t\t\tconst parsed = accept\n\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t.map((item) => item.trim())\n\t\t\t\t\t\t.map((item) => {\n\t\t\t\t\t\t\t\tif (!item) return null;\n\t\t\t\t\t\t\t\tif (item.startsWith('.')) {\n\t\t\t\t\t\t\t\t\t\treturn item.slice(1).toLowerCase();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (item.includes('/')) {\n\t\t\t\t\t\t\t\t\t\tconst subtype = item.split('/')[1] ?? '';\n\t\t\t\t\t\t\t\t\t\tif (subtype === '*' || subtype.length === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn subtype.replace(/\\+.*/, '').toLowerCase();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn item.toLowerCase();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter((ext): ext is string => Boolean(ext));\n\n\t\t\t\tif (parsed.length === 0) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\treturn Array.from(new Set(parsed));\n\t\t}, [accept]);\n\n\t\tconst fileRules = useMemo(\n\t\t\t\t() => ({\n\t\t\t\t\t\tmaxFiles: multiple ? undefined : 1,\n\t\t\tmaxSize: MAX_FILE_SIZE_MB * 1024 * 1024,\n\t\t\t\t\t\tallowedExtensions,\n\t\t\t\t}),\n\t\t\t\t[multiple, allowedExtensions]\n\t\t);\n\n\t\tconst { files, setFiles, remove, removeAll, formatSize, rejections } = useFiles(fileRules);\n\n\t\t// Reflect controlled value into local preview if provided\n\t\tuseEffect(() => {\n\t\t\t\tif (value) {\n\t\t\t\t\t\tsetFiles([value]);\n\t\t\t\t} else {\n\t\t\t\t\t\tremoveAll();\n\t\t\t\t\t\tif (inputRef.current) {\n\t\t\t\t\t\t\t\tinputRef.current.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}, [value, setFiles, removeAll]);\n\n\t\tconst selected = files[0];\n\tconst selectOrChangeButtonLabel = selected ? strings.change : strings.select;\n\t\tconst [filePreviewUrl, setFilePreviewUrl] = useState<string | undefined>(undefined);\n\n\t\tconst acceptedExtensionsLabel = useMemo(() => {\n\t\t\t\tif (!allowedExtensions || allowedExtensions.length === 0) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn allowedExtensions.map((ext) => ext.toUpperCase()).join(', ');\n\t\t}, [allowedExtensions]);\n\n\t\tuseEffect(() => {\n\t\t\t\tconst file = selected?.file ?? value;\n\t\t\t\tif (!file) {\n\t\t\t\t\t\tsetFilePreviewUrl(undefined);\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst url = URL.createObjectURL(file);\n\t\t\t\tsetFilePreviewUrl(url);\n\t\t\t\treturn () => URL.revokeObjectURL(url);\n\t\t}, [selected, value]);\n\n\t\tconst previewUrl = filePreviewUrl ?? initialPreviewUrl;\n\t\tconst hasPreview = Boolean(previewUrl);\n\tconst previewAlt = selected?.name ?? strings.previewAlt ?? defaultImageUploadStrings.previewAlt;\n\t\tconst aspectClass = ASPECT_RATIO_CLASSES[aspectRatio] ?? ASPECT_RATIO_CLASSES.square;\n\t\tconst imgFitClass = fit === 'contain' ? 'object-contain p-surface-xs' : 'object-cover';\n\t\t// Default max-width caps the preview at a sensible thumbnail size — without\n\t\t// this, an `aspect-square` preview inside a wide form column becomes a\n\t\t// huge square (`w-full` × 1:1 ratio = container width tall). Consumers\n\t\t// can override via the `maxWidth` prop.\n\t\tconst computedMaxWidth = maxWidth ? (typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth) : '240px';\n\t\tconst wrapperStyle = layout === 'inline' ? undefined : { maxWidth: computedMaxWidth };\n\t\tconst inlinePreviewStyle =\n\t\t\t\tlayout === 'inline'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tmaxWidth: maxWidth ? computedMaxWidth : '185px',\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined;\n\n\t\tconst handleFiles = useCallback((incoming: File[]) => {\n\t\t\tif (disabled || incoming.length === 0) return;\n\t\t\tconst result = setFiles(incoming);\n\t\t\tconst acceptedFile = result.accepted[0]?.file;\n\t\t\tif (acceptedFile) onValueChange?.(acceptedFile);\n\t\t}, [disabled, setFiles, onValueChange]);\n\t\tconst handleInput = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\thandleFiles(Array.from(event.target.files ?? []));\n\t\t}, [handleFiles]);\n\t\tconst { isDragging, dropTargetProps } = useFileDropTarget({ disabled, onFiles: handleFiles });\n\n\t\tconst triggerFileDialog = useCallback(() => {\n\t\t\t\tif (disabled) return;\n\t\t\t\tinputRef.current?.click();\n\t\t}, [disabled]);\n\n\t\tconst handleRemove = useCallback(() => {\n\t\t\t\tif (selected) {\n\t\t\t\t\t\tremove(selected.id);\n\t\t\t\t}\n\t\t\t\tonValueChange?.(undefined);\n\t\t\t\tif (inputRef.current) {\n\t\t\t\t\t\tinputRef.current.value = '';\n\t\t\t\t}\n\t\t}, [selected, remove, onValueChange]);\n\n\t\treturn (\n\t\t\t\t<div className={cn('image-upload--component', 'grid gap-space-md')} style={wrapperStyle}>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t\t\tclassName=\"sr-only\"\n\t\t\t\t\t\t\t\taria-label={selectOrChangeButtonLabel}\n\t\t\t\t\t\t\t\taccept={accept}\n\t\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className={cn(layout === 'inline' ? 'flex flex-wrap items-start gap-space-xl' : 'grid gap-space-md')}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t{...dropTargetProps}\n\t\t\t\t\t\t\t\t\t\tdata-dragging={isDragging || undefined}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'relative overflow-hidden rounded-radius-md border transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\tlayout === 'inline' ? 'flex-shrink-0 w-full' : 'w-full',\n\t\t\t\t\t\t\t\t\t\t\t\taspectClass,\n\t\t\t\t\t\t\t\t\t\t\t\t!disabled && isDragging && 'ring-2 ring-ring',\n\t\t\t\t\t\t\t\t\t\t\t\thasPreview\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'border-border bg-muted/20'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'border-dashed bg-background text-muted-foreground ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinvalid ? 'border-destructive' : 'border-border'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\tstyle={inlinePreviewStyle}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{hasPreview && previewUrl ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc={previewUrl}\n\t\t\t\t\t\t\t\t\t\t\t\talt={previewAlt}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn('absolute inset-0 h-full w-full', imgFitClass)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ImageIcon aria-hidden className=\"size-icon-lg\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className={cn('grid gap-space-sm', layout === 'inline' && 'flex-1 min-w-0 basis-40')}>\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-space-md\">\n\t <Button\n\t type=\"button\"\n\t tone=\"secondary\"\n\t buttonStyle=\"outline\"\n\t onClick={triggerFileDialog}\n\t disabled={disabled}\n\t >\n\t {selectOrChangeButtonLabel}\n\t </Button>\n\t\t\t\t\t\t\t\t\t\t\t\t{!selected && !!hasPreview && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.keepCurrent}</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{!!acceptedExtensionsLabel && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.supportsTemplate\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace('{ext}', acceptedExtensionsLabel)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace('{size}', String(MAX_FILE_SIZE_MB))}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{!!selected && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"grid gap-space-2xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text weight=\"medium\" title={selected.name} className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{selected.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{selected.formattedSize}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!!multiple && files.length > 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.moreFiles(files.length - 1)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttone=\"destructive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={Trash2}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleRemove}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.remove}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{!selected && !hasPreview && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.noSelection}</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Validation errors */}\n\t\t\t\t\t\t{rejections.length > 0 && (\n\t\t\t\t\t\t\t\t<div className=\"image-upload--errors grid gap-space-2xs\" role=\"alert\" aria-live=\"polite\">\n\t\t\t\t\t\t\t\t\t\t{rejections.map((rejection, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text key={`${rejection.file.name}-${rejection.code}-${index}`} size=\"xs\" type=\"error\">\n\t\t\t\t\t\t\t{getImageUploadRejectionMessage(rejection, strings, formatSize)}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t);\n}\n\nconst ImageUpload = React.forwardRef<HTMLInputElement, ImageUploadProps>(ImageUploadImpl);\nImageUpload.displayName = 'ImageUpload';\n\nexport { ImageUpload };\n","import * as React from 'react';\n/**\n * AvatarUpload — round avatar picker. Click or drag a file onto the circle to\n * upload; an X button (visible on hover) clears the selection. Honours\n * controlled `value` (a `File`), and reflects an existing `initialPreviewUrl`\n * when no file is staged. Use for profile photos / org logos where the\n * preview is small and the only meaningful interaction is replace + clear.\n *\n * Pair with a separate \"remove from server\" handler if your data model\n * needs to delete a previously persisted image (this component only manages\n * the local staged file).\n *\n * Strings overridable for i18n.\n */\nimport { useCallback, useEffect, useId, useMemo, useRef, useState} from 'react';\nimport type { ChangeEvent, ForwardedRef} from 'react';\nimport { Camera, X } from 'lucide-react';\nimport { Text } from '../../typography';\nimport { useFiles, type FileRejection } from '../../../hooks/use-files';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport { useFileDropTarget } from './use-file-drop-target';\n\nexport type AvatarUploadSize = ComponentScale;\n\nexport interface AvatarUploadStrings {\n\tchange: string;\n\tremove: string;\n\thint: string;\n\tdragOver: string;\n\tinvalidType: (fileName: string, extension: string) => string;\n\ttooSmall: (fileName: string, minimum: string) => string;\n\ttooLarge: (fileName: string, maximum: string) => string;\n\ttooMany: (fileName: string, maximum: number) => string;\n\tduplicate: (fileName: string) => string;\n\tcustomValidationFailed: (fileName: string) => string;\n}\n\nexport const defaultAvatarUploadStrings: AvatarUploadStrings = {\n\tchange: 'Change photo',\n\tremove: 'Remove photo',\n\thint: 'Click or drop an image',\n\tdragOver: 'Drop image to upload',\n\tinvalidType: (fileName, extension) => `${fileName} uses an unsupported .${extension || 'unknown'} file type.`,\n\ttooSmall: (fileName, minimum) => `${fileName} is smaller than ${minimum}.`,\n\ttooLarge: (fileName, maximum) => `${fileName} is larger than ${maximum}.`,\n\ttooMany: (fileName, maximum) => `${fileName} exceeds the limit of ${maximum} images.`,\n\tduplicate: (fileName) => `${fileName} is already selected.`,\n\tcustomValidationFailed: (fileName) => `${fileName} did not pass validation.`,\n};\n\nfunction getAvatarUploadRejectionMessage(\n\trejection: FileRejection,\n\tstrings: AvatarUploadStrings,\n\tformatSize: (bytes: number) => string,\n) {\n\tconst { file, code, details } = rejection;\n\tswitch (code) {\n\t\tcase 'invalid-type':\n\t\t\treturn strings.invalidType(file.name, details.extension ?? '');\n\t\tcase 'too-small':\n\t\t\treturn strings.tooSmall(file.name, formatSize(details.minimumBytes ?? 0));\n\t\tcase 'too-large':\n\t\t\treturn strings.tooLarge(file.name, formatSize(details.maximumBytes ?? 0));\n\t\tcase 'too-many':\n\t\t\treturn strings.tooMany(file.name, details.maximumFiles ?? 1);\n\t\tcase 'duplicate':\n\t\t\treturn strings.duplicate(file.name);\n\t\tcase 'custom':\n\t\t\treturn details.customMessage ?? strings.customValidationFailed(file.name);\n\t}\n}\n\nexport interface AvatarUploadProps {\n\t/** Selected file. Controlled. */\n\tvalue?: File;\n\tonValueChange?: (file?: File) => void;\n\t/** Image shown before anything is chosen — an existing avatar. */\n\tinitialPreviewUrl?: string;\n\t/** Accepted MIME types or extensions. */\n\taccept?: string;\n\t/** Disables the control and blocks drops. */\n\tdisabled?: boolean;\n\t/** Applies the invalid styling. */\n\tinvalid?: boolean;\n\t/** Diameter preset for the avatar. */\n\tsize?: AvatarUploadSize;\n\tclassName?: string;\n\t/** Overrides the upload and remove copy. */\n\tstrings?: StringsProp<AvatarUploadStrings>;\n\t/** Initials shown when no preview is available. */\n\tinitials?: string;\n}\n\nconst SIZE_PX: Record<AvatarUploadSize, { box: string; icon: string; remove: string }> = {\n\tsm: { box: 'size-upload-avatar-small', icon: 'size-icon', remove: 'size-control-clear' },\n\tmd: { box: 'size-upload-avatar', icon: 'size-icon-lg', remove: 'size-action' },\n\tlg: { box: 'size-upload-avatar-large', icon: 'size-icon-lg', remove: 'size-action-lg' },\n};\n\nfunction AvatarUploadImpl(\n\t{\n\tvalue,\n\tonValueChange,\n\tinitialPreviewUrl,\n\taccept = '.png,.jpg,.jpeg,.gif,.webp',\n\tdisabled = false,\n\tinvalid = false,\n\tsize: sizeProp,\n\tclassName,\n\tstrings: stringsProp,\n\tinitials,\n}: AvatarUploadProps,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst strings = useStrings(defaultAvatarUploadStrings, stringsProp);\n\tconst inputId = useId();\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst sizes = SIZE_PX[size];\n\n\tconst { files, setFiles, removeAll, formatSize, rejections } = useFiles({\n\t\tmaxFiles: 1,\n\t\tallowedExtensions: useMemo(\n\t\t\t() =>\n\t\t\t\taccept\n\t\t\t\t\t.split(',')\n\t\t\t\t\t.map((s) => s.trim().replace(/^\\./, '').toLowerCase())\n\t\t\t\t\t.filter(Boolean),\n\t\t\t[accept],\n\t\t),\n\t});\n\n\tuseEffect(() => {\n\t\tif (value) setFiles([value]);\n\t\telse removeAll();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [value]);\n\n\tconst selected = files[0];\n\tconst [filePreviewUrl, setFilePreviewUrl] = useState<string | undefined>(undefined);\n\n\tuseEffect(() => {\n\t\tconst file = selected?.file ?? value;\n\t\tif (!file) {\n\t\t\tsetFilePreviewUrl(undefined);\n\t\t\treturn;\n\t\t}\n\t\tconst url = URL.createObjectURL(file);\n\t\tsetFilePreviewUrl(url);\n\t\treturn () => URL.revokeObjectURL(url);\n\t}, [selected, value]);\n\n\tconst previewUrl = filePreviewUrl ?? initialPreviewUrl;\n\tconst hasPreview = Boolean(previewUrl);\n\n\tconst handleInput = useCallback(\n\t\t(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst list = e.target.files;\n\t\t\tif (!list || list.length === 0) return;\n\t\t\tconst result = setFiles(list);\n\t\t\tconst acceptedFile = result.accepted[0]?.file;\n\t\t\tif (acceptedFile) onValueChange?.(acceptedFile);\n\t\t\tif (inputRef.current) inputRef.current.value = '';\n\t\t},\n\t\t[onValueChange, setFiles],\n\t);\n\n\tconst handleRemove = useCallback(() => {\n\t\tremoveAll();\n\t\tonValueChange?.(undefined);\n\t\tif (inputRef.current) inputRef.current.value = '';\n\t}, [onValueChange, removeAll]);\n\n\tconst handleFiles = useCallback((incoming: File[]) => {\n\t\tconst result = setFiles(incoming);\n\t\tconst acceptedFile = result.accepted[0]?.file;\n\t\tif (acceptedFile) onValueChange?.(acceptedFile);\n\t}, [onValueChange, setFiles]);\n\tconst { isDragging, dropTargetProps } = useFileDropTarget({ disabled, onFiles: handleFiles });\n\n\treturn (\n\t\t<div className={cn('avatar-upload--component', 'inline-flex flex-col items-center gap-space-md', className)}>\n\t\t\t<div\n\t\t\t\t{...dropTargetProps}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'group relative flex shrink-0 items-center justify-center overflow-hidden rounded-full',\n\t\t\t\t\t'border border-dashed transition-colors duration-150 outline-none',\n\t\t\t\t\t'focus-within:ring-2 focus-within:ring-ring/50',\n\t\t\t\t\thasPreview\n\t\t\t\t\t\t? 'border-border/60 bg-muted/20'\n\t\t\t\t\t\t: cn(\n\t\t\t\t\t\t\t\t'bg-muted/30 hover:border-primary hover:bg-primary/5',\n\t\t\t\t\t\t\t\tinvalid ? 'border-destructive' : 'border-muted-foreground/40',\n\t\t\t\t\t\t\t),\n\t\t\t\t\tdisabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t!disabled && isDragging && 'border-primary bg-primary/10',\n\t\t\t\t\tsizes.box,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\tid={inputId}\n\t\t\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tclassName=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n\t\t\t\t\taria-label={strings.change}\n\t\t\t\t\taria-invalid={invalid || undefined}\n\t\t\t\t\taccept={accept}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInput}\n\t\t\t\t/>\n\n\t\t\t\t{hasPreview && previewUrl ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={previewUrl}\n\t\t\t\t\t\talt={strings.change}\n\t\t\t\t\t\tclassName=\"absolute inset-0 size-full object-cover\"\n\t\t\t\t\t/>\n\t\t\t\t\t) : initials ? (\n\t\t\t\t\t\t<Text size={size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'base'} weight=\"bold\" className=\"leading-none\">\n\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t<Camera className={cn(sizes.icon, 'text-muted-foreground')} aria-hidden=\"true\" />\n\t\t\t\t)}\n\n\t\t\t\t{/* Hover overlay */}\n\t\t\t\t{!disabled && hasPreview && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"pointer-events-none absolute inset-0 hidden items-center justify-center bg-foreground/50 text-background backdrop-blur-[1px] group-hover:flex\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Camera className={sizes.icon} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Remove pill */}\n\t\t\t\t{!disabled && hasPreview && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\thandleRemove();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'absolute right-0.5 top-0.5 z-20 inline-flex items-center justify-center rounded-full bg-card text-foreground shadow ring-1 ring-border',\n\t\t\t\t\t\t\t'opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100 group-focus-within:opacity-100 focus-visible:opacity-100',\n\t\t\t\t\t\t\tsizes.remove,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<X className=\"size-icon-sm\" />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\n\t\t\t\t{!disabled && !hasPreview && isDragging && (\n\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"absolute inset-x-0 bottom-1.5 text-center text-primary-accent\">\n\t\t\t\t\t\t{strings.dragOver}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!hasPreview && (\n\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t{strings.hint}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{rejections.length > 0 && (\n\t\t\t\t<div className=\"avatar-upload--errors grid gap-space-2xs\" role=\"alert\" aria-live=\"polite\">\n\t\t\t\t\t{rejections.map((rejection, index) => (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tkey={`${rejection.file.name}-${rejection.code}-${index}`}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ttype=\"error\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getAvatarUploadRejectionMessage(rejection, strings, formatSize)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nconst AvatarUpload = React.forwardRef<HTMLInputElement, AvatarUploadProps>(AvatarUploadImpl);\nAvatarUpload.displayName = 'AvatarUpload';\n\nexport { AvatarUpload };\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,IAAayB,IAA8C;CAC1D,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,UAAU;CACV,eAAe;CACf,kBAAkB,MAAa,WAAWC;CAC1C,iBAAiB,MAAa,UAAUA;CACxC,cAAc,GAAU,MAAW,GAAGA,EAAS,iCAAiCC,EAAO;CACvF,eAAe,GAAU,MAAY,GAAGD,EAAS,uCAAuCE,EAAQ;CAChG,eAAe,GAAU,MAAY,GAAGF,EAAS,sCAAsCG,EAAQ;CAC/F,eAAe,GAAU,MAAY,GAAGH,EAAS,wBAAwBG,EAAQ;CACjF,gBAAgB,MAAa,GAAGH,EAAS;CACzC,yBAAyB,MAAa,GAAGA,EAAS;AACnD;;;ACTA,SAASI,EAAgB,GAAY;CACpC,OAAO,GAAGC,EAAK,KAAK,QAAQA,EAAK,KAAK,QAAQA,EAAK,KAAK,QAAQA,EAAK;AACtE;AAEA,SAASC,EAAkB,GAAY,GAAiB;CACvD,IAAI,CAACL,GAAQ,KAAK,GAAG,OAAO;CAE5B,IAAMD,IAAWK,EAAK,KAAK,YAAY,GACjCE,IAAWF,EAAK,KAAK,YAAY;CACvC,OAAOJ,EACL,MAAM,GAAG,CAAC,CACV,KAAK,MAASO,EAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CACxC,OAAO,OAAO,CAAC,CACf,MAAM,MACFC,EAAK,WAAW,GAAG,IAAUT,EAAS,SAASS,CAAI,IACnDA,EAAK,SAAS,IAAI,IAAUF,EAAS,WAAWE,EAAK,MAAM,GAAG,EAAE,CAAC,IAC9DF,MAAaE,CACpB;AACH;AAEA,SAASC,EACR,GACA,GAIkC;CAClC,IAAM,EAAE,WAAQ,iBAAc,iBAAc,iBAAc,eAAY,eAAYC;CAElF,IAAI,CAACL,EAAkBD,GAAMJ,CAAM,GAClC,OAAO;EACN;EACA,MAAM;EACN,SAASW,EAAQ,YAAYP,EAAK,MAAMJ,KAAU,EAAE;CACrD;CAED,IAAIY,MAAiB,KAAA,KAAaR,EAAK,OAAOQ,GAC7C,OAAO;EACN;EACA,MAAM;EACN,SAASD,EAAQ,aAAaP,EAAK,MAAMS,EAAWD,CAAY,CAAC;CAClE;CAED,IAAIE,MAAiB,KAAA,KAAaV,EAAK,OAAOU,GAC7C,OAAO;EACN;EACA,MAAM;EACN,SAASH,EAAQ,aAAaP,EAAK,MAAMS,EAAWC,CAAY,CAAC;CAClE;CAED,IAAIC,GAAc;EACjB,IAAIC;EACJ,IAAI;GACH,IAASD,EAAaX,CAAI;EAC3B,QAAQ;GACP,IAAS;EACV;EACA,IAAIY,MAAW,IACd,OAAO;GACN;GACA,MAAM;GACN,SAAS,OAAOA,KAAW,WACxBA,IACAL,EAAQ,uBAAuBP,EAAK,IAAI;EAC5C;CAEF;AAGD;AAEA,SAAgBa,GAAsB,EACrC,aACA,YACA,WACA,iBACA,iBACA,aACA,WACA,iBACA,eACA,cACqD;CACrD,IAAMC,IAAYC,IAAS,CAAC,GAAGC,CAAO,IAAI,CAAC,GACrCC,IAAe,IAAI,IAAIH,EAAU,IAAIf,CAAe,CAAC,GACrDmB,IAAmB,CAAC,GACpBC,IAAoC,CAAC;CAE3C,KAAK,IAAMnB,KAAQoB,GAAU;EAC5B,IAAMC,IAAsBhB,EAAgBL,GAAM;GACjD;GACA;GACA;GACA;GACA;GACA;EACD,CAAC;EACD,IAAIqB,GAAqB;GACxB,EAAW,KAAKA,CAAmB;GACnC;EACD;EAEA,IAAMC,IAAcvB,EAAgBC,CAAI;EACxC,IAAIiB,EAAa,IAAIK,CAAW,GAAG;GAClC,EAAW,KAAK;IACf;IACA,MAAM;IACN,SAASf,EAAQ,cAAcP,EAAK,IAAI;GACzC,CAAC;GACD;EACD;EACA,IAAIc,EAAU,UAAUS,GAAU;GACjC,EAAW,KAAK;IACf;IACA,MAAM;IACN,SAAShB,EAAQ,aAAaP,EAAK,MAAMuB,CAAQ;GAClD,CAAC;GACD;EACD;EAIA,AAFAL,EAAS,KAAKlB,CAAI,GAClBc,EAAU,KAAKd,CAAI,GACnBiB,EAAa,IAAIK,CAAW;CAC7B;CAEA,OAAO;EAAE;EAAU;EAAW;CAAW;AAC1C;;;ACjGA,SAASE,GAAY,GAAwB;CAC5C,OAAO,OAAO,UAAU,eAAe,KAAKC,GAAO,OAAO;AAC3D;AAEA,SAASC,GAAiB,GAA2B;CAGpD,OAFIC,MAAU,KAAA,KACV,CAAC,OAAO,SAASA,CAAK,kBACnB,KAAK,IAAI,GAAG,KAAK,MAAMA,CAAK,CAAC;AACrC;AAEA,SAASC,GAAQ,GAAY,GAAe;CAC3C,OAAO,GAAG5B,EAAK,KAAK,GAAGA,EAAK,KAAK,GAAGA,EAAK,KAAK,GAAGA,EAAK,aAAa,GAAG6B;AACvE;AAEA,SAASC,GACR,GACA,GACA,GACC;CAED,AADA,EAAS,UAAUC,GACf,OAAOC,KAAiB,aAAYA,EAAaD,CAAI,IAChDC,MAAc,EAAa,UAAUD;AAC/C;AAcA,SAASE,EAAgB,EACxB,SACA,UACA,aACA,SACA,WACA,YACA,gBACA,cACA,eACwB;CACxB,IAAMC,IAAe3B,EAAQ,gBAAgBP,EAAK,IAAI,GAChDmC,IAAc5B,EAAQ,eAAeP,EAAK,IAAI;CAEpD,OACC,kBAACT,GAAD;EACC,SAAQ;EACF;EACN,WAAU;EAHX,UAAA;GAKC,kBAACF,GAAD;IAAiB,SAAQ;IAAO,WAAU;IACzC,UAAA,kBAACJ,GAAD,EAAoB,MAAMe,EAAK,KAAO,CAAA;GACtB,CAAA;GACjB,kBAACV,GAAD;IAAmB,WAAU;IAA7B,UAAA,CACC,kBAACJ,GAAD;KAAiB,WAAU;KAAkC,OAAOc,EAAK;KACvE,UAAAA,EAAK;IACU,CAAA,GACjB,kBAACb,GAAD;KAAuB,WAAU;KAAyB,OAAO;KAChE,UAAA,kBAACP,GAAD;MACC,OAAOoB,EAAK;MACJ;MACR,MAAK;MACL,OAAM;MACN,MAAK;KACL,CAAA;IACqB,CAAA,CACL;;GACnB,kBAACZ,GAAD;IAAmB,WAAU;IAA7B,UAAA,CACEgD,KACA,kBAAC9D,GAAD;KACC,MAAK;KACL,MAAK;KACL,aAAY;KACZ,MAAK;KAAK,UAAA;KACV,MAAM+D;KACN,cAAYH;KACZ,OAAOA;KACG;KACV,SAASI;KAET,UAAA,kBAAC/D,GAAD;MAAM,KAAI;MAAO,MAAK;MAAU,WAAU;MACxC,UAAAgC,EAAQ;KACJ,CAAA;IACC,CAAA,GAET,kBAACjC,GAAD;KACC,MAAK;KACL,MAAK;KACL,aAAY;KACZ,MAAK;KAAK,UAAA;KACV,MAAMiE;KACN,cAAYJ;KACZ,OAAOA;KACG;KACV,eAAeK,EAASX,CAAK;KAE7B,UAAA,kBAACtD,GAAD;MAAM,KAAI;MAAO,MAAK;MAAU,WAAU;MACxC,UAAAgC,EAAQ;KACJ,CAAA;IACC,CAAA,CACU;;EACR;;AAEd;AAEA,SAASkC,EACR,GACA,GACC;CACD,IAAM,EACL,WACA,cAAW,IACX,aAAU,IACV,MAAMC,GACN,iBACA,iBACA,iBACA,oBACA,cACA,SAASC,GACT,cAAW,IACX,OAAOC,IACP,cAAcC,IACd,eAAeC,GACf,eAAeC,GACf,UAAUC,IACV,oBAAoBC,GACpB,gBAAgBC,GAChB,GAAGC,MACA1B,GACElB,IAAU6C,EAAW1D,GAA0BiD,CAAW,GAC1D,EAAE,oBAAiBvE,EAAiB,GACpC,EAAE,cAAWD,EAAoB,GACjCkF,IAAOnF,EAAsBwE,GAAUY,CAAY,GACnDC,IAAa/B,GAAYC,CAAK,GAC9B,CAAC+B,IAAmBC,MAAwBC,QAC7CjC,EAAM,WAAiB,CAAC,GAAIA,EAAM,gBAAgB,CAAC,CAAE,IAClDA,EAAM,eAAe,CAACA,EAAM,YAAY,IAAI,CAAC,CACpD,GACK,CAACN,GAAYwC,MAAiBD,EAAgC,CAAC,CAAC,GAChEE,IAAWC,EAAgC,IAAI,GAC/CC,IAAUD,EAA8B,IAAI,GAC5CE,IAAgBF,EAAO,EAAK,GAC5BG,IAAmBH,EAAO,EAAK,GAC/BI,KAAcC,GAAM,GAEpBC,IAAQC,QACRb,IACD9B,EAAM,WAAiBA,EAAM,SAAS,CAAC,IACpCA,EAAM,QAAQ,CAACA,EAAM,KAAK,IAAI,CAAC,IAFd+B,IAGtB;EAACD;EAAY9B,EAAM;EAAUA,EAAM;EAAO+B;CAAiB,CAAC;CAC/D,SAAsB;EACrB,IAAI,CAACO,EAAc,SAAS;EAC5B,IAAMM,IAASP,EAAQ,SAAS,cAA2B,sGAAsG;EACjK,AAAIO,MACHA,EAAO,MAAM,GACb,EAAc,UAAU;CAE1B,GAAG,CAACF,CAAK,CAAC;CACV,IAAMG,KAAgB7C,EAAM,WAAWA,IAAmC,KAAA,GACpEF,KAAWgD,IAAW7C,GAAiB4C,IAAe,QAAQ,IAAI,GAClEvD,KAASwD,MAAaD,IAAe,iBAAiB,cAAc,UACpEE,KAAU,GAAGrB,EAAiB,MAAM,eAAec,KAAc,UACjEQ,KAAc,CAACxB,GAAiB9B,EAAW,SAAS,IAAIqD,KAAU,KAAA,CAAS,CAAC,CAChF,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,KAAK,KAAA,GACTE,IAAkBC,KAAWxD,EAAW,SAAS,GAEjDyD,IAAcC,GAAa,MAAsB;EAEtD,IADKtB,KAAYE,GAAqB3C,CAAS,GAC3CW,EAAM,UACT,EAAM,gBAAgBX,CAAS;OACzB;GACN,IAAMgE,IAAWhE,EAAU;GAC3B,EAAM,gBAAgBgE,CAAQ;EAC/B;CACD,GAAG,CAACvB,GAAY9B,CAAK,CAAC,GAEhBhB,KAAaoE,GAAa,MAC/BlG,EAAeoG,GAAO,EAAE,UAAO,CAAC,KAAK,GAAGA,EAAM,KAC5C,CAACC,CAAM,CAAC,GAELC,KAAcJ,GAAa,MAAqB;EACrD,IAAIK,KAAY9D,EAAS,WAAW,GAAG,OAAO;EAC9C,IAAMR,IAASC,GAAsB;GACpC;GACA,SAASsD;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,CAAC;EAQD,OANAR,GAAc/C,EAAO,UAAU,GAC3BA,EAAO,WAAW,SAAS,KAAGuE,IAAkBvE,EAAO,UAAU,GACjEA,EAAO,SAAS,WAAW,MAC/B,EAAc,UAAU,CAAC2D,MAAaP,EAAiB,WAAW,EAAQF,EAAQ,SAAS,SAAS,SAAS,aAAa,IAC1H,EAAiB,UAAU,IAC3Bc,EAAYhE,EAAO,SAAS,GACrBA,EAAO,WAAW,WAAW;CACrC,GAAG;EACFhB;EACAmB;EACA6D;EACAM;EACAX;EACAJ;EACA1D;EACAc;EACAb;EACAF;EACA2E;EACA5E;EACAI;CACD,CAAC,GAEKyE,KAAmBP,QAAkB;EAC1C,AAAIjB,EAAS,YAAS,EAAS,QAAQ,QAAQ;CAChD,GAAG,CAAC,CAAC,GAECyB,KAAeR,GAAa,MAAkB;EACnD,AAAIK,MACJvB,GAAc,CAAC,CAAC,GAChByB,GAAiB,GACjB,EAAc,UAAU,EAAQtB,EAAQ,SAAS,SAAS,SAAS,aAAa,GAChFc,EAAYT,EAAM,QAAQ,GAAG,MAAcmB,MAAczD,CAAK,CAAC;CAChE,GAAG;EAACuD;EAAkBR;EAAaM;EAAUf;CAAK,CAAC,GAE7CoB,KAAaV,QAAkB;EACpC,AAAKK,MACJ,EAAiB,UAAU,EAAQpB,EAAQ,SAAS,SAAS,SAAS,aAAa,GACnFF,EAAS,SAAS,MAAM;CAE1B,GAAG,CAACsB,CAAQ,CAAC,GAEP,EAAE,gBAAY,wBAAoBpG,EAAkB;EACzD;EACA,SAASmG;CACV,CAAC,GAEKO,KAAyC;EAC9C,GAAIrC;EACJ;EACA;EACA;EACA,oBAAoBsB;EACpB,gBAAgBC,IAAkB,KAAOxB;CAC1C,GAEMuC,KACL,kBAAC1G,GAAD;EACC,MAAM,MAAS+C,GAAeC,GAAM6B,GAAU5B,CAAY;EAC1D,QAAQiD;EACA;EACE;EACA;EACV,SAASP;EACH;EACN,WAAU;EACE;EACZ,SAAS;GACR,aAAanE,EAAQ;GACrB,QAAQA,EAAQ;GAChB,UAAUA,EAAQ;EACnB;EAEA,UAAA,kBAACjC,GAAD;GACC,MAAK;GACL,MAAK;GACL,aAAY;GACN;GACI;GACV,SAASiH;GAER,UAAAhF,EAAQ;EACF,CAAA;CACC,CAAA;CAGX,OACC,kBAAC,OAAD;EACC,KAAKuD;EACL,iBAAeoB,KAAY,KAAA;EAC3B,gBAAcR,KAAmB,KAAA;EACjC,WAAWrG,EAAG,4CAA4CqH,CAAS;EAJpE,UAAA;IAMGnB,KAAYJ,EAAM,WAAW,MAAMsB;GAEpC,CAAClB,KAAYJ,EAAM,MACnB,kBAAC,OAAD;IACC,GAAIwB;IACJ,iBAAeC,MAAc,KAAA;IAC7B,gBAAclB,KAAmB,KAAA;IACjC,WAAWrG,EACV,0DACAqG,KAAmB,6CACnB,CAACQ,KAAYU,OACZlB,IACG,6CACA,uCAEL;IAZD,UAAA,CAcC,kBAAC1F,IAAD;KACC,GAAIwG;KACJ,MAAM,MAAS1D,GAAeC,GAAM6B,GAAU5B,CAAY;KAC1D,UAAU;KACV,WAAU;KACV,SAASiD;IACT,CAAA,GACD,kBAAChD,GAAD;KACC,MAAMkC,EAAM;KACZ,OAAO;KACG;KACJ;KACE;KACC;KACT,aAAA;KACA,WAAWoB;KACX,UAAUF;IACV,CAAA,CACG;;GAGLd,KAAYJ,EAAM,SAAS,KAC3B,kBAACtF,GAAD;IAAW,WAAU;IACnB,UAAAsF,EAAM,KAAK,GAAM,MACjB,kBAAClC,GAAD;KAEO;KACC;KACG;KACJ;KACE;KACC;KACT,aAAa;KACb,WAAWsD;KACX,UAAUF;IACV,GAVKzD,GAAQ5B,GAAM6B,CAAK,CAUxB,CACD;GACS,CAAA;GAGXV,EAAW,SAAS,KACpB,kBAAC1C,GAAD;IACC,IAAI+F;IACJ,MAAK;IACL,aAAU;IACV,WAAWnG,EACV,uBACAgF,MAAS,QAAQ,cAClB;IAPD,UAAA;KASC,kBAACwC,GAAD,EAAe,eAAY,OAAQ,CAAA;KACnC,kBAACrH,GAAD,EAAA,UAAa+B,EAAQ,cAA0B,CAAA;KAC/C,kBAAC7B,GAAD,EAAA,UACC,kBAAC,MAAD;MAAI,WAAU;MACZ,UAAAyC,EAAW,KAAK,GAAW,MAC3B,kBAAC,MAAD;OAEC,WAAU;OAEV,UAAA,kBAAC5C,GAAD;QAAM,KAAI;QAAO,MAAK;QAAK,MAAK;QAC9B,UAAAuH,EAAU;OACN,CAAA;MACH,GANE,GAAGA,EAAU,KAAK,GAAGlE,GAAQkE,EAAU,MAAMjE,CAAK,GAMpD,CACJ;KACE,CAAA,EACa,CAAA;IACZ;;EAEJ;;AAEP;AAGA,IAAakE,IAAaC,EAA8CvD,CAAc;AACtF,EAAW,cAAc;;;AC3XzB,IAAMwD,IAAkB;CAAC;CAAK;CAAM;CAAM;CAAM;AAAI;AAEpD,SAASC,EAAkB,GAAuB;CACjD,IAAI,CAAC,OAAO,SAASnB,CAAK,KAAKA,KAAS,GAAG,OAAO;CAClD,IAAMoB,IAAY,KAAK,IACtB,KAAK,MAAM,KAAK,IAAIpB,CAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAC3CkB,EAAgB,SAAS,CAC1B,GACMtE,IAAQoD,IAAQ,QAAQoB;CAI9B,OAAO,GAHgBA,MAAc,IAClCxE,EAAM,QAAQ,CAAC,IACf,OAAOA,EAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EACZ,GAAGsE,EAAgBE;AAC7C;AAEA,IAAIC,IAAY;AAChB,SAASC,KAAqB;CAG7B,OAAO,GAFW,KAAK,IAAI,CAAC,CAAC,SAAS,EAE5B,EAAU,IADL,IAAA,CAAa,SAAS,EACd;AACxB;AAEA,SAASC,GAAa,GAAY;CACjC,OAAOtG,EAAK,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK;AACrD;AAEA,SAASuG,EAAe,GAAY;CACnC,OAAO,GAAGvG,EAAK,KAAK,QAAQA,EAAK,KAAK,QAAQA,EAAK,KAAK,QAAQA,EAAK;AACtE;AAEA,SAASwG,GAAW,GAAsB;CACzC,OAAO;EACN,IAAIH,GAAW;EACf;EACA,MAAMrG,EAAK;EACX,MAAMA,EAAK;EACX,eAAekG,EAAkBlG,EAAK,IAAI;EAC1C,MAAMA,EAAK;EACX,WAAWsG,GAAatG,CAAI;EAC5B,cAAcA,EAAK;CACpB;AACD;AAEA,SAASW,EACR,GACA,GAC4B;CAC5B,IAAM8F,IAAYH,GAAatG,CAAI;CACnC,IAAI0G,GAAO,YAAY,KAAA,KAAa1G,EAAK,OAAO0G,EAAM,SACrD,OAAO;EACN;EACA,MAAM;EACN,SAAS,EAAE,cAAcA,EAAM,QAAQ;CACxC;CAED,IAAIA,GAAO,YAAY,KAAA,KAAa1G,EAAK,OAAO0G,EAAM,SACrD,OAAO;EACN;EACA,MAAM;EACN,SAAS,EAAE,cAAcA,EAAM,QAAQ;CACxC;CAED,IACCA,GAAO,qBACP,CAACA,EAAM,kBAAkB,MAAM,MAAYC,EAAQ,YAAY,CAAC,CAAC,QAAQ,OAAO,EAAE,MAAMF,CAAS,GAEjG,OAAO;EACN;EACA,MAAM;EACN,SAAS,EAAE,aAAU;CACtB;CAED,IAAIC,GAAO,iBAAiB;EAC3B,IAAI9F;EACJ,IAAI;GACH,IAAS8F,EAAM,gBAAgB1G,CAAI;EACpC,QAAQ;GACP,IAAS;EACV;EACA,IAAIY,MAAW,IACd,OAAO;GACN;GACA,MAAM;GACN,SAAS,EACR,eAAe,OAAOA,KAAW,YAAYA,EAAO,SAAS,IAC1DA,IACA,KAAA,EACJ;EACD;CAEF;AAED;AAEA,SAASgG,EAAW,GAA6B;CAChD,OAAO,OAAO,YAAYzF,EAAW,KAAK,MAAc,CAAC2E,EAAU,KAAK,MAAMA,CAAS,CAAC,CAAC;AAC1F;AAEA,SAAgBe,EAAS,GAA6C;CACrE,IAAM,CAAC1C,GAAO2C,KAAiBpD,EAAqB,CAAC,CAAC,GAChDqD,IAAWlD,EAAmB,CAAC,CAAC,GAChC,CAAC1C,GAAYwC,KAAiBD,EAA0B,CAAC,CAAC,GAE1DjD,IAAaoE,EAAYqB,GAAmB,CAAC,CAAC,GAE9Cc,IAAenC,GAAa,GAA6B,MAAqB;EACnF,IAAMoC,IAAgB,MAAM,QAAQ7F,CAAQ,IAAIA,IAAW,MAAM,KAAKA,CAAQ,GACxE8F,IAAgBH,EAAS,SAC3BjG,IAAYqG,IAAU,CAAC,IAAI,CAAC,GAAGD,CAAa,GAC1CjG,IAAe,IAAI,IAAIH,EAAU,KAAK,MAASyF,EAAea,EAAK,IAAI,CAAC,CAAC,GACzElG,IAAuB,CAAC,GACxBmG,IAAkC,CAAC;EAEzC,KAAK,IAAMrH,KAAQiH,GAAe;GACjC,IAAM3F,IAAciF,EAAevG,CAAI;GACvC,IAAIiB,EAAa,IAAIK,CAAW,GAAG;IAClC,EAAe,KAAK;KAAE;KAAM,MAAM;KAAa,SAAS,CAAC;IAAE,CAAC;IAC5D;GACD;GAEA,IAAMwE,IAAYnF,EAAaX,GAAM0G,CAAK;GAC1C,IAAIZ,GAAW;IACd,EAAe,KAAKA,CAAS;IAC7B;GACD;GAEA,IAAIY,GAAO,aAAa,KAAA,KAAa5F,EAAU,UAAU4F,EAAM,UAAU;IACxE,EAAe,KAAK;KACnB;KACA,MAAM;KACN,SAAS,EAAE,cAAcA,EAAM,SAAS;IACzC,CAAC;IACD;GACD;GAEA,IAAMU,IAAOZ,GAAWxG,CAAI;GAG5B,AAFAkB,EAAS,KAAKkG,CAAI,GAClBtG,EAAU,KAAKsG,CAAI,GACnBnG,EAAa,IAAIK,CAAW;EAC7B;EAQA,OAPI6F,KAAWjG,EAAS,WAAW,KAAKmG,EAAe,SAAS,MAC/D,IAAYH,IAGb,EAAS,UAAUpG,GACnBgG,EAAchG,CAAS,GACvB6C,EAAc0D,CAAc,GACrB;GAAE;GAAU,OAAOvG;GAAW,YAAYuG;EAAe;CACjE,GAAG,CAACX,CAAK,CAAC;CAqBV,OAAO;EACN;EACA,UArBgB7B,GACf,MAAgCmC,EAAa5F,GAAU,EAAK,GAC7D,CAAC4F,CAAY,CAmBb;EACA,UAlBgBnC,GACf,MAAgCmC,EAAa5F,GAAU,EAAI,GAC5D,CAAC4F,CAAY,CAgBb;EACA,QAfcnC,GAAa,MAAe;GAC1C,IAAM/D,IAAYiG,EAAS,QAAQ,QAAQ,MAAS/G,EAAK,OAAOsH,CAAE;GAElE,AADA,EAAS,UAAUxG,GACnBgG,EAAchG,CAAS;EACxB,GAAG,CAAC,CAWH;EACA,WAXiB+D,QAAkB;GAGnC,AAFA,EAAS,UAAU,CAAC,GACpBiC,EAAc,CAAC,CAAC,GAChBnD,EAAc,CAAC,CAAC;EACjB,GAAG,CAAC,CAOH;EACA;EACA,kBAAkBiD,EAAWzF,CAAU;EACvC;CACD;AACD;;;ACjOA,IAAMoG,IAAmB,GAMnBC,KAA+D;CACnE,QAAQ;CACR,UAAU;CACV,YAAY;CACZ,UAAU;AACZ,GA2BaC,IAAgD;CAC3D,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,aAAa;CACb,aAAa;CACd,YAAY;CACX,kBAAkB;CACnB,cAAc,GAAU,MAAc,GAAG9H,EAAS,wBAAwB8G,KAAa,UAAU;CACjG,WAAW,GAAU,MAAY,GAAG9G,EAAS,mBAAmBE,EAAQ;CACxE,WAAW,GAAU,MAAY,GAAGF,EAAS,kBAAkBG,EAAQ;CACvE,UAAU,GAAU,MAAY,GAAGH,EAAS,wBAAwBG,EAAQ;CAC5E,YAAY,MAAa,GAAGH,EAAS;CACrC,yBAAyB,MAAa,GAAGA,EAAS;CACjD,YAAY,MAAU,KAAK+H,EAAM,YAAYA,MAAU,IAAI,KAAK;AAClE;AAEA,SAASC,GACR,GACA,GACA,GACC;CACD,IAAM,EAAE,SAAM,SAAM,eAAY7B;CAChC,QAAQ8B,GAAR;EACC,KAAK,gBACJ,OAAOrH,EAAQ,YAAYP,EAAK,MAAM6H,EAAQ,aAAa,EAAE;EAC9D,KAAK,aACJ,OAAOtH,EAAQ,SAASP,EAAK,MAAMS,EAAWoH,EAAQ,gBAAgB,CAAC,CAAC;EACzE,KAAK,aACJ,OAAOtH,EAAQ,SAASP,EAAK,MAAMS,EAAWoH,EAAQ,gBAAgB,CAAC,CAAC;EACzE,KAAK,YACJ,OAAOtH,EAAQ,QAAQP,EAAK,MAAM6H,EAAQ,gBAAgB,CAAC;EAC5D,KAAK,aACJ,OAAOtH,EAAQ,UAAUP,EAAK,IAAI;EACnC,KAAK,UACJ,OAAO6H,EAAQ,iBAAiBtH,EAAQ,uBAAuBP,EAAK,IAAI;CAC1E;AACD;AA4BA,SAAS8H,GACP,EACA,YAAS,6BACT,cAAW,IACX,UACA,kBACA,aACA,sBACA,iBAAc,UACd,SAAM,SACN,aACA,YAAS,WACT,aACA,SAASnF,KAET,GACA;CACA,IAAMpC,IAAU6C,EAAWqE,GAA2B9E,CAAW,GAC3DoF,IAAU7D,GAAM,GAChBN,IAAWC,EAAgC,IAAI,GAE/CmE,IAAoB5D,QAAc;EACtC,IAAI,CAACxE,GACH,OAAO;GAAC;GAAO;GAAO;GAAQ;GAAO;EAAK;EAG5C,IAAMqI,IAASrI,EACZ,MAAM,GAAG,CAAC,CACV,KAAK,MAASsI,EAAK,KAAK,CAAC,CAAC,CAC1B,KAAK,MAAS;GACb,IAAI,CAACA,GAAM,OAAO;GAClB,IAAIA,EAAK,WAAW,GAAG,GACrB,OAAOA,EAAK,MAAM,CAAC,CAAC,CAAC,YAAY;GAGnC,IAAIA,EAAK,SAAS,GAAG,GAAG;IACtB,IAAMC,IAAUD,EAAK,MAAM,GAAG,CAAC,CAAC,MAAM;IAItC,OAHIC,MAAY,OAAOA,EAAQ,WAAW,IACjC,OAEFA,EAAQ,QAAQ,QAAQ,EAAE,CAAC,CAAC,YAAY;GACjD;GAEA,OAAOD,EAAK,YAAY;EAC1B,CAAC,CAAC,CACD,QAAQ,MAAuB,EAAQE,CAAI;EAE9C,IAAIH,EAAO,WAAW,GAItB,OAAO,MAAM,KAAK,IAAI,IAAIA,CAAM,CAAC;CACnC,GAAG,CAACrI,CAAM,CAAC,GAWL,EAAE,UAAO,aAAU,WAAQ,cAAW,gBAAY,kBAAeiH,EATrDzC,SACT;EACL,UAAUG,IAAW,KAAA,IAAY;EACpC,SAASgD,IAAmB,OAAO;EAChC;CACF,IACA,CAAChD,GAAUyD,CAAiB,CAGkD,CAAS;CAGzF,QAAgB;EACd,AAAIrG,IACF0G,EAAS,CAAC1G,CAAK,CAAC,KAEhB2G,EAAU,GACN1E,EAAS,YACX,EAAS,QAAQ,QAAQ;CAG/B,GAAG;EAACjC;EAAO0G;EAAUC;CAAS,CAAC;CAE/B,IAAMC,IAAWpE,EAAM,IAClBqE,IAA4BD,IAAWhI,EAAQ,SAASA,EAAQ,QAC/D,CAACkI,GAAgBC,MAAqBhF,EAA6B,KAAA,CAAS,GAE5EiF,IAA0BvE,QAC1B,CAAC4D,KAAqBA,EAAkB,WAAW,IAC9C,OAEFA,EAAkB,KAAK,MAAQI,EAAI,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GACjE,CAACJ,CAAiB,CAAC;CAEtB,QAAgB;EACd,IAAMhI,IAAOuI,GAAU,QAAQ5G;EAC/B,IAAI,CAAC3B,GAAM;GACT,GAAkB,KAAA,CAAS;GAC3B;EACF;EACA,IAAM4I,IAAM,IAAI,gBAAgB5I,CAAI;EAEpC,OADA0I,GAAkBE,CAAG,SACR,IAAI,gBAAgBA,CAAG;CACtC,GAAG,CAACL,GAAU5G,CAAK,CAAC;CAEpB,IAAMkH,IAAaJ,KAAkBK,GAC/BC,IAAa,EAAQF,GACtBG,IAAaT,GAAU,QAAQhI,EAAQ,cAAckH,EAA0B,YAC9EwB,KAAczB,GAAqB0B,MAAgB1B,GAAqB,QACxE2B,KAAcC,MAAQ,YAAY,gCAAgC,gBAKlEC,KAAmBC,IAAY,OAAOA,KAAa,WAAW,GAAGA,EAAS,MAAMA,IAAY,SAC5FC,KAAeC,MAAW,WAAW,KAAA,IAAY,EAAE,UAAUH,GAAiB,GAC9EI,KACJD,MAAW,WACP;EACC,UAAUF,IAAWD,KAAmB;EACxC,OAAO;CACT,IACC,KAAA,GAEApE,IAAcJ,GAAa,MAAqB;EACrD,IAAIK,KAAY9D,EAAS,WAAW,GAAG;EAEvC,IAAMsI,IADSrB,EAASjH,CACH,CAAA,CAAO,SAAS,EAAE,EAAE;EACzC,AAAIsI,KAAcC,IAAgBD,CAAY;CAC/C,GAAG;EAACxE;EAAUmD;EAAUsB;CAAa,CAAC,GAChCC,IAAc/E,GAAa,MAA+C;EAC/E,EAAY,MAAM,KAAKgF,EAAM,OAAO,SAAS,CAAC,CAAC,CAAC;CACjD,GAAG,CAAC5E,CAAW,CAAC,GACV,EAAE,eAAY,uBAAoBnG,EAAkB;EAAE;EAAU,SAASmG;CAAY,CAAC,GAEtF6E,IAAoBjF,QAAkB;EAC1C,AAAIK,KACJtB,EAAS,SAAS,MAAM;CAC1B,GAAG,CAACsB,CAAQ,CAAC,GAEPG,IAAeR,QAAkB;EAKrC,AAJI0D,KACFwB,EAAOxB,EAAS,EAAE,GAEpBoB,IAAgB,KAAA,CAAS,GACrB/F,EAAS,YACX,EAAS,QAAQ,QAAQ;CAE7B,GAAG;EAAC2E;EAAUwB;EAAQJ;CAAa,CAAC;CAEpC,OACE,kBAAC,OAAD;EAAK,WAAWtL,EAAG,2BAA2B,mBAAmB;EAAG,OAAOkL;EAA3E,UAAA;GACE,kBAAC,SAAD;IACE,MAAM,MAAS;KAA2B,AAAzB,EAAS,UAAUxH,GAAU,OAAOC,KAAiB,aAAYA,EAAaD,CAAI,IAAYC,MAAc,EAAa,UAAUD;IAAM;IAC1J,IAAIgG;IACJ,MAAK;IACL,WAAU;IACV,cAAYS;IACJ;IACE;IACA;IACV,UAAUoB;GACX,CAAA;GAED,kBAAC,OAAD;IAAK,WAAWvL,EAAGmL,MAAW,WAAW,4CAA4C,mBAAmB;IAAxG,UAAA,CACE,kBAAC,OAAD;KACE,GAAI7D;KACJ,iBAAeC,KAAc,KAAA;KAC7B,WAAWvH,EACT,uEACAmL,MAAW,WAAW,yBAAyB,UAC/CP,IACA,CAAC/D,KAAYU,KAAc,oBAC3BmD,IACI,8BACA1K,EACC,sDACAsG,KAAU,uBAAuB,eACnC,CACL;KACA,OAAO8E;KAEN,UAAAV,KAAcF,IACb,kBAAC,OAAD;MACE,KAAKA;MACP,KAAKG;MACH,WAAW3K,EAAG,kCAAkC8K,EAAW;KAC5D,CAAA,IAED,kBAAC,OAAD;MAAK,WAAU;MACb,UAAA,kBAACa,IAAD;OAAW,eAAA;OAAY,WAAU;MAAgB,CAAA;KAC9C,CAAA;IAEJ,CAAA,GAEL,kBAAC,OAAD;KAAK,WAAW3L,EAAG,qBAAqBmL,MAAW,YAAY,yBAAyB;KAAxF,UAAA;MACE,kBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACO,kBAAClL,GAAD;QACI,MAAK;QACL,MAAK;QACL,aAAY;QACZ,SAASwL;QACC;QAET,UAAAtB;OACG,CAAA,GACZ,CAACD,KAAY,CAAC,CAACQ,KACd,kBAACxK,GAAD;QAAM,MAAK;QAAK,MAAK;QAAa,UAAAgC,EAAQ;OAAkB,CAAA,CAE3D;;MAEJ,CAAC,CAACoI,KACD,kBAACpK,GAAD;OAAM,MAAK;OAAK,MAAK;OAClB,UAAAgC,EAAQ,iBACN,QAAQ,SAASoI,CAAuB,CAAC,CACzC,QAAQ,UAAU,OAAOpB,CAAgB,CAAC;MACzC,CAAA;MAGP,CAAC,CAACgB,KACD,kBAAC,OAAD;OAAK,WAAU;OAAf,UAAA;QACE,kBAAChK,GAAD;SAAM,QAAO;SAAS,OAAOgK,EAAS;SAAM,WAAU;SACnD,UAAAA,EAAS;QACN,CAAA;QACN,kBAAChK,GAAD;SAAM,MAAK;SAAK,MAAK;SAClB,UAAAgK,EAAS;QACN,CAAA;QACL,CAAC,CAAChE,KAAYJ,EAAM,SAAS,KAC5B,kBAAC5F,GAAD;SAAM,MAAK;SAAK,MAAK;SAClB,UAAAgC,EAAQ,UAAU4D,EAAM,SAAS,CAAC;QAC/B,CAAA;QAER,kBAAC7F,GAAD;SACE,MAAK;SACL,MAAK;SACL,aAAY;SACZ,MAAK;SACL,MAAM2L;SACN,SAAS5E;SAER,UAAA9E,EAAQ;QACH,CAAA;OACL;;MAGN,CAACgI,KAAY,CAACQ,KACb,kBAACxK,GAAD;OAAM,MAAK;OAAK,MAAK;OAAa,UAAAgC,EAAQ;MAAkB,CAAA;KAE3D;IACF,CAAA,CAAA;;GAGJY,EAAW,SAAS,KACnB,kBAAC,OAAD;IAAK,WAAU;IAA0C,MAAK;IAAQ,aAAU;IAC7E,UAAAA,EAAW,KAAK,GAAW,MAC1B,kBAAC5C,GAAD;KAAgE,MAAK;KAAK,MAAK;KACnF,UAAAoJ,GAA+B7B,GAAWvF,GAASE,EAAU;IACnD,GAFK,GAAGqF,EAAU,KAAK,KAAK,GAAGA,EAAU,KAAK,GAAGjE,GAEjD,CACP;GACE,CAAA;EAEJ;;AAET;AAEA,IAAMqI,KAAczK,EAAM,WAA+CqI,EAAe;AACxF,GAAY,cAAc;;;ACnV1B,IAAaqC,KAAkD;CAC9D,QAAQ;CACR,QAAQ;CACR,MAAM;CACN,UAAU;CACV,cAAc,GAAU,MAAc,GAAGxK,EAAS,wBAAwB8G,KAAa,UAAU;CACjG,WAAW,GAAU,MAAY,GAAG9G,EAAS,mBAAmBE,EAAQ;CACxE,WAAW,GAAU,MAAY,GAAGF,EAAS,kBAAkBG,EAAQ;CACvE,UAAU,GAAU,MAAY,GAAGH,EAAS,wBAAwBG,EAAQ;CAC5E,YAAY,MAAa,GAAGH,EAAS;CACrC,yBAAyB,MAAa,GAAGA,EAAS;AACnD;AAEA,SAASyK,GACR,GACA,GACA,GACC;CACD,IAAM,EAAE,SAAM,SAAM,eAAYtE;CAChC,QAAQ8B,GAAR;EACC,KAAK,gBACJ,OAAOrH,EAAQ,YAAYP,EAAK,MAAM6H,EAAQ,aAAa,EAAE;EAC9D,KAAK,aACJ,OAAOtH,EAAQ,SAASP,EAAK,MAAMS,EAAWoH,EAAQ,gBAAgB,CAAC,CAAC;EACzE,KAAK,aACJ,OAAOtH,EAAQ,SAASP,EAAK,MAAMS,EAAWoH,EAAQ,gBAAgB,CAAC,CAAC;EACzE,KAAK,YACJ,OAAOtH,EAAQ,QAAQP,EAAK,MAAM6H,EAAQ,gBAAgB,CAAC;EAC5D,KAAK,aACJ,OAAOtH,EAAQ,UAAUP,EAAK,IAAI;EACnC,KAAK,UACJ,OAAO6H,EAAQ,iBAAiBtH,EAAQ,uBAAuBP,EAAK,IAAI;CAC1E;AACD;AAuBA,IAAMqK,IAAmF;CACxF,IAAI;EAAE,KAAK;EAA4B,MAAM;EAAa,QAAQ;CAAqB;CACvF,IAAI;EAAE,KAAK;EAAsB,MAAM;EAAgB,QAAQ;CAAc;CAC7E,IAAI;EAAE,KAAK;EAA4B,MAAM;EAAgB,QAAQ;CAAiB;AACvF;AAEA,SAASC,EACR,EACA,UACA,kBACA,sBACA,YAAS,8BACT,cAAW,IACX,aAAU,IACV,MAAM5H,GACN,cACA,SAASC,GACT,gBAEA,GACC;CACD,IAAM,EAAE,oBAAiBvE,EAAiB,GACpCiF,IAAOnF,EAAsBwE,GAAUY,CAAY,GACnD/C,IAAU6C,EAAW+G,IAA4BxH,CAAW,GAC5DoF,IAAU7D,GAAM,GAChBN,IAAWC,EAAgC,IAAI,GAC/C0G,IAAQF,EAAQhH,IAEhB,EAAE,UAAO,aAAU,cAAW,gBAAY,mBAAewD,EAAS;EACvE,UAAU;EACV,mBAAmBzC,QAEjBxE,EACE,MAAM,GAAG,CAAC,CACV,KAAK,MAAM4K,EAAE,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CACrD,OAAO,OAAO,GACjB,CAAC5K,CAAM,CACR;CACD,CAAC;CAED,QAAgB;EACf,AAAI+B,IAAO0G,EAAS,CAAC1G,CAAK,CAAC,IACtB2G,EAAU;CAEhB,GAAG,CAAC3G,CAAK,CAAC;CAEV,IAAM4G,KAAWpE,EAAM,IACjB,CAACsE,GAAgBC,KAAqBhF,EAA6B,KAAA,CAAS;CAElF,QAAgB;EACf,IAAM1D,IAAOuI,IAAU,QAAQ5G;EAC/B,IAAI,CAAC3B,GAAM;GACV,EAAkB,KAAA,CAAS;GAC3B;EACD;EACA,IAAM4I,IAAM,IAAI,gBAAgB5I,CAAI;EAEpC,OADA0I,EAAkBE,CAAG,SACR,IAAI,gBAAgBA,CAAG;CACrC,GAAG,CAACL,IAAU5G,CAAK,CAAC;CAEpB,IAAMkH,IAAaJ,KAAkBK,GAC/BC,IAAa,EAAQF,GAErBe,IAAc/E,GAClB,MAAqC;EACrC,IAAM4F,IAAO,EAAE,OAAO;EACtB,IAAI,CAACA,KAAQA,EAAK,WAAW,GAAG;EAEhC,IAAMf,IADSrB,EAASoC,CACH,CAAA,CAAO,SAAS,EAAE,EAAE;EAEzC,AADIf,KAAcC,IAAgBD,CAAY,GAC1C9F,EAAS,YAAS,EAAS,QAAQ,QAAQ;CAChD,GACA,CAAC+F,GAAetB,CAAQ,CACzB,GAEMhD,IAAeR,QAAkB;EAGtC,AAFAyD,EAAU,GACVqB,IAAgB,KAAA,CAAS,GACrB/F,EAAS,YAAS,EAAS,QAAQ,QAAQ;CAChD,GAAG,CAAC+F,GAAerB,CAAS,CAAC,GAEvBrD,IAAcJ,GAAa,MAAqB;EAErD,IAAM6E,IADSrB,EAASjH,CACH,CAAA,CAAO,SAAS,EAAE,EAAE;EACzC,AAAIsI,KAAcC,IAAgBD,CAAY;CAC/C,GAAG,CAACC,GAAetB,CAAQ,CAAC,GACtB,EAAE,gBAAY,wBAAoBvJ,EAAkB;EAAE;EAAU,SAASmG;CAAY,CAAC;CAE5F,OACC,kBAAC,OAAD;EAAK,WAAW5G,EAAG,4BAA4B,kDAAkDqH,CAAS;EAA1G,UAAA;GACC,kBAAC,OAAD;IACC,GAAIC;IACJ,WAAWtH,EACV,yFACA,oEACA,iDACA0K,IACG,iCACA1K,EACA,uDACAsG,IAAU,uBAAuB,4BAClC,GACFO,KAAY,iCACZ,CAACA,KAAYU,MAAc,gCAC3B2E,EAAM,GACP;IAfD,UAAA;KAiBC,kBAAC,SAAD;MACC,IAAIxC;MACJ,MAAM,MAAS;OAA2B,AAAzB,EAAS,UAAUhG,GAAU,OAAOC,KAAiB,aAAYA,EAAaD,CAAI,IAAYC,MAAc,EAAa,UAAUD;MAAM;MAC1J,MAAK;MACL,WAAU;MACV,cAAYxB,EAAQ;MACpB,gBAAcoE,KAAW,KAAA;MACjB;MACE;MACV,UAAUiF;KACV,CAAA;KAEAb,KAAcF,IACd,kBAAC,OAAD;MACC,KAAKA;MACL,KAAKtI,EAAQ;MACb,WAAU;KACV,CAAA,IACGmK,KACH,kBAACnM,GAAD;MAAM,MAAM8E,MAAS,OAAO,OAAOA,MAAS,OAAO,OAAO;MAAQ,QAAO;MAAO,WAAU;MACxF,UAAAqH;KACI,CAAA,IAEP,kBAACC,GAAD;MAAQ,WAAWtM,EAAGkM,EAAM,MAAM,uBAAuB;MAAG,eAAY;KAAQ,CAAA;KAIhF,CAACrF,KAAY6D,KACb,kBAAC,OAAD;MACC,WAAU;MACV,eAAY;MAEZ,UAAA,kBAAC4B,GAAD,EAAQ,WAAWJ,EAAM,KAAO,CAAA;KAC5B,CAAA;KAIL,CAACrF,KAAY6D,KACb,kBAAC,UAAD;MACC,MAAK;MACL,cAAYxI,EAAQ;MACpB,UAAU,MAAM;OAEf,AADA,EAAE,gBAAgB,GAClB8E,EAAa;MACd;MACA,WAAWhH,EACV,0IACA,mIACAkM,EAAM,MACP;MAEA,UAAA,kBAACK,IAAD,EAAG,WAAU,eAAgB,CAAA;KACtB,CAAA;KAGR,CAAC1F,KAAY,CAAC6D,KAAcnD,MAC5B,kBAACrH,GAAD;MAAM,MAAK;MAAK,QAAO;MAAS,WAAU;MACxC,UAAAgC,EAAQ;KACJ,CAAA;IAEH;;GAEJ,CAACwI,KACD,kBAACxK,GAAD;IAAM,MAAK;IAAK,MAAK;IACnB,UAAAgC,EAAQ;GACJ,CAAA;GAENY,GAAW,SAAS,KACpB,kBAAC,OAAD;IAAK,WAAU;IAA2C,MAAK;IAAQ,aAAU;IAC/E,UAAAA,GAAW,KAAK,GAAW,MAC3B,kBAAC5C,GAAD;KAEC,MAAK;KACL,MAAK;KAEJ,UAAA6L,GAAgCtE,GAAWvF,GAASE,EAAU;IAC1D,GALA,GAAGqF,EAAU,KAAK,KAAK,GAAGA,EAAU,KAAK,GAAGjE,GAK5C,CACN;GACG,CAAA;EAEF;;AAEP;AAEA,IAAMgJ,KAAe5M,EAAM,WAAgDqM,CAAgB;AAC3F,GAAa,cAAc"}
@@ -0,0 +1,410 @@
1
+ "use client";
2
+ import { _ as e, s as t } from "./ui-provider-CftIB6TY.js";
3
+ import { useStrings as n } from "./lib/strings.js";
4
+ import { t as r } from "./utils-C2EKeIw3.js";
5
+ import { n as i } from "./buttons-Co6GavvM.js";
6
+ import { a } from "./typography-Cv8MT-82.js";
7
+ import { t as o } from "./structure-MvKVq-oL.js";
8
+ import { g as s, i as c } from "./primitives-DKPOGVpj.js";
9
+ import { t as l } from "./badge-BZXZT9wd.js";
10
+ import { t as u } from "./use-file-drop-target-BX7GnhoQ.js";
11
+ import { a as d, c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./attachment-BO2R47wn.js";
12
+ import { forwardRef as y, useCallback as b, useId as x } from "react";
13
+ import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
14
+ import { AlertCircle as T, Check as E, Clock as D, Download as O, Eye as k, RefreshCw as A, UploadCloud as j, X as M } from "lucide-react";
15
+ //#region src/components/base/upload/file-picker-input.tsx
16
+ var N = y(function({ className: e, onFiles: t, onClick: n, ...i }, a) {
17
+ let o = (e) => {
18
+ e.stopPropagation(), n?.(e), e.defaultPrevented || (e.currentTarget.value = "");
19
+ }, s = (e) => {
20
+ let n = e.currentTarget.files;
21
+ n?.length && t(Array.from(n)) === !1 && (e.currentTarget.value = "");
22
+ };
23
+ return /* @__PURE__ */ C("input", {
24
+ ...i,
25
+ ref: a,
26
+ type: "file",
27
+ "data-slot": "file-picker-input",
28
+ className: r("file-picker-input--component sr-only", e),
29
+ onClick: o,
30
+ onChange: s
31
+ });
32
+ });
33
+ N.displayName = "FilePickerInput";
34
+ //#endregion
35
+ //#region src/components/base/upload/dropzone.tsx
36
+ var P = {
37
+ instruction: "Drag files here or click to browse",
38
+ helper: "",
39
+ dragOver: "Release to select"
40
+ }, F = {
41
+ sm: {
42
+ padding: "p-surface-xs",
43
+ minHeight: "min-h-24",
44
+ iconBox: "size-avatar-lg",
45
+ iconSize: "size-icon"
46
+ },
47
+ md: {
48
+ padding: "p-surface",
49
+ minHeight: "min-h-32",
50
+ iconBox: "size-avatar-lg",
51
+ iconSize: "size-icon-lg"
52
+ },
53
+ lg: {
54
+ padding: "p-surface-lg",
55
+ minHeight: "min-h-40",
56
+ iconBox: "size-upload-avatar-small",
57
+ iconSize: "size-icon-lg"
58
+ }
59
+ };
60
+ function I(e, t) {
61
+ typeof t == "function" ? t(e) : t && (t.current = e);
62
+ }
63
+ function L({ onDrop: i, accept: o, multiple: s = !1, disabled: c = !1, invalid: l = !1, size: d, icon: f, className: p, inputProps: m, children: h, strings: g }, _) {
64
+ let { defaultScale: v } = t(), y = n(P, g), b = x(), S = m?.id ?? `dropzone-${b}`, { isDragging: T, dropTargetProps: E } = u({
65
+ disabled: c,
66
+ onFiles: i
67
+ }), D = F[e(d, v)];
68
+ return /* @__PURE__ */ w("div", {
69
+ ...E,
70
+ "data-disabled": c || void 0,
71
+ "data-invalid": l || void 0,
72
+ "data-dragging": T || void 0,
73
+ className: r("dropzone--component relative flex flex-col items-center justify-center gap-space-md rounded-radius-lg border border-dashed text-center transition-colors duration-150", "has-[[data-slot=file-picker-input]:focus-visible]:ring-2 has-[[data-slot=file-picker-input]:focus-visible]:ring-ring/50 has-[[data-slot=file-picker-input]:focus-visible]:ring-offset-2", D.minHeight, D.padding, l ? "border-destructive" : "border-muted-foreground/40", l ? !c && "hover:bg-destructive/5" : !c && "hover:border-primary hover:bg-primary/5", c && "cursor-not-allowed opacity-50", !c && T && (l ? "border-destructive bg-destructive/5" : "border-primary bg-primary/10"), p),
74
+ children: [
75
+ /* @__PURE__ */ C(N, {
76
+ ...m,
77
+ ref: (e) => I(e, _),
78
+ id: S,
79
+ accept: o,
80
+ multiple: s,
81
+ disabled: c,
82
+ "aria-invalid": l || void 0,
83
+ className: r("dropzone--input", m?.className),
84
+ onFiles: i
85
+ }),
86
+ /* @__PURE__ */ w("label", {
87
+ htmlFor: c ? void 0 : S,
88
+ "aria-disabled": c || void 0,
89
+ className: r("dropzone--trigger flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-space-md", c && "cursor-not-allowed"),
90
+ children: [/* @__PURE__ */ C("span", {
91
+ className: r("dropzone--icon inline-flex items-center justify-center rounded-full bg-primary/10 text-primary-accent", D.iconBox),
92
+ "aria-hidden": "true",
93
+ children: f ?? /* @__PURE__ */ C(j, { className: D.iconSize })
94
+ }), /* @__PURE__ */ w("span", {
95
+ className: "dropzone--copy grid gap-normal text-center [&_p]:text-center",
96
+ children: [/* @__PURE__ */ C(a, {
97
+ tag: "span",
98
+ weight: "medium",
99
+ className: "dropzone--instruction",
100
+ children: T ? y.dragOver : y.instruction
101
+ }), !!y.helper && /* @__PURE__ */ C(a, {
102
+ tag: "span",
103
+ size: "xs",
104
+ type: "secondary",
105
+ className: "dropzone--helper",
106
+ children: y.helper
107
+ })]
108
+ })]
109
+ }),
110
+ !!h && /* @__PURE__ */ C("div", {
111
+ className: "dropzone--action",
112
+ children: h
113
+ })
114
+ ]
115
+ });
116
+ }
117
+ var R = y(L);
118
+ R.displayName = "Dropzone";
119
+ //#endregion
120
+ //#region src/components/base/upload-queue/upload-progress-list.tsx
121
+ var z = {
122
+ queued: "Queued",
123
+ uploading: "Uploading",
124
+ done: "Uploaded",
125
+ error: "Failed",
126
+ cancelled: "Cancelled",
127
+ cancel: "Cancel",
128
+ retry: "Retry",
129
+ remove: "Remove",
130
+ preview: "Preview",
131
+ download: "Download"
132
+ }, B = {
133
+ queued: {
134
+ icon: D,
135
+ fg: "text-muted-foreground"
136
+ },
137
+ uploading: {
138
+ icon: j,
139
+ fg: "text-primary-accent"
140
+ },
141
+ done: {
142
+ icon: E,
143
+ fg: "text-success"
144
+ },
145
+ error: {
146
+ icon: T,
147
+ fg: "text-destructive"
148
+ },
149
+ cancelled: {
150
+ icon: M,
151
+ fg: "text-muted-foreground"
152
+ }
153
+ };
154
+ function V({ items: e, onPreview: t, onDownload: l, onCancel: u, onRetry: y, onRemove: b, className: x, strings: S }) {
155
+ let T = n(z, S), E = {
156
+ queued: T.queued,
157
+ uploading: T.uploading,
158
+ done: T.done,
159
+ error: T.error,
160
+ cancelled: T.cancelled
161
+ };
162
+ return e.length === 0 ? null : /* @__PURE__ */ C(o, {
163
+ render: /* @__PURE__ */ C("ul", {}),
164
+ gap: "sm",
165
+ className: r("upload-progress-list--component", x),
166
+ children: e.map((e) => {
167
+ let n = B[e.status], x = n.icon, S = e.progress === void 0 ? null : Number.isFinite(e.progress) ? Math.max(0, Math.min(100, e.progress ?? 0)) : 0, D = e.status === "uploading" || e.status === "queued";
168
+ return /* @__PURE__ */ w(v, {
169
+ render: /* @__PURE__ */ C("li", {}),
170
+ variant: "outline",
171
+ className: "upload-progress-list--item flex-nowrap bg-card text-card-foreground",
172
+ children: [
173
+ /* @__PURE__ */ C(h, {
174
+ variant: e.preview ? "image" : "icon",
175
+ className: r("upload-progress-list--media self-center group-has-data-[slot=item-description]/item:self-center", n.fg),
176
+ children: e.preview ? /* @__PURE__ */ C("img", {
177
+ src: e.preview,
178
+ alt: ""
179
+ }) : e.status === "done" ? /* @__PURE__ */ C(d, {
180
+ name: e.name,
181
+ kind: e.kind
182
+ }) : /* @__PURE__ */ C(x, {
183
+ "aria-hidden": "true",
184
+ className: r("size-icon", e.status === "uploading" && "animate-pulse motion-reduce:animate-none")
185
+ })
186
+ }),
187
+ /* @__PURE__ */ w(g, {
188
+ className: "min-w-0 gap-space-xs",
189
+ children: [
190
+ /* @__PURE__ */ w(o, {
191
+ direction: "horizontal",
192
+ align: "baseline",
193
+ justify: "between",
194
+ gap: "md",
195
+ wrap: !0,
196
+ children: [/* @__PURE__ */ C(f, {
197
+ className: "min-w-0 max-w-full",
198
+ title: e.name,
199
+ children: /* @__PURE__ */ C(a, {
200
+ tag: "span",
201
+ weight: "medium",
202
+ className: "truncate",
203
+ children: e.name
204
+ })
205
+ }), /* @__PURE__ */ C(s, {
206
+ size: "xs",
207
+ className: "shrink-0 tabular-nums",
208
+ children: e.size ?? (e.bytes === void 0 ? null : /* @__PURE__ */ C(c, {
209
+ value: e.bytes,
210
+ size: "xs",
211
+ type: "secondary"
212
+ }))
213
+ })]
214
+ }),
215
+ /* @__PURE__ */ C(p, {
216
+ clamp: "none",
217
+ children: /* @__PURE__ */ C(a, {
218
+ tag: "span",
219
+ size: "xs",
220
+ lineHeight: "tight",
221
+ type: e.status === "error" ? "error" : "secondary",
222
+ role: e.status === "error" ? "alert" : void 0,
223
+ children: `${E[e.status]}${e.status === "error" && e.error ? ` — ${e.error}` : ""}`
224
+ })
225
+ }),
226
+ D && /* @__PURE__ */ C(_, {
227
+ value: e.status === "queued" && S === null ? 0 : S,
228
+ "aria-label": e.name,
229
+ size: "sm",
230
+ tone: e.status === "queued" ? "neutral" : "primary",
231
+ className: "upload-progress-list--progress"
232
+ })
233
+ ]
234
+ }),
235
+ /* @__PURE__ */ w(m, {
236
+ className: "shrink-0",
237
+ children: [
238
+ !!t && /* @__PURE__ */ C(i, {
239
+ type: "button",
240
+ tone: "secondary",
241
+ buttonStyle: "ghost",
242
+ size: "sm",
243
+ iconOnly: !0,
244
+ "aria-label": `${T.preview ?? "Preview"} ${e.name}`,
245
+ onClick: () => t(e.id),
246
+ children: /* @__PURE__ */ C(k, {
247
+ "aria-hidden": "true",
248
+ className: "size-icon-md"
249
+ })
250
+ }),
251
+ !!l && e.status === "done" && /* @__PURE__ */ C(i, {
252
+ type: "button",
253
+ tone: "secondary",
254
+ buttonStyle: "ghost",
255
+ size: "sm",
256
+ iconOnly: !0,
257
+ "aria-label": `${T.download ?? "Download"} ${e.name}`,
258
+ onClick: () => l(e.id),
259
+ children: /* @__PURE__ */ C(O, {
260
+ "aria-hidden": "true",
261
+ className: "size-icon-md"
262
+ })
263
+ }),
264
+ (e.status === "uploading" || e.status === "queued") && !!u && /* @__PURE__ */ C(i, {
265
+ type: "button",
266
+ tone: "secondary",
267
+ buttonStyle: "ghost",
268
+ size: "sm",
269
+ iconOnly: !0,
270
+ "aria-label": `${T.cancel} ${e.name}`,
271
+ onClick: () => u(e.id),
272
+ children: /* @__PURE__ */ C(M, { className: "size-icon-md" })
273
+ }),
274
+ e.status === "error" && !!y && /* @__PURE__ */ C(i, {
275
+ type: "button",
276
+ tone: "secondary",
277
+ buttonStyle: "ghost",
278
+ size: "sm",
279
+ iconOnly: !0,
280
+ "aria-label": `${T.retry} ${e.name}`,
281
+ onClick: () => y(e.id),
282
+ children: /* @__PURE__ */ C(A, { className: "size-icon-md" })
283
+ }),
284
+ (e.status === "done" || e.status === "error" || e.status === "cancelled" || e.status === "queued" && !u) && !!b && /* @__PURE__ */ C(i, {
285
+ type: "button",
286
+ tone: "secondary",
287
+ buttonStyle: "ghost",
288
+ size: "sm",
289
+ iconOnly: !0,
290
+ "aria-label": `${T.remove} ${e.name}`,
291
+ onClick: () => b(e.id),
292
+ children: /* @__PURE__ */ C(M, { className: "size-icon-md" })
293
+ })
294
+ ]
295
+ })
296
+ ]
297
+ }, e.id);
298
+ })
299
+ });
300
+ }
301
+ V.displayName = "UploadProgressList";
302
+ //#endregion
303
+ //#region src/components/base/upload-queue/upload-tray.tsx
304
+ var H = {
305
+ heading: "Upload progress",
306
+ completedLabel: "Completed",
307
+ failedLabel: "Failed",
308
+ uploadingLabel: "Uploading",
309
+ queuedLabel: "Queued",
310
+ clearAll: "Clear all"
311
+ };
312
+ function U(e) {
313
+ let t = 0, n = 0, r = 0, i = 0;
314
+ for (let a of e) a.status === "done" ? t += 1 : a.status === "error" ? n += 1 : a.status === "uploading" ? r += 1 : a.status === "queued" && (i += 1);
315
+ return {
316
+ completed: t,
317
+ failed: n,
318
+ uploading: r,
319
+ queued: i
320
+ };
321
+ }
322
+ var W = y(function({ items: e, onAddFiles: t, onPreview: s, onDownload: c, onCancel: u, onRetry: d, onRemove: f, onClearAll: p, dropzone: m, className: h, strings: g, listStrings: _ }, v) {
323
+ let y = n(H, g), { completed: x, failed: T, uploading: E, queued: D } = U(e), O = b((e) => {
324
+ e.length > 0 && t(e);
325
+ }, [t]), k = e.length > 0;
326
+ return /* @__PURE__ */ w(o, {
327
+ ref: v,
328
+ gap: "md",
329
+ className: r("upload-tray--component", h),
330
+ children: [/* @__PURE__ */ C(R, {
331
+ onDrop: O,
332
+ accept: m?.accept,
333
+ multiple: m?.multiple,
334
+ size: m?.size,
335
+ disabled: m?.disabled,
336
+ invalid: m?.invalid,
337
+ strings: m?.strings
338
+ }), !!k && /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ w(o, {
339
+ direction: "horizontal",
340
+ wrap: !0,
341
+ align: "center",
342
+ justify: "between",
343
+ gap: "md",
344
+ children: [/* @__PURE__ */ w(o, {
345
+ direction: "horizontal",
346
+ wrap: !0,
347
+ align: "center",
348
+ gap: "md",
349
+ children: [
350
+ /* @__PURE__ */ C(a, {
351
+ tag: "span",
352
+ weight: "semibold",
353
+ children: y.heading
354
+ }),
355
+ x > 0 && /* @__PURE__ */ w(l, {
356
+ tone: "success",
357
+ children: [
358
+ y.completedLabel,
359
+ ": ",
360
+ x
361
+ ]
362
+ }),
363
+ T > 0 && /* @__PURE__ */ w(l, {
364
+ tone: "destructive",
365
+ children: [
366
+ y.failedLabel,
367
+ ": ",
368
+ T
369
+ ]
370
+ }),
371
+ E > 0 && /* @__PURE__ */ w(l, {
372
+ tone: "info",
373
+ children: [
374
+ y.uploadingLabel,
375
+ ": ",
376
+ E
377
+ ]
378
+ }),
379
+ D > 0 && /* @__PURE__ */ w(l, {
380
+ tone: "secondary",
381
+ children: [
382
+ y.queuedLabel,
383
+ ": ",
384
+ D
385
+ ]
386
+ })
387
+ ]
388
+ }), !!p && /* @__PURE__ */ C(i, {
389
+ type: "button",
390
+ tone: "secondary",
391
+ buttonStyle: "ghost",
392
+ onClick: p,
393
+ children: y.clearAll
394
+ })]
395
+ }), /* @__PURE__ */ C(V, {
396
+ items: e,
397
+ onPreview: s,
398
+ onDownload: c,
399
+ onCancel: u,
400
+ onRetry: d,
401
+ onRemove: f,
402
+ strings: _
403
+ })] })]
404
+ });
405
+ });
406
+ W.displayName = "UploadTray";
407
+ //#endregion
408
+ export { R as a, z as i, H as n, P as o, V as r, N as s, W as t };
409
+
410
+ //# sourceMappingURL=upload-queue-hIIYBLS7.js.map