themelia-ui 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +60 -33
  2. package/.agents/skills/themelia-ui/manifest.json +23 -0
  3. package/.agents/skills/themelia-ui/references/api-compatibility.md +5 -4
  4. package/.agents/skills/themelia-ui/references/blocks.md +123 -0
  5. package/.agents/skills/themelia-ui/references/composition-ladder.md +8 -8
  6. package/.agents/skills/themelia-ui/references/composition.md +100 -19
  7. package/.agents/skills/themelia-ui/references/forms.md +23 -3
  8. package/.agents/skills/themelia-ui/references/framework-wiring.md +41 -13
  9. package/.agents/skills/themelia-ui/references/i18n.md +4 -2
  10. package/.agents/skills/themelia-ui/references/imports.md +104 -104
  11. package/.agents/skills/themelia-ui/references/installation.md +60 -31
  12. package/.agents/skills/themelia-ui/references/migration.md +156 -5
  13. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +37 -25
  14. package/.agents/skills/themelia-ui/references/reference-workflows.md +43 -0
  15. package/.agents/skills/themelia-ui/references/structure-and-spacing.md +147 -0
  16. package/.agents/skills/themelia-ui/references/theming.md +174 -131
  17. package/.agents/skills/themelia-ui/references/troubleshooting.md +88 -30
  18. package/.agents/skills/themelia-ui/references/verification.md +60 -5
  19. package/CHANGELOG.md +212 -0
  20. package/README.md +48 -60
  21. package/dist/accordion-CHuzMmWL.js +143 -0
  22. package/dist/{action-menu-BNLURfMK.js → action-menu-BwiL_F6I.js} +35 -33
  23. package/dist/{alert-dialog-BMVo6Z-8.js → alert-dialog-Cg2HhuBe.js} +1 -1
  24. package/dist/avatar-Dc_BNYfB.js +93 -0
  25. package/dist/badge-VlJVZjdm.js +45 -0
  26. package/dist/base/accordion.js +1 -1
  27. package/dist/base/action-menu.js +1 -1
  28. package/dist/base/alert-dialog.js +1 -1
  29. package/dist/base/aspect-ratio.js +3 -1
  30. package/dist/base/avatar.js +1 -1
  31. package/dist/base/badge.js +2 -2
  32. package/dist/base/batch-action-bar.js +1 -1
  33. package/dist/base/buttons.js +1 -1
  34. package/dist/base/cards.js +1 -1
  35. package/dist/base/carousel.js +6 -4
  36. package/dist/base/chart.js +1 -1
  37. package/dist/base/choice-inputs.js +1 -1
  38. package/dist/base/combobox.js +1 -1
  39. package/dist/base/command.js +1 -1
  40. package/dist/base/context-menu.js +22 -21
  41. package/dist/base/copyable.js +1 -1
  42. package/dist/base/date-pickers.js +1 -1
  43. package/dist/base/dialog.js +1 -1
  44. package/dist/base/display.js +1 -1
  45. package/dist/base/dropdown-menu.js +1 -1
  46. package/dist/base/feedback.js +1 -1
  47. package/dist/base/forms-numeric.js +1 -1
  48. package/dist/base/forms.js +1 -1
  49. package/dist/base/hover-card.js +26 -23
  50. package/dist/base/input-group.js +1 -1
  51. package/dist/base/item.js +1 -1
  52. package/dist/base/label.js +1 -1
  53. package/dist/base/menubar.js +20 -14
  54. package/dist/base/navigation-menu.js +47 -38
  55. package/dist/base/navigation.js +1 -1
  56. package/dist/base/otp-input.js +36 -30
  57. package/dist/base/overlay.js +1 -1
  58. package/dist/base/popover-menu.js +1 -1
  59. package/dist/base/popover.js +1 -1
  60. package/dist/base/qr-code.js +51 -47
  61. package/dist/base/repeaters.js +1 -1
  62. package/dist/base/resizable.js +2 -0
  63. package/dist/base/sheet.js +1 -1
  64. package/dist/base/sidebar.js +1 -1
  65. package/dist/base/skeleton.js +1 -1
  66. package/dist/base/spinner.js +1 -1
  67. package/dist/base/structure.js +1 -1
  68. package/dist/base/table.js +1 -1
  69. package/dist/base/text-inputs.js +1 -1
  70. package/dist/base/timeline.js +1 -1
  71. package/dist/base/toaster.js +1 -1
  72. package/dist/base/toggle.js +21 -15
  73. package/dist/base/toolbar.js +1 -1
  74. package/dist/base/tooltip.js +1 -1
  75. package/dist/base/typography.js +2 -2
  76. package/dist/base/upload.js +1 -1
  77. package/dist/base/value-inputs.js +1 -1
  78. package/dist/{batch-action-bar-BZYNKXdV.js → batch-action-bar-DZVMVW83.js} +11 -8
  79. package/dist/{admin/patterns → blocks/admin}/access.js +79 -76
  80. package/dist/blocks/admin/commerce.js +2493 -0
  81. package/dist/{patterns → blocks}/analytics.js +312 -303
  82. package/dist/{patterns → blocks}/onboarding.js +27 -23
  83. package/dist/{patterns → blocks}/timelines.js +1 -1
  84. package/dist/buttons-BX2JfL5X.js +173 -0
  85. package/dist/cards-Ddhz43Bz.js +279 -0
  86. package/dist/chart-BkK3Xm10.js +201 -0
  87. package/dist/choice-inputs-NwRxvmZN.js +694 -0
  88. package/dist/combobox-519ubijc.js +292 -0
  89. package/dist/command-JjApYFds.js +156 -0
  90. package/dist/comments-CCQ2QRaU.js +1443 -0
  91. package/dist/components/base/action-menu/action-menu.d.ts +1 -1
  92. package/dist/components/base/action-menu/action-menu.types.d.ts +2 -2
  93. package/dist/components/base/avatar/avatar.d.ts +5 -2
  94. package/dist/components/base/badge/badge.d.ts +10 -10
  95. package/dist/components/base/badge/badge.variants.d.ts +1 -2
  96. package/dist/components/base/badge/index.d.ts +1 -2
  97. package/dist/components/base/buttons/button.d.ts +9 -8
  98. package/dist/components/base/buttons/button.types.d.ts +2 -2
  99. package/dist/components/base/buttons/index.d.ts +1 -1
  100. package/dist/components/base/buttons/text-button.d.ts +1 -1
  101. package/dist/components/base/cards/card-actions.d.ts +1 -1
  102. package/dist/components/base/cards/card.d.ts +3 -1
  103. package/dist/components/base/cards/partials/card-header.d.ts +2 -1
  104. package/dist/components/base/choice-inputs/choice.types.d.ts +2 -2
  105. package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +3 -3
  106. package/dist/components/base/command/command.d.ts +5 -2
  107. package/dist/components/base/display/icon-badge.d.ts +5 -3
  108. package/dist/components/base/display/index.d.ts +1 -1
  109. package/dist/components/base/display/metadata-list.d.ts +6 -6
  110. package/dist/components/base/display/metadata-value.d.ts +1 -1
  111. package/dist/components/base/display/separator.d.ts +2 -2
  112. package/dist/components/base/feedback/alert.d.ts +3 -2
  113. package/dist/components/base/feedback/empty.d.ts +5 -4
  114. package/dist/components/base/feedback/progress-circle.d.ts +2 -2
  115. package/dist/components/base/feedback/progress.d.ts +3 -1
  116. package/dist/components/base/forms/form-field.d.ts +2 -2
  117. package/dist/components/base/input-group/input-group.d.ts +8 -10
  118. package/dist/components/base/item/item.d.ts +2 -2
  119. package/dist/components/base/overlay/index.d.ts +1 -1
  120. package/dist/components/base/overlay/overlay.types.d.ts +7 -5
  121. package/dist/components/base/qr-code/qr-code.d.ts +4 -4
  122. package/dist/components/base/sheet/sheet.d.ts +1 -1
  123. package/dist/components/base/sidebar/sidebar.d.ts +9 -13
  124. package/dist/components/base/spinner/spinner.d.ts +2 -2
  125. package/dist/components/base/structure/adaptive-grid.d.ts +3 -3
  126. package/dist/components/base/structure/bleed.d.ts +4 -2
  127. package/dist/components/base/structure/grid.d.ts +10 -4
  128. package/dist/components/base/structure/index.d.ts +1 -1
  129. package/dist/components/base/structure/split.d.ts +4 -3
  130. package/dist/components/base/structure/stack.d.ts +5 -5
  131. package/dist/components/base/structure/structure.maps.d.ts +2 -1
  132. package/dist/components/base/structure/structure.types.d.ts +10 -4
  133. package/dist/components/base/toggle/toggle.d.ts +2 -2
  134. package/dist/components/base/toolbar/toolbar.d.ts +3 -3
  135. package/dist/components/base/typography/index.d.ts +2 -0
  136. package/dist/components/base/typography/rich-text/rich-text.variants.d.ts +9 -0
  137. package/dist/components/base/typography/text/index.d.ts +1 -0
  138. package/dist/components/base/typography/text/text.d.ts +15 -8
  139. package/dist/components/base/typography/text/text.variants.d.ts +41 -0
  140. package/dist/components/base/value-inputs/color-input.d.ts +1 -7
  141. package/dist/components/base/value-inputs/slider.d.ts +2 -7
  142. package/dist/components/{admin/patterns → blocks/admin}/commerce/vendor-profile.d.ts +2 -1
  143. package/dist/components/{patterns → blocks}/analytics/analytics.strings.d.ts +2 -5
  144. package/dist/components/features/actions/action-adapters.d.ts +3 -3
  145. package/dist/components/features/actions/actions.types.d.ts +3 -5
  146. package/dist/components/features/actions/index.d.ts +1 -1
  147. package/dist/components/features/activities/activities-feed.d.ts +1 -1
  148. package/dist/components/features/activities/activities.types.d.ts +4 -4
  149. package/dist/components/features/activities/activity-parts.d.ts +3 -3
  150. package/dist/components/features/activities/activity-row.d.ts +4 -4
  151. package/dist/components/features/activities/index.d.ts +1 -1
  152. package/dist/components/features/ai-chat/ai-chat.types.d.ts +10 -3
  153. package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +1 -1
  154. package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +1 -1
  155. package/dist/components/features/combobox/combobox.strings.d.ts +2 -2
  156. package/dist/components/features/combobox/fetching-combobox.d.ts +2 -1
  157. package/dist/components/features/combobox/resource-combobox.d.ts +3 -0
  158. package/dist/components/features/combobox/use-suggestions.d.ts +7 -0
  159. package/dist/components/features/event-calendar/event-calendar.types.d.ts +3 -0
  160. package/dist/components/features/media-library/index.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library-parts.d.ts +4 -3
  162. package/dist/components/features/media-library/media-library-views.d.ts +4 -3
  163. package/dist/components/features/media-library/media-library.d.ts +1 -1
  164. package/dist/components/features/media-library/media-library.strings.d.ts +12 -13
  165. package/dist/components/features/media-library/media-library.types.d.ts +11 -9
  166. package/dist/components/features/media-library/media-resource-gallery.d.ts +1 -1
  167. package/dist/components/features/media-library/use-media-library.d.ts +1 -4
  168. package/dist/components/features/overlays/action-overlay-frame.d.ts +1 -1
  169. package/dist/components/features/overlays/index.d.ts +1 -1
  170. package/dist/components/features/overlays/overlay-parts.d.ts +3 -3
  171. package/dist/components/features/overlays/overlays.types.d.ts +8 -7
  172. package/dist/components/features/rich-text-editor/index.d.ts +0 -1
  173. package/dist/components/features/table/data-table-body.d.ts +1 -1
  174. package/dist/components/features/table/data-table-expanded-row.d.ts +27 -0
  175. package/dist/components/features/table/data-table-header.d.ts +1 -1
  176. package/dist/components/features/table/data-table-size.d.ts +1 -1
  177. package/dist/components/features/table/data-table.d.ts +1 -1
  178. package/dist/components/features/table/index.d.ts +1 -1
  179. package/dist/components/features/table/table-helpers.d.ts +9 -3
  180. package/dist/components/features/table/table.strings.d.ts +11 -0
  181. package/dist/components/features/table/table.types.d.ts +60 -2
  182. package/dist/components/features/theme-tweaker/index.d.ts +1 -1
  183. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +1 -1
  184. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +6 -10
  185. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +22 -6
  186. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  187. package/dist/components/layout/auth/auth.d.ts +1 -1
  188. package/dist/components/layout/auth/auth.types.d.ts +1 -1
  189. package/dist/components/primitives/value.d.ts +3 -1
  190. package/dist/containers-B8d8U9GS.js +2 -0
  191. package/dist/{copyable-H1TUEY-H.js → copyable-D9Okb1w6.js} +12 -11
  192. package/dist/core.css +2 -2
  193. package/dist/css/access.css +2 -1
  194. package/dist/css/accordion.css +2 -1
  195. package/dist/css/action-menu.css +2 -1
  196. package/dist/css/activities.css +2 -1
  197. package/dist/css/ai-chat.css +2 -1
  198. package/dist/css/analytics.css +2 -1
  199. package/dist/css/app-shell.css +2 -1
  200. package/dist/css/aspect-ratio.css +2 -1
  201. package/dist/css/async-preview.css +2 -1
  202. package/dist/css/auth.css +2 -1
  203. package/dist/css/avatar.css +2 -1
  204. package/dist/css/badge.css +2 -1
  205. package/dist/css/batch-action-bar.css +2 -1
  206. package/dist/css/buttons.css +2 -1
  207. package/dist/css/cards.css +2 -1
  208. package/dist/css/carousel.css +2 -1
  209. package/dist/css/chart.css +2 -1
  210. package/dist/css/choice-inputs.css +2 -1
  211. package/dist/css/combobox.css +2 -1
  212. package/dist/css/combobox2.css +2 -1
  213. package/dist/css/command.css +2 -1
  214. package/dist/css/comments.css +2 -1
  215. package/dist/css/commerce.css +2 -1
  216. package/dist/css/containers.css +2 -1
  217. package/dist/css/copyable.css +2 -1
  218. package/dist/css/data-view.css +2 -1
  219. package/dist/css/date-pickers.css +2 -1
  220. package/dist/css/display.css +2 -1
  221. package/dist/css/dropdown-menu.css +2 -1
  222. package/dist/css/event-calendar.css +2 -1
  223. package/dist/css/feedback.css +2 -1
  224. package/dist/css/filters.css +2 -1
  225. package/dist/css/forms-numeric.css +2 -1
  226. package/dist/css/forms.css +2 -1
  227. package/dist/css/global-search.css +2 -1
  228. package/dist/css/header.css +2 -1
  229. package/dist/css/hover-card.css +2 -1
  230. package/dist/css/input-group.css +2 -1
  231. package/dist/css/item.css +2 -1
  232. package/dist/css/kanban.css +2 -1
  233. package/dist/css/label.css +2 -1
  234. package/dist/css/map.css +2 -1
  235. package/dist/css/media-library.css +2 -1
  236. package/dist/css/mentions.css +2 -1
  237. package/dist/css/menubar.css +2 -1
  238. package/dist/css/navigation-menu.css +2 -1
  239. package/dist/css/navigation.css +2 -1
  240. package/dist/css/navigation2.css +2 -1
  241. package/dist/css/onboarding.css +2 -1
  242. package/dist/css/otp-input.css +2 -1
  243. package/dist/css/overlay.css +2 -1
  244. package/dist/css/overlays.css +2 -1
  245. package/dist/css/page.css +2 -1
  246. package/dist/css/popover-menu.css +2 -1
  247. package/dist/css/popover.css +2 -1
  248. package/dist/css/primitives.css +2 -1
  249. package/dist/css/products.css +2 -1
  250. package/dist/css/qr-code.css +2 -1
  251. package/dist/css/repeaters.css +2 -1
  252. package/dist/css/resizable.css +2 -1
  253. package/dist/css/resource-assignment.css +2 -1
  254. package/dist/css/resource.css +2 -1
  255. package/dist/css/rich-text-editor.css +2 -1
  256. package/dist/css/schema-form.css +2 -1
  257. package/dist/css/sidebar.css +2 -1
  258. package/dist/css/sidebar2.css +2 -1
  259. package/dist/css/skeleton.css +2 -1
  260. package/dist/css/spinner.css +2 -1
  261. package/dist/css/structure.css +2 -1
  262. package/dist/css/sync.css +2 -1
  263. package/dist/css/table.css +2 -1
  264. package/dist/css/table2.css +2 -1
  265. package/dist/css/text-inputs.css +2 -1
  266. package/dist/css/theme-tweaker.css +2 -1
  267. package/dist/css/timeline.css +2 -1
  268. package/dist/css/timelines.css +2 -1
  269. package/dist/css/toaster.css +2 -1
  270. package/dist/css/toggle.css +2 -1
  271. package/dist/css/toolbar.css +2 -1
  272. package/dist/css/tooltip.css +2 -1
  273. package/dist/css/typography.css +2 -1
  274. package/dist/css/upload.css +2 -1
  275. package/dist/css/value-inputs.css +2 -1
  276. package/dist/css/workspace.css +2 -1
  277. package/dist/css-graph.json +1027 -0
  278. package/dist/date-pickers-BwCwKIVM.js +685 -0
  279. package/dist/{dialog-CtFCuTUF.js → dialog-CAnwRNrm.js} +1 -1
  280. package/dist/display-a7AoX_u7.js +664 -0
  281. package/dist/dropdown-menu-Br8kvjrF.js +235 -0
  282. package/dist/empty.js +0 -0
  283. package/dist/features/actions.js +6 -6
  284. package/dist/features/activities.js +219 -216
  285. package/dist/features/ai-chat.js +593 -565
  286. package/dist/features/async-preview.js +105 -286
  287. package/dist/features/combobox.js +328 -314
  288. package/dist/features/comments.js +1 -1
  289. package/dist/features/data-view.js +56 -55
  290. package/dist/features/event-calendar.js +189 -185
  291. package/dist/features/filters.js +1 -1
  292. package/dist/features/global-search.js +259 -260
  293. package/dist/features/kanban.js +39 -37
  294. package/dist/features/map.js +357 -354
  295. package/dist/features/media-library.js +931 -931
  296. package/dist/features/mentions.js +1 -1
  297. package/dist/features/overlays.js +1 -1
  298. package/dist/features/products.js +950 -942
  299. package/dist/features/resource-assignment.js +39 -37
  300. package/dist/features/resource.js +70 -71
  301. package/dist/features/rich-text-editor.js +2 -2
  302. package/dist/features/schema-form.js +342 -338
  303. package/dist/features/sync.js +14 -12
  304. package/dist/features/table.js +1 -1
  305. package/dist/features/theme-tweaker.js +1002 -962
  306. package/dist/feedback-D4qVsKlD.js +430 -0
  307. package/dist/{filters-DOLKRSmb.js → filters-BhsTkWpZ.js} +386 -383
  308. package/dist/forms-C0WeNPFF.js +250 -0
  309. package/dist/forms-numeric-IwQ1ltNf.js +582 -0
  310. package/dist/hooks/use-native-dialog.d.ts +1 -1
  311. package/dist/index.js +2 -2
  312. package/dist/input-group-HS_Z0Ei_.js +119 -0
  313. package/dist/item-M2pmpWXh.js +150 -0
  314. package/dist/{label-DumoMDm6.js → label-HOBXAscw.js} +7 -5
  315. package/dist/layout/app-shell.js +4 -2
  316. package/dist/layout/auth.js +102 -100
  317. package/dist/layout/header.js +190 -180
  318. package/dist/layout/navigation.js +1 -1
  319. package/dist/layout/page.js +18 -16
  320. package/dist/layout/settings.js +2 -2
  321. package/dist/layout/sidebar.js +50 -46
  322. package/dist/layout/workspace.js +71 -69
  323. package/dist/lib/action-presentation.d.ts +3 -3
  324. package/dist/lib/component-vocabulary.d.ts +2 -2
  325. package/dist/lib/css-length.d.ts +2 -0
  326. package/dist/lib/responsive.d.ts +1 -1
  327. package/dist/lib/theming/index.d.ts +1 -0
  328. package/dist/lib/theming/recipes.d.ts +2 -2
  329. package/dist/lib/theming/themes/dense.d.ts +3 -0
  330. package/dist/lib/theming/themes/editorial.d.ts +3 -0
  331. package/dist/lib/theming/themes/index.d.ts +8 -0
  332. package/dist/lib/theming/themes/pair.d.ts +7 -0
  333. package/dist/lib/theming/themes/sharp.d.ts +3 -0
  334. package/dist/lib/theming/themes/soft.d.ts +3 -0
  335. package/dist/lib/theming/themes/types.d.ts +12 -0
  336. package/dist/lib/ui-provider/index.d.ts +1 -1
  337. package/dist/lib/ui-provider/scope.d.ts +5 -8
  338. package/dist/lib/ui-provider/tokens.d.ts +11 -3
  339. package/dist/lib/ui-provider/tokens.generated.d.ts +6 -4
  340. package/dist/lib/ui-provider/types.d.ts +17 -19
  341. package/dist/lib/ui-provider/ui-scope.d.ts +1 -1
  342. package/dist/{mentions-BbsEHlcH.js → mentions-BOxbigwp.js} +113 -111
  343. package/dist/navigation-Bgu7Vc0M.js +622 -0
  344. package/dist/navigation-DiYACqpE.js +216 -0
  345. package/dist/overlay-BuQOl8aP.js +356 -0
  346. package/dist/{overlays-DvVoS3td.js → overlays-1sULyytH.js} +77 -75
  347. package/dist/popover-CA7SP_iz.js +127 -0
  348. package/dist/popover-menu-QXgQeWeG.js +192 -0
  349. package/dist/{primitives-D0bdDozz.js → primitives-BskKlf35.js} +181 -178
  350. package/dist/primitives.js +1 -1
  351. package/dist/profiles/admin.json +6 -36
  352. package/dist/profiles/general.json +6 -96
  353. package/dist/repeaters-CeH20dvr.js +445 -0
  354. package/dist/rich-text-editor-D_Ppm8yh.js +491 -0
  355. package/dist/{sheet-CKcmRbJ9.js → sheet-CJ1-OAla.js} +3 -3
  356. package/dist/sidebar-D8uGqxio.js +421 -0
  357. package/dist/skeleton-BTKNKTdj.js +173 -0
  358. package/dist/spinner-Tc1QCnxM.js +30 -0
  359. package/dist/{structure-D0WGQAP3.js → structure-CynEZ-OY.js} +15 -23
  360. package/dist/style.css +1 -1
  361. package/dist/styles/TOKENS.md +116 -275
  362. package/dist/styles/animation.css +114 -0
  363. package/dist/styles/base.css +7 -6
  364. package/dist/styles/fields.css +45 -63
  365. package/dist/styles/focus.css +12 -0
  366. package/dist/styles/forced-colors.css +11 -10
  367. package/dist/styles/index.css +23 -30
  368. package/dist/styles/map.css +45 -34
  369. package/dist/styles/mentions.css +14 -52
  370. package/dist/styles/overlays.css +7 -7
  371. package/dist/styles/tailwind.css +76 -127
  372. package/dist/styles/targets.css +3 -3
  373. package/dist/styles/theme/colour.css +86 -0
  374. package/dist/styles/theme/density.css +31 -0
  375. package/dist/styles/theme/elevation.css +9 -0
  376. package/dist/styles/theme/layout.css +18 -0
  377. package/dist/styles/theme/motion.css +18 -0
  378. package/dist/styles/theme/shape.css +12 -0
  379. package/dist/styles/theme/size.css +10 -0
  380. package/dist/styles/theme/spacing.css +11 -0
  381. package/dist/styles/theme/typography.css +20 -0
  382. package/dist/styles/tone.css +61 -0
  383. package/dist/table-B7dtIFUx.js +1262 -0
  384. package/dist/table-Ds_eO9av.js +191 -0
  385. package/dist/tailwind.css +76 -127
  386. package/dist/text-inputs-BboE77nZ.js +395 -0
  387. package/dist/theming-C5ygF5uf.js +292 -0
  388. package/dist/theming.js +2 -2
  389. package/dist/{timeline-BdaGRyj-.js → timeline-BR_jNgvz.js} +57 -49
  390. package/dist/{timelines-BB7550mz.js → timelines-DXG1BfIN.js} +69 -67
  391. package/dist/{toaster-bBMgXm8z.js → toaster-CXL8L7Mm.js} +106 -99
  392. package/dist/tokens.json +1027 -636
  393. package/dist/toolbar-DBK-c4yy.js +74 -0
  394. package/dist/tooltip-BPYP-jUm.js +76 -0
  395. package/dist/{typography-BkxEiwQ1.js → typography-DmeR05Er.js} +87 -53
  396. package/dist/{ui-provider-Cmoq6i_D.js → ui-provider-DpzLUD12.js} +117 -69
  397. package/dist/ui-provider.js +1 -1
  398. package/dist/upload-CYuoJykZ.js +968 -0
  399. package/dist/use-async-preview-BFwf9ElY.js +188 -0
  400. package/dist/value-inputs-ng8aVJJZ.js +728 -0
  401. package/docs/README.md +13 -3
  402. package/docs/build/browser-composition-fixture.ts +28 -0
  403. package/docs/build/recipes.md +11484 -10723
  404. package/docs/generated/component-index.json +9809 -9169
  405. package/docs/generated/components/INDEX.md +5 -5
  406. package/docs/generated/components/base--accordion.md +51 -2
  407. package/docs/generated/components/base--action-menu.md +14 -15
  408. package/docs/generated/components/base--alert-dialog.md +3 -4
  409. package/docs/generated/components/base--aspect-ratio.md +3 -4
  410. package/docs/generated/components/base--avatar.md +7 -7
  411. package/docs/generated/components/base--badge.md +159 -27
  412. package/docs/generated/components/base--batch-action-bar.md +6 -7
  413. package/docs/generated/components/base--buttons.md +151 -47
  414. package/docs/generated/components/base--cards.md +107 -14
  415. package/docs/generated/components/base--carousel.md +1 -2
  416. package/docs/generated/components/base--chart.md +44 -8
  417. package/docs/generated/components/base--choice-inputs.md +10 -11
  418. package/docs/generated/components/base--combobox.md +3 -4
  419. package/docs/generated/components/base--command.md +6 -6
  420. package/docs/generated/components/base--context-menu.md +1 -2
  421. package/docs/generated/components/base--copyable.md +6 -7
  422. package/docs/generated/components/base--date-pickers.md +6 -7
  423. package/docs/generated/components/base--dialog.md +6 -7
  424. package/docs/generated/components/base--direction.md +1 -1
  425. package/docs/generated/components/base--display.md +234 -54
  426. package/docs/generated/components/base--dropdown-menu.md +6 -7
  427. package/docs/generated/components/base--feedback.md +71 -18
  428. package/docs/generated/components/base--forms-numeric.md +6 -7
  429. package/docs/generated/components/base--forms.md +84 -14
  430. package/docs/generated/components/base--hover-card.md +3 -4
  431. package/docs/generated/components/base--input-group.md +27 -30
  432. package/docs/generated/components/base--item.md +8 -9
  433. package/docs/generated/components/base--label.md +2 -3
  434. package/docs/generated/components/base--menubar.md +2 -4
  435. package/docs/generated/components/base--navigation-menu.md +2 -3
  436. package/docs/generated/components/base--navigation.md +2 -3
  437. package/docs/generated/components/base--otp-input.md +3 -4
  438. package/docs/generated/components/base--overlay.md +56 -47
  439. package/docs/generated/components/base--popover-menu.md +7 -8
  440. package/docs/generated/components/base--popover.md +9 -10
  441. package/docs/generated/components/base--qr-code.md +7 -8
  442. package/docs/generated/components/base--repeaters.md +6 -7
  443. package/docs/generated/components/base--resizable.md +2 -3
  444. package/docs/generated/components/base--sheet.md +12 -13
  445. package/docs/generated/components/base--sidebar.md +9 -11
  446. package/docs/generated/components/base--skeleton.md +6 -7
  447. package/docs/generated/components/base--slot.md +1 -1
  448. package/docs/generated/components/base--spinner.md +5 -7
  449. package/docs/generated/components/base--structure.md +320 -70
  450. package/docs/generated/components/base--table.md +61 -3
  451. package/docs/generated/components/base--text-inputs.md +17 -18
  452. package/docs/generated/components/base--timeline.md +45 -4
  453. package/docs/generated/components/base--toaster.md +43 -12
  454. package/docs/generated/components/base--toggle.md +11 -12
  455. package/docs/generated/components/base--toolbar.md +7 -8
  456. package/docs/generated/components/base--tooltip.md +5 -6
  457. package/docs/generated/components/base--typography.md +317 -32
  458. package/docs/generated/components/base--upload.md +8 -9
  459. package/docs/generated/components/base--value-inputs.md +9 -38
  460. package/docs/generated/components/{admin--patterns--access.md → blocks--admin--access.md} +15 -6
  461. package/docs/generated/components/{admin--patterns--commerce.md → blocks--admin--commerce.md} +40 -41
  462. package/docs/generated/components/{patterns--analytics.md → blocks--analytics.md} +57 -14
  463. package/docs/generated/components/{patterns--onboarding.md → blocks--onboarding.md} +6 -7
  464. package/docs/generated/components/{patterns--timelines.md → blocks--timelines.md} +6 -7
  465. package/docs/generated/components/features--actions.md +8 -18
  466. package/docs/generated/components/features--activities.md +31 -32
  467. package/docs/generated/components/features--ai-chat.md +15 -15
  468. package/docs/generated/components/features--async-preview.md +5 -6
  469. package/docs/generated/components/features--combobox.md +71 -5
  470. package/docs/generated/components/features--comments.md +0 -1
  471. package/docs/generated/components/features--data-view.md +63 -8
  472. package/docs/generated/components/features--event-calendar.md +1 -2
  473. package/docs/generated/components/features--filters.md +11 -2
  474. package/docs/generated/components/features--global-search.md +1 -2
  475. package/docs/generated/components/features--kanban.md +1 -2
  476. package/docs/generated/components/features--map.md +1 -2
  477. package/docs/generated/components/features--media-library.md +105 -38
  478. package/docs/generated/components/features--mentions.md +7 -7
  479. package/docs/generated/components/features--overlays.md +75 -22
  480. package/docs/generated/components/features--products.md +10 -11
  481. package/docs/generated/components/features--resource-assignment.md +2 -3
  482. package/docs/generated/components/features--resource.md +3 -4
  483. package/docs/generated/components/features--rich-text-editor.md +42 -13
  484. package/docs/generated/components/features--schema-form.md +1 -2
  485. package/docs/generated/components/features--sync.md +2 -3
  486. package/docs/generated/components/features--table.md +162 -12
  487. package/docs/generated/components/features--theme-tweaker.md +30 -15
  488. package/docs/generated/components/forms.md +2 -2
  489. package/docs/generated/components/layout--app-shell.md +41 -11
  490. package/docs/generated/components/layout--auth.md +8 -9
  491. package/docs/generated/components/layout--containers.md +40 -1
  492. package/docs/generated/components/layout--header.md +2 -3
  493. package/docs/generated/components/layout--navigation.md +0 -1
  494. package/docs/generated/components/layout--page.md +33 -5
  495. package/docs/generated/components/layout--settings.md +0 -1
  496. package/docs/generated/components/layout--sidebar.md +47 -7
  497. package/docs/generated/components/layout--workspace.md +3 -4
  498. package/docs/generated/components/primitives.md +128 -17
  499. package/docs/generated/components/theming.md +147 -4
  500. package/docs/generated/components/ui-provider.md +96 -78
  501. package/docs/generated/composition-ladder.md +8 -8
  502. package/docs/generated/consumer-contract.json +5736 -0
  503. package/docs/generated/imports.md +104 -104
  504. package/docs/generated/migration-broad-imports.json +267 -90
  505. package/docs/generated/migration-broad-imports.md +266 -101
  506. package/docs/generated/migration-codemod.json +365 -70
  507. package/docs/generated/migration.md +665 -95
  508. package/docs/generated/profiles.md +27 -27
  509. package/docs/generated/public-api.md +104 -102
  510. package/docs/generated/recipes.json +755 -810
  511. package/docs/generated/workflows/communications-overview/analytics/communications-reference.tsx +19 -0
  512. package/docs/generated/workflows/index.json +691 -0
  513. package/docs/generated/workflows/media-picking/media-library/media-picking-reference.tsx +63 -0
  514. package/docs/generated/workflows/media-picking/media-library/reference-data.ts +3 -0
  515. package/docs/generated/workflows/multi-section-form/form-workflow/multi-section-reference.tsx +46 -0
  516. package/docs/generated/workflows/nested-action-flow/action-overlays/nested-action-reference.tsx +39 -0
  517. package/docs/generated/workflows/record-detail/page-layout/record-detail-reference.tsx +24 -0
  518. package/docs/generated/workflows/resource-index/data-view/resource-index-reference.tsx +51 -0
  519. package/docs/generated/workflows/scoped-resource-selection/combobox/scoped-resource-reference.tsx +50 -0
  520. package/docs/generated/workflows/website-content-editor/media-library/reference-data.ts +3 -0
  521. package/docs/generated/workflows/website-content-editor/rich-text-editor/website-content-reference.tsx +33 -0
  522. package/docs/generated/workflows/workspace-navigation/app-shell/workspace-navigation-reference.tsx +26 -0
  523. package/docs/learn/api-compatibility.md +5 -4
  524. package/docs/learn/blocks.md +123 -0
  525. package/docs/learn/composition.md +100 -19
  526. package/docs/learn/forms.md +23 -3
  527. package/docs/learn/framework-wiring.md +41 -13
  528. package/docs/learn/i18n.md +4 -2
  529. package/docs/learn/installation.md +60 -31
  530. package/docs/learn/migration.md +156 -5
  531. package/docs/learn/provider-and-scoping.md +37 -25
  532. package/docs/learn/reference-workflows.md +43 -0
  533. package/docs/learn/structure-and-spacing.md +147 -0
  534. package/docs/learn/theming.md +174 -131
  535. package/docs/learn/troubleshooting.md +88 -30
  536. package/docs/learn/verification.md +60 -5
  537. package/package.json +42 -473
  538. package/scripts/consumer/codemod.mjs +50 -32
  539. package/scripts/consumer/contract-reader.mjs +42 -0
  540. package/scripts/consumer/css-scan.mjs +51 -0
  541. package/scripts/consumer/diagnose.mjs +136 -0
  542. package/scripts/consumer/find-component.mjs +30 -17
  543. package/scripts/consumer/install-skill.mjs +93 -11
  544. package/src/styles/TOKENS.md +116 -275
  545. package/dist/accordion-6YPJ9XRO.js +0 -135
  546. package/dist/admin/patterns/access.css +0 -15
  547. package/dist/admin/patterns/commerce.css +0 -29
  548. package/dist/admin/patterns/commerce.js +0 -2493
  549. package/dist/avatar-CS7zow2q.js +0 -85
  550. package/dist/badge-CxOuTfVr.js +0 -63
  551. package/dist/base/accordion.css +0 -3
  552. package/dist/base/action-menu.css +0 -6
  553. package/dist/base/alert-dialog.css +0 -4
  554. package/dist/base/aspect-ratio.css +0 -2
  555. package/dist/base/avatar.css +0 -4
  556. package/dist/base/badge.css +0 -2
  557. package/dist/base/batch-action-bar.css +0 -5
  558. package/dist/base/buttons.css +0 -4
  559. package/dist/base/cards.css +0 -13
  560. package/dist/base/carousel.css +0 -5
  561. package/dist/base/chart.css +0 -2
  562. package/dist/base/choice-inputs.css +0 -10
  563. package/dist/base/combobox.css +0 -3
  564. package/dist/base/command.css +0 -9
  565. package/dist/base/context-menu.css +0 -2
  566. package/dist/base/copyable.css +0 -6
  567. package/dist/base/date-pickers.css +0 -11
  568. package/dist/base/dialog.css +0 -4
  569. package/dist/base/display.css +0 -8
  570. package/dist/base/dropdown-menu.css +0 -2
  571. package/dist/base/feedback.css +0 -5
  572. package/dist/base/forms-numeric.css +0 -12
  573. package/dist/base/forms.css +0 -14
  574. package/dist/base/hover-card.css +0 -2
  575. package/dist/base/input-group.css +0 -6
  576. package/dist/base/item.css +0 -9
  577. package/dist/base/label.css +0 -3
  578. package/dist/base/menubar.css +0 -2
  579. package/dist/base/navigation-menu.css +0 -2
  580. package/dist/base/navigation.css +0 -12
  581. package/dist/base/otp-input.css +0 -9
  582. package/dist/base/overlay.css +0 -4
  583. package/dist/base/popover-menu.css +0 -11
  584. package/dist/base/popover.css +0 -3
  585. package/dist/base/qr-code.css +0 -2
  586. package/dist/base/repeaters.css +0 -18
  587. package/dist/base/resizable.css +0 -2
  588. package/dist/base/sheet.css +0 -4
  589. package/dist/base/sidebar.css +0 -12
  590. package/dist/base/skeleton.css +0 -9
  591. package/dist/base/spinner.css +0 -2
  592. package/dist/base/structure.css +0 -2
  593. package/dist/base/table.css +0 -3
  594. package/dist/base/text-inputs.css +0 -2
  595. package/dist/base/timeline.css +0 -9
  596. package/dist/base/toaster.css +0 -2
  597. package/dist/base/toggle.css +0 -2
  598. package/dist/base/toolbar.css +0 -5
  599. package/dist/base/tooltip.css +0 -2
  600. package/dist/base/typography.css +0 -2
  601. package/dist/base/upload.css +0 -10
  602. package/dist/base/value-inputs.css +0 -14
  603. package/dist/buttons-CqXKWty3.js +0 -179
  604. package/dist/cards-C6Ulbkw7.js +0 -271
  605. package/dist/chart-nomhJ87z.js +0 -193
  606. package/dist/choice-inputs-OUDn0kQw.js +0 -680
  607. package/dist/combobox-C8oP92bT.js +0 -266
  608. package/dist/command-Bp3B6pUu.js +0 -143
  609. package/dist/comments-CAnDlyXO.js +0 -1438
  610. package/dist/components/admin/patterns/index.d.ts +0 -2
  611. package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +0 -2
  612. package/dist/components/patterns/index.d.ts +0 -3
  613. package/dist/css/styles.css +0 -1
  614. package/dist/date-pickers-DOwIT-Nk.js +0 -661
  615. package/dist/display-B3Q17h5z.js +0 -645
  616. package/dist/dropdown-menu-TyNLCLML.js +0 -223
  617. package/dist/features/actions.css +0 -11
  618. package/dist/features/activities.css +0 -25
  619. package/dist/features/ai-chat.css +0 -14
  620. package/dist/features/async-preview.css +0 -10
  621. package/dist/features/combobox.css +0 -12
  622. package/dist/features/comments.css +0 -24
  623. package/dist/features/data-view.css +0 -31
  624. package/dist/features/event-calendar.css +0 -17
  625. package/dist/features/filters.css +0 -24
  626. package/dist/features/global-search.css +0 -19
  627. package/dist/features/kanban.css +0 -7
  628. package/dist/features/map.css +0 -15
  629. package/dist/features/media-library.css +0 -27
  630. package/dist/features/mentions.css +0 -17
  631. package/dist/features/overlays.css +0 -11
  632. package/dist/features/products.css +0 -29
  633. package/dist/features/resource-assignment.css +0 -14
  634. package/dist/features/resource.css +0 -15
  635. package/dist/features/rich-text-editor.css +0 -8
  636. package/dist/features/schema-form.css +0 -22
  637. package/dist/features/sync.css +0 -11
  638. package/dist/features/table.css +0 -20
  639. package/dist/features/theme-tweaker.css +0 -27
  640. package/dist/feedback-DRerHGuV.js +0 -469
  641. package/dist/forms-CPrGGif_.js +0 -242
  642. package/dist/forms-numeric-CPVsL7Vf.js +0 -569
  643. package/dist/index.css +0 -3
  644. package/dist/input-group-BYe0rhoB.js +0 -126
  645. package/dist/item-B3yQ26as.js +0 -146
  646. package/dist/layout/app-shell.css +0 -13
  647. package/dist/layout/auth.css +0 -14
  648. package/dist/layout/containers.css +0 -2
  649. package/dist/layout/header.css +0 -20
  650. package/dist/layout/navigation.css +0 -11
  651. package/dist/layout/page.css +0 -15
  652. package/dist/layout/settings.css +0 -16
  653. package/dist/layout/sidebar.css +0 -16
  654. package/dist/layout/workspace.css +0 -15
  655. package/dist/navigation-CsqTA16F.js +0 -614
  656. package/dist/navigation-DzxzPuwg.js +0 -202
  657. package/dist/overlay-WQOsLd69.js +0 -345
  658. package/dist/patterns/analytics.css +0 -15
  659. package/dist/patterns/onboarding.css +0 -11
  660. package/dist/patterns/timelines.css +0 -11
  661. package/dist/popover-DriLnIFc.js +0 -123
  662. package/dist/popover-menu-C2UCMAe7.js +0 -189
  663. package/dist/primitives.css +0 -3
  664. package/dist/repeaters-DuP1N0nw.js +0 -438
  665. package/dist/rich-text-editor-BQXFe9oN.js +0 -595
  666. package/dist/sidebar-D0N6ckJL.js +0 -412
  667. package/dist/skeleton-DGR9df28.js +0 -172
  668. package/dist/spinner-CUAVFecI.js +0 -52
  669. package/dist/styles/FACTORS.md +0 -36
  670. package/dist/styles/SCOPES.md +0 -86
  671. package/dist/styles/themes/default.css +0 -164
  672. package/dist/styles/theming/animation.css +0 -143
  673. package/dist/styles/theming/colors.css +0 -97
  674. package/dist/styles/theming/feedback.css +0 -17
  675. package/dist/styles/theming/field.css +0 -21
  676. package/dist/styles/theming/focus.css +0 -88
  677. package/dist/styles/theming/layers.css +0 -13
  678. package/dist/styles/theming/layout.css +0 -21
  679. package/dist/styles/theming/motion.css +0 -42
  680. package/dist/styles/theming/overlay.css +0 -52
  681. package/dist/styles/theming/sizing.css +0 -118
  682. package/dist/styles/theming/text.css +0 -30
  683. package/dist/styles/theming/typography.css +0 -26
  684. package/dist/styles/tokens/components.css +0 -22
  685. package/dist/styles/tokens/foundation.css +0 -80
  686. package/dist/styles/tokens/layout.css +0 -19
  687. package/dist/styles/tokens/palette.css +0 -88
  688. package/dist/styles/tokens/primitives.css +0 -18
  689. package/dist/styles/tokens/states.css +0 -77
  690. package/dist/table-BC4qqsUb.js +0 -180
  691. package/dist/table-BHDpjajL.js +0 -982
  692. package/dist/text-inputs-DF_lD7pA.js +0 -385
  693. package/dist/theming-D6KRU7hO.js +0 -104
  694. package/dist/toolbar-DWRywF0R.js +0 -68
  695. package/dist/tooltip-t1VQQ2tZ.js +0 -73
  696. package/dist/upload-B38YZeFJ.js +0 -938
  697. package/dist/value-inputs-Q4ymjXlV.js +0 -716
  698. package/src/styles/FACTORS.md +0 -36
  699. package/src/styles/SCOPES.md +0 -86
  700. /package/dist/components/{admin/patterns → blocks/admin}/access/admin.strings.d.ts +0 -0
  701. /package/dist/components/{admin/patterns → blocks/admin}/access/credential-list.d.ts +0 -0
  702. /package/dist/components/{admin/patterns → blocks/admin}/access/index.d.ts +0 -0
  703. /package/dist/components/{admin/patterns → blocks/admin}/access/role-permissions.d.ts +0 -0
  704. /package/dist/components/{admin/patterns → blocks/admin}/access/sensitive-action.d.ts +0 -0
  705. /package/dist/components/{admin/patterns → blocks/admin}/commerce/account.d.ts +0 -0
  706. /package/dist/components/{admin/patterns → blocks/admin}/commerce/address-lines.d.ts +0 -0
  707. /package/dist/components/{admin/patterns → blocks/admin}/commerce/booking.d.ts +0 -0
  708. /package/dist/components/{admin/patterns → blocks/admin}/commerce/cart.d.ts +0 -0
  709. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.strings.d.ts +0 -0
  710. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.types.d.ts +0 -0
  711. /package/dist/components/{admin/patterns → blocks/admin}/commerce/format-amount.d.ts +0 -0
  712. /package/dist/components/{admin/patterns → blocks/admin}/commerce/index.d.ts +0 -0
  713. /package/dist/components/{admin/patterns → blocks/admin}/commerce/inventory-section.d.ts +0 -0
  714. /package/dist/components/{admin/patterns → blocks/admin}/commerce/invoice.d.ts +0 -0
  715. /package/dist/components/{admin/patterns → blocks/admin}/commerce/loyalty.d.ts +0 -0
  716. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-customer.d.ts +0 -0
  717. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-detail.d.ts +0 -0
  718. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-line-item.d.ts +0 -0
  719. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-transactions.d.ts +0 -0
  720. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order.d.ts +0 -0
  721. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-listing.d.ts +0 -0
  722. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-score.d.ts +0 -0
  723. /package/dist/components/{admin/patterns → blocks/admin}/commerce/summary-panel.d.ts +0 -0
  724. /package/dist/components/{patterns → blocks}/analytics/activity-heatmap.d.ts +0 -0
  725. /package/dist/components/{patterns → blocks}/analytics/analytics.types.d.ts +0 -0
  726. /package/dist/components/{patterns → blocks}/analytics/chart-card.d.ts +0 -0
  727. /package/dist/components/{patterns → blocks}/analytics/format-metric-value.d.ts +0 -0
  728. /package/dist/components/{patterns → blocks}/analytics/index.d.ts +0 -0
  729. /package/dist/components/{patterns → blocks}/analytics/metric-bar.d.ts +0 -0
  730. /package/dist/components/{patterns → blocks}/analytics/metric-comparison.d.ts +0 -0
  731. /package/dist/components/{patterns → blocks}/analytics/metric-gradient.d.ts +0 -0
  732. /package/dist/components/{patterns → blocks}/analytics/metric-grid.d.ts +0 -0
  733. /package/dist/components/{patterns → blocks}/analytics/metric-micro-grid.d.ts +0 -0
  734. /package/dist/components/{patterns → blocks}/analytics/metric-skeleton.d.ts +0 -0
  735. /package/dist/components/{patterns → blocks}/analytics/metric-trend-chip.d.ts +0 -0
  736. /package/dist/components/{patterns → blocks}/analytics/metric.d.ts +0 -0
  737. /package/dist/components/{patterns → blocks}/analytics/time-ruler.d.ts +0 -0
  738. /package/dist/components/{patterns → blocks}/onboarding/checklist.d.ts +0 -0
  739. /package/dist/components/{patterns → blocks}/onboarding/index.d.ts +0 -0
  740. /package/dist/components/{patterns → blocks}/onboarding/onboarding.strings.d.ts +0 -0
  741. /package/dist/components/{patterns → blocks}/timelines/changelog-timeline.d.ts +0 -0
  742. /package/dist/components/{patterns → blocks}/timelines/index.d.ts +0 -0
  743. /package/dist/components/{patterns → blocks}/timelines/milestones-timeline.d.ts +0 -0
  744. /package/dist/components/{patterns → blocks}/timelines/steps.d.ts +0 -0
  745. /package/dist/components/{patterns → blocks}/timelines/timelines.strings.d.ts +0 -0
  746. /package/dist/styles/{theming/breakpoints.css → breakpoints.css} +0 -0
@@ -0,0 +1,968 @@
1
+ import "#core.css";
2
+ import { s as e } from "./typography-DmeR05Er.js";
3
+ import { t } from "./cx--CBrhWH0.js";
4
+ import { c as n } from "./buttons-BX2JfL5X.js";
5
+ import { t as r } from "./strings-Co9_qArR.js";
6
+ import { C as i, S as a } from "./primitives-BskKlf35.js";
7
+ import { t as o } from "./badge-VlJVZjdm.js";
8
+ import { h as s } from "./feedback-D4qVsKlD.js";
9
+ import { d as c } from "./display-a7AoX_u7.js";
10
+ import { CheckIcon as l, CircleAlertIcon as u, ClockIcon as d, FileIcon as f, ImageIcon as p, ImagePlusIcon as m, Loader2Icon as h, PaperclipIcon as g, PencilIcon as _, RotateCwIcon as v, TrashIcon as y, UploadCloudIcon as b, UserIcon as x, XIcon as S } from "lucide-react";
11
+ import { useCallback as C, useEffect as w, useId as T, useMemo as E, useRef as D, useState as O } from "react";
12
+ import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
13
+ import "#css/upload.css";
14
+ //#region src/hooks/use-object-urls.ts
15
+ function M(e) {
16
+ let [t, n] = O([]), r = D([]), i = D([]);
17
+ return w(() => {
18
+ if (e.length === r.current.length && e.every((e, t) => e === r.current[t])) return;
19
+ r.current = e;
20
+ let t = i.current;
21
+ i.current = e.map((e) => URL.createObjectURL(e)), n(i.current);
22
+ for (let e of t) URL.revokeObjectURL(e);
23
+ }, [e]), w(() => () => {
24
+ for (let e of i.current) URL.revokeObjectURL(e);
25
+ i.current = [], r.current = [];
26
+ }, []), t;
27
+ }
28
+ //#endregion
29
+ //#region src/components/base/upload/preview-image.tsx
30
+ function N({ src: e, alt: n = "", fallback: r, className: i }) {
31
+ let [a, o] = O(!1), [s, c] = O(e);
32
+ return e !== s && (c(e), o(!1)), a ? /* @__PURE__ */ A(k, { children: r }) : /* @__PURE__ */ A("img", {
33
+ src: e,
34
+ alt: n,
35
+ className: t("preview-image--component", i),
36
+ onError: () => o(!0)
37
+ });
38
+ }
39
+ //#endregion
40
+ //#region src/components/base/upload/file-upload.strings.ts
41
+ var P = {
42
+ instruction: "Drop a file here, or browse",
43
+ instructionMultiple: "Drop files here, or browse",
44
+ uploading: (e) => `Uploading ${e}`,
45
+ remove: (e) => `Remove ${e}`,
46
+ rejection: ({ file: e, code: t, details: n }) => {
47
+ switch (t) {
48
+ case "invalid-type": return `${e.name} is not an accepted file type.`;
49
+ case "too-small": return `${e.name} is smaller than ${i(n.limitBytes ?? 0)}.`;
50
+ case "too-large": return `${e.name} is larger than ${i(n.limitBytes ?? 0)}.`;
51
+ case "duplicate": return `${e.name} has already been added.`;
52
+ case "too-many": return `${e.name} exceeds the limit of ${n.maxFiles ?? 0} file${n.maxFiles === 1 ? "" : "s"}.`;
53
+ default: return n.customMessage ?? `${e.name} was rejected.`;
54
+ }
55
+ },
56
+ constraintHint: ({ accept: e, maxSizeBytes: t }) => [e, t === void 0 ? void 0 : `up to ${Math.round(t / 1024 / 1024)} MB`].filter(Boolean).join(" · ")
57
+ }, F = {
58
+ cover: "Cover",
59
+ add: "Add images",
60
+ position: (e, t, n) => `${e}, position ${t} of ${n}. Use the arrow keys to reorder.`,
61
+ remove: (e) => `Remove ${e}`
62
+ }, I = {
63
+ empty: "Add a photo",
64
+ overlay: "Change photo",
65
+ remove: "Remove photo"
66
+ }, L = {
67
+ empty: "Drop an image here, or browse",
68
+ overlay: "Change image",
69
+ remove: "Remove image"
70
+ }, R = {
71
+ status: {
72
+ queued: "Queued",
73
+ uploading: "Uploading",
74
+ done: "Uploaded",
75
+ error: "Failed",
76
+ cancelled: "Cancelled"
77
+ },
78
+ cancel: (e) => `Cancel ${e}`,
79
+ retry: (e) => `Retry ${e}`,
80
+ remove: (e) => `Remove ${e}`,
81
+ uploading: (e) => `Uploading ${e}`,
82
+ settled: (e, t) => `${e}: ${t}`
83
+ }, z = {
84
+ ...P,
85
+ ...R,
86
+ clearAll: "Clear all"
87
+ }, B = {
88
+ instruction: "Drop a file here, or browse",
89
+ instructionMultiple: "Drop files here, or browse",
90
+ dragOver: "Release to add",
91
+ helper: ""
92
+ }, V = {
93
+ empty: "No file chosen",
94
+ clear: "Remove file"
95
+ };
96
+ //#endregion
97
+ //#region src/components/base/upload/use-file-drop-target.ts
98
+ function H({ disabled: e = !1, onFiles: t }) {
99
+ let n = D(0), [r, i] = O(!1), a = r && !e, o = C((e) => {
100
+ e.preventDefault(), e.stopPropagation();
101
+ }, []);
102
+ return {
103
+ isDragging: a,
104
+ dropTargetProps: {
105
+ onDragEnter: C((t) => {
106
+ if (o(t), e) {
107
+ n.current = 0;
108
+ return;
109
+ }
110
+ n.current += 1, i(!0);
111
+ }, [e, o]),
112
+ onDragOver: C((t) => {
113
+ o(t), !e && (t.dataTransfer && (t.dataTransfer.dropEffect = "copy"), i(!0));
114
+ }, [e, o]),
115
+ onDragLeave: C((e) => {
116
+ o(e), n.current = Math.max(0, n.current - 1), n.current === 0 && i(!1);
117
+ }, [o]),
118
+ onDrop: C((r) => {
119
+ if (o(r), n.current = 0, i(!1), e) return;
120
+ let a = r.dataTransfer?.files;
121
+ a?.length && t(Array.from(a));
122
+ }, [
123
+ e,
124
+ t,
125
+ o
126
+ ])
127
+ }
128
+ };
129
+ }
130
+ var U = {
131
+ dropzone: "upload__dropzone___18PHm",
132
+ dropzoneCompact: "upload__dropzoneCompact___lO1Y2",
133
+ dropzoneInput: "upload__dropzoneInput___OSLjX",
134
+ dropzoneIcon: "upload__dropzoneIcon___dEbuz",
135
+ dropzoneCopy: "upload__dropzoneCopy___FGRl_",
136
+ dropzoneHint: "upload__dropzoneHint____aACx",
137
+ list: "upload__list___54BTe",
138
+ row: "upload__row___6TE2T",
139
+ rowActions: "upload__rowActions___fgMkU",
140
+ thumb: "upload__thumb___I7oD7",
141
+ statusIcon: "upload__statusIcon___VRRk3",
142
+ rowBody: "upload__rowBody___51jrN",
143
+ rowName: "upload__rowName____3TMo",
144
+ progress: "upload__progress___sfhZY",
145
+ progressFill: "upload__progressFill___PXFlt",
146
+ root: "upload__root___TLif3",
147
+ rejections: "upload__rejections___VTeCm",
148
+ mediaRoot: "upload__mediaRoot___yS2ko",
149
+ mediaPicker: "upload__mediaPicker___eVcZk",
150
+ avatarPicker: "upload__avatarPicker___rAikO",
151
+ imagePicker: "upload__imagePicker___zDNWf",
152
+ mediaPreview: "upload__mediaPreview___BS0TO",
153
+ mediaOverlay: "upload__mediaOverlay___diadO",
154
+ mediaEmpty: "upload__mediaEmpty___5M65A",
155
+ tray: "upload__tray___u741N",
156
+ trayToolbar: "upload__trayToolbar___NmrU5",
157
+ trayCounts: "upload__trayCounts___hrAmS",
158
+ statusQueued: "upload__statusQueued___CMIPL",
159
+ statusUploading: "upload__statusUploading___ec2M2",
160
+ statusDone: "upload__statusDone___MW_Za",
161
+ statusError: "upload__statusError___kutx4",
162
+ statusCancelled: "upload__statusCancelled___JKMmC",
163
+ gallery: "upload__gallery___1UoHk",
164
+ tile: "upload__tile___8-XgU",
165
+ tileImage: "upload__tileImage___pT1Rk",
166
+ tileFallback: "upload__tileFallback___h-Jsc",
167
+ tileHandle: "upload__tileHandle___ulbFv",
168
+ tileRemove: "upload__tileRemove___JQHnl",
169
+ tileCover: "upload__tileCover___0TJt3",
170
+ galleryAdd: "upload__galleryAdd___CGqBt",
171
+ pickerShell: "upload__pickerShell___25oaj",
172
+ pickerIcon: "upload__pickerIcon___v0eFJ",
173
+ pickerLabel: "upload__pickerLabel___tY20Z",
174
+ pickerEmpty: "upload__pickerEmpty___Ql3p-",
175
+ pickerMeta: "upload__pickerMeta___0fZCN",
176
+ pickerClear: "upload__pickerClear___Rf83M",
177
+ dropzoneFooter: "upload__dropzoneFooter___q6ETS"
178
+ };
179
+ //#endregion
180
+ //#region src/components/base/upload/dropzone.tsx
181
+ function W({ onDrop: n, accept: r, multiple: i = !1, disabled: a = !1, invalid: o = !1, compact: s = !1, icon: c, inputProps: l, strings: u, label: d, hint: f, footer: p, className: m, ...h }) {
182
+ let g = {
183
+ ...B,
184
+ ...u
185
+ }, _ = T(), v = l?.id ?? _, y = `${_}-prompt`, { isDragging: x, dropTargetProps: S } = H({
186
+ disabled: a,
187
+ onFiles: n
188
+ }), C = x ? g.dragOver : d ?? (i ? g.instructionMultiple : g.instruction), w = f === void 0 ? g.helper : f, E = l?.["aria-labelledby"];
189
+ return /* @__PURE__ */ j("div", {
190
+ className: t("dropzone--component", m),
191
+ ...h,
192
+ children: [/* @__PURE__ */ j("label", {
193
+ htmlFor: v,
194
+ ...S,
195
+ "data-slot": "dropzone",
196
+ "data-dragging": x || void 0,
197
+ "data-disabled": a || void 0,
198
+ "data-invalid": o || void 0,
199
+ className: t(U.dropzone, s && U.dropzoneCompact),
200
+ children: [
201
+ /* @__PURE__ */ A("input", {
202
+ "aria-invalid": o || void 0,
203
+ ...l,
204
+ "aria-labelledby": E ? `${E} ${y}` : void 0,
205
+ id: v,
206
+ type: "file",
207
+ accept: r,
208
+ multiple: i,
209
+ disabled: a,
210
+ className: t(U.dropzoneInput, l?.className),
211
+ onChange: (e) => {
212
+ let t = e.target.files;
213
+ t?.length && n(Array.from(t)), e.target.value = "";
214
+ }
215
+ }),
216
+ c ?? /* @__PURE__ */ A(b, {
217
+ "aria-hidden": !0,
218
+ className: U.dropzoneIcon
219
+ }),
220
+ /* @__PURE__ */ j("span", {
221
+ className: U.dropzoneCopy,
222
+ children: [/* @__PURE__ */ A(e, {
223
+ tag: "span",
224
+ id: y,
225
+ size: "sm",
226
+ children: C
227
+ }), w != null && w !== "" && /* @__PURE__ */ A(e, {
228
+ tag: "span",
229
+ size: "xs",
230
+ type: "secondary",
231
+ className: U.dropzoneHint,
232
+ children: w
233
+ })]
234
+ })
235
+ ]
236
+ }), !!p && /* @__PURE__ */ A("div", {
237
+ className: U.dropzoneFooter,
238
+ children: p
239
+ })]
240
+ });
241
+ }
242
+ //#endregion
243
+ //#region src/components/base/upload/validate-files.ts
244
+ function G(e) {
245
+ return [
246
+ e.name,
247
+ e.size,
248
+ e.type,
249
+ e.lastModified
250
+ ].join("|");
251
+ }
252
+ function K(e, t) {
253
+ if (!t?.trim()) return !0;
254
+ let n = e.name.toLowerCase(), r = e.type.toLowerCase();
255
+ return t.split(",").map((e) => e.trim().toLowerCase()).filter(Boolean).some((e) => e.startsWith(".") ? n.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r === e);
256
+ }
257
+ function q(e, t) {
258
+ let { accept: n, minSizeBytes: r, maxSizeBytes: i, validateFile: a } = t;
259
+ if (!K(e, n)) return {
260
+ file: e,
261
+ code: "invalid-type",
262
+ details: {}
263
+ };
264
+ if (r !== void 0 && e.size < r) return {
265
+ file: e,
266
+ code: "too-small",
267
+ details: { limitBytes: r }
268
+ };
269
+ if (i !== void 0 && e.size > i) return {
270
+ file: e,
271
+ code: "too-large",
272
+ details: { limitBytes: i }
273
+ };
274
+ if (a) {
275
+ let t;
276
+ try {
277
+ t = a(e);
278
+ } catch {
279
+ t = !1;
280
+ }
281
+ if (t !== !0) return {
282
+ file: e,
283
+ code: "custom",
284
+ details: { customMessage: typeof t == "string" ? t : void 0 }
285
+ };
286
+ }
287
+ }
288
+ function J({ incoming: e, current: t, maxFiles: n, append: r, ...i }) {
289
+ let a = r ? [...t] : [], o = new Set(a.map(G)), s = [], c = [];
290
+ for (let t of e) {
291
+ let e = q(t, i);
292
+ if (e) {
293
+ c.push(e);
294
+ continue;
295
+ }
296
+ let r = G(t);
297
+ if (o.has(r)) {
298
+ c.push({
299
+ file: t,
300
+ code: "duplicate",
301
+ details: {}
302
+ });
303
+ continue;
304
+ }
305
+ if (a.length >= n) {
306
+ c.push({
307
+ file: t,
308
+ code: "too-many",
309
+ details: { maxFiles: n }
310
+ });
311
+ continue;
312
+ }
313
+ s.push(t), a.push(t), o.add(r);
314
+ }
315
+ return {
316
+ accepted: s,
317
+ nextFiles: a,
318
+ rejections: c
319
+ };
320
+ }
321
+ //#endregion
322
+ //#region src/components/base/upload/file-upload.tsx
323
+ var ee = [];
324
+ function Y({ id: e, value: r, defaultValue: i, onValueChange: o, onRejectedFiles: c, multiple: l = !1, maxFiles: u, selectionMode: d, disabled: f = !1, invalid: p = !1, compact: m = !1, label: h, strings: g, hint: _, showList: v = !0, showRejections: y = !0, progress: b, name: x, className: E, "aria-labelledby": k, "aria-describedby": M, "aria-invalid": N, "aria-required": F, ...I }) {
325
+ let L = {
326
+ ...P,
327
+ ...g
328
+ }, R = T(), z = e ?? R, B = D(null), V = r !== void 0, [H, G] = O(i ?? []), K = V ? r ?? ee : H, [q, Y] = O([]), X = u ?? (l ? Infinity : 1), Z = (d ?? (l ? "append" : "replace")) === "append", ne = C((e) => {
329
+ let t = J({
330
+ incoming: e,
331
+ current: K,
332
+ maxFiles: X,
333
+ append: Z,
334
+ ...I
335
+ });
336
+ Y(t.rejections), t.rejections.length > 0 && c?.(t.rejections), (t.accepted.length > 0 || !Z) && (V || G(t.nextFiles), o?.(t.nextFiles)), B.current && (B.current.value = "");
337
+ }, [
338
+ Z,
339
+ I,
340
+ K,
341
+ V,
342
+ c,
343
+ o,
344
+ X
345
+ ]), re = D(null), Q = D(null), ie = C((e) => {
346
+ let t = K.filter((t, n) => n !== e);
347
+ Q.current = e, V || G(t), o?.(t);
348
+ }, [
349
+ K,
350
+ V,
351
+ o
352
+ ]);
353
+ w(() => {
354
+ if (Q.current === null) return;
355
+ let e = Q.current;
356
+ Q.current = null;
357
+ let t = re.current?.querySelectorAll("[data-remove]") ?? [], n = t[Math.min(e, t.length - 1)];
358
+ n ? n.focus() : B.current?.focus();
359
+ }, [K]);
360
+ let $ = N ?? (p || void 0), ae = _ === void 0 ? L.constraintHint?.({
361
+ accept: I.accept,
362
+ maxSizeBytes: I.maxSizeBytes
363
+ }) || null : _;
364
+ return /* @__PURE__ */ j("div", {
365
+ className: t("file-upload--component", U.root, E),
366
+ children: [
367
+ /* @__PURE__ */ A(W, {
368
+ onDrop: ne,
369
+ accept: I.accept,
370
+ multiple: l,
371
+ disabled: f,
372
+ invalid: $ === !0 || $ === "true",
373
+ compact: m,
374
+ label: h,
375
+ hint: ae,
376
+ strings: {
377
+ instruction: L.instruction,
378
+ instructionMultiple: L.instructionMultiple,
379
+ ...L.dragOver ? { dragOver: L.dragOver } : null
380
+ },
381
+ inputProps: {
382
+ ref: B,
383
+ id: z,
384
+ name: x,
385
+ "aria-labelledby": k,
386
+ "aria-describedby": M,
387
+ "aria-invalid": $,
388
+ "aria-required": F
389
+ }
390
+ }),
391
+ y && q.length > 0 && /* @__PURE__ */ A("div", {
392
+ className: U.rejections,
393
+ children: q.map((e) => /* @__PURE__ */ A(s, {
394
+ tone: "destructive",
395
+ children: L.rejection(e)
396
+ }, `${e.file.name}-${e.code}`))
397
+ }),
398
+ v && K.length > 0 && /* @__PURE__ */ A("ul", {
399
+ ref: re,
400
+ className: U.list,
401
+ children: K.map((e, t) => /* @__PURE__ */ j("li", {
402
+ className: U.row,
403
+ children: [
404
+ /* @__PURE__ */ A(te, { file: e }),
405
+ /* @__PURE__ */ j("div", {
406
+ className: U.rowBody,
407
+ children: [
408
+ /* @__PURE__ */ A("span", {
409
+ className: U.rowName,
410
+ children: e.name
411
+ }),
412
+ /* @__PURE__ */ A(a, {
413
+ value: e.size,
414
+ size: "xs",
415
+ type: "secondary"
416
+ }),
417
+ b?.[e.name] !== void 0 && /* @__PURE__ */ A("div", {
418
+ className: U.progress,
419
+ role: "progressbar",
420
+ "aria-valuenow": b[e.name],
421
+ "aria-valuemin": 0,
422
+ "aria-valuemax": 100,
423
+ "aria-label": L.uploading(e.name),
424
+ children: /* @__PURE__ */ A("div", {
425
+ className: U.progressFill,
426
+ style: { width: `${b[e.name]}%` }
427
+ })
428
+ })
429
+ ]
430
+ }),
431
+ /* @__PURE__ */ A(n, {
432
+ tone: "neutral",
433
+ appearance: "ghost",
434
+ iconOnly: !0,
435
+ "aria-label": L.remove(e.name),
436
+ "data-remove": "",
437
+ disabled: f,
438
+ onClick: () => ie(t),
439
+ children: /* @__PURE__ */ A(S, {})
440
+ })
441
+ ]
442
+ }, `${e.name}-${e.lastModified}`))
443
+ })
444
+ ]
445
+ });
446
+ }
447
+ function te({ file: e }) {
448
+ let t = e.type.startsWith("image/"), [n] = M(t ? [e] : []);
449
+ return /* @__PURE__ */ A("span", {
450
+ className: U.thumb,
451
+ children: t && n ? /* @__PURE__ */ A(N, {
452
+ src: n,
453
+ fallback: /* @__PURE__ */ A(f, { "aria-hidden": !0 })
454
+ }) : /* @__PURE__ */ A(f, { "aria-hidden": !0 })
455
+ });
456
+ }
457
+ //#endregion
458
+ //#region src/components/base/upload/media-upload.tsx
459
+ function X({ value: e, onValueChange: t, onRejectedFiles: n, previewUrl: r, accept: i = "image/*", ...a }) {
460
+ let o = D(null), [s, c] = O(void 0), [l, u] = O(void 0), [d, f] = O(r);
461
+ d !== r && (f(r), u(void 0));
462
+ let p = e === void 0 ? s : e ?? void 0, [m] = M(p ? [p] : []);
463
+ return {
464
+ inputRef: o,
465
+ accepted: C((r) => {
466
+ let s = J({
467
+ incoming: r,
468
+ current: [],
469
+ maxFiles: 1,
470
+ append: !1,
471
+ accept: i,
472
+ ...a
473
+ }), l = s.accepted[0];
474
+ l && (e === void 0 && c(l), t?.(l)), s.rejections.length > 0 && n?.(s.rejections), o.current && (o.current.value = "");
475
+ }, [
476
+ i,
477
+ a,
478
+ n,
479
+ t,
480
+ e
481
+ ]),
482
+ clear: C(() => {
483
+ e === void 0 && (c(void 0), u(r)), t?.(void 0);
484
+ }, [
485
+ t,
486
+ r,
487
+ e
488
+ ]),
489
+ shown: m ?? (e === void 0 && l === r ? null : r) ?? null,
490
+ accept: i
491
+ };
492
+ }
493
+ function Z({ shape: r, emptyIcon: i, emptyLabel: a, overlayLabel: o, removeLabel: s, props: c }) {
494
+ let { id: l, disabled: u, invalid: d, className: f, name: p, "aria-label": m, "aria-labelledby": h, "aria-describedby": g, "aria-invalid": v, "aria-required": b } = c, { inputRef: x, accepted: S, clear: C, shown: w, accept: E } = X(c), { isDragging: D, dropTargetProps: O } = H({
495
+ disabled: u,
496
+ onFiles: S
497
+ }), k = v ?? (d || void 0), M = T(), P = l ?? M;
498
+ return /* @__PURE__ */ j("div", {
499
+ className: t(r === "avatar" ? "avatar-upload--component" : "image-upload--component", U.mediaRoot, f),
500
+ children: [/* @__PURE__ */ j("div", {
501
+ ...O,
502
+ "data-dragging": D || void 0,
503
+ "data-disabled": u || void 0,
504
+ "data-filled": w ? "" : void 0,
505
+ "data-invalid": k && k !== "false" || void 0,
506
+ className: t(U.mediaPicker, r === "avatar" ? U.avatarPicker : U.imagePicker),
507
+ children: [
508
+ /* @__PURE__ */ A("input", {
509
+ ref: x,
510
+ id: P,
511
+ type: "file",
512
+ name: p,
513
+ accept: E,
514
+ disabled: u,
515
+ "aria-label": m ?? (w ? o : a),
516
+ "aria-labelledby": h ? `${h} ${P}` : void 0,
517
+ "aria-describedby": g,
518
+ "aria-invalid": k,
519
+ "aria-required": b,
520
+ className: U.dropzoneInput,
521
+ onChange: (e) => {
522
+ let t = e.target.files;
523
+ t?.length && S(Array.from(t)), e.target.value = "";
524
+ }
525
+ }),
526
+ w ? /* @__PURE__ */ A(N, {
527
+ src: w,
528
+ fallback: /* @__PURE__ */ A("span", {
529
+ className: U.mediaEmpty,
530
+ children: i
531
+ }),
532
+ className: U.mediaPreview
533
+ }) : /* @__PURE__ */ j("span", {
534
+ className: U.mediaEmpty,
535
+ children: [i, r === "image" && /* @__PURE__ */ A(e, {
536
+ tag: "span",
537
+ size: "xs",
538
+ type: "inherit",
539
+ children: a
540
+ })]
541
+ }),
542
+ /* @__PURE__ */ j("span", {
543
+ className: U.mediaOverlay,
544
+ "aria-hidden": !0,
545
+ children: [/* @__PURE__ */ A(_, { "aria-hidden": !0 }), r === "image" && /* @__PURE__ */ A(e, {
546
+ tag: "span",
547
+ size: "xs",
548
+ type: "inherit",
549
+ children: o
550
+ })]
551
+ })
552
+ ]
553
+ }), w && !u && /* @__PURE__ */ j(n, {
554
+ tone: "neutral",
555
+ appearance: "ghost",
556
+ onClick: () => {
557
+ C(), x.current?.focus();
558
+ },
559
+ children: [/* @__PURE__ */ A(y, {}), s]
560
+ })]
561
+ });
562
+ }
563
+ function ne({ strings: e, ...t }) {
564
+ let n = {
565
+ ...I,
566
+ ...e
567
+ };
568
+ return /* @__PURE__ */ A(Z, {
569
+ shape: "avatar",
570
+ emptyIcon: /* @__PURE__ */ A(x, { "aria-hidden": !0 }),
571
+ emptyLabel: n.empty,
572
+ overlayLabel: n.overlay,
573
+ removeLabel: n.remove,
574
+ props: t
575
+ });
576
+ }
577
+ function re({ strings: e, ...t }) {
578
+ let n = {
579
+ ...L,
580
+ ...e
581
+ };
582
+ return /* @__PURE__ */ A(Z, {
583
+ shape: "image",
584
+ emptyIcon: /* @__PURE__ */ A(p, { "aria-hidden": !0 }),
585
+ emptyLabel: n.empty,
586
+ overlayLabel: n.overlay,
587
+ removeLabel: n.remove,
588
+ props: t
589
+ });
590
+ }
591
+ //#endregion
592
+ //#region src/components/base/upload/upload-queue.tsx
593
+ var Q = {
594
+ queued: /* @__PURE__ */ A(d, { "aria-hidden": !0 }),
595
+ uploading: /* @__PURE__ */ A(h, { "aria-hidden": !0 }),
596
+ done: /* @__PURE__ */ A(l, { "aria-hidden": !0 }),
597
+ error: /* @__PURE__ */ A(u, { "aria-hidden": !0 }),
598
+ cancelled: /* @__PURE__ */ A(S, { "aria-hidden": !0 })
599
+ }, ie = {
600
+ queued: U.statusQueued,
601
+ uploading: U.statusUploading,
602
+ done: U.statusDone,
603
+ error: U.statusError,
604
+ cancelled: U.statusCancelled
605
+ };
606
+ function $({ items: i, onCancel: o, onRetry: s, onRemove: l, strings: u, className: d }) {
607
+ let p = r(R, u), m = D(/* @__PURE__ */ new Map()), [h, g] = O(""), _ = i.some((e) => e.status === "queued" || e.status === "uploading"), [y, b] = O(_);
608
+ return _ && !y && b(!0), w(() => {
609
+ let e = [];
610
+ for (let t of i) {
611
+ let n = m.current.get(t.id), r = t.status === "done" || t.status === "error" || t.status === "cancelled";
612
+ n !== void 0 && n !== t.status && r && e.push(p.settled?.(t.name, p.status[t.status]) ?? `${t.name}: ${p.status[t.status]}`);
613
+ }
614
+ m.current = new Map(i.map((e) => [e.id, e.status])), e.length > 0 && g(e.join(". "));
615
+ }, [i, p]), i.length === 0 ? null : /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("ul", {
616
+ className: t("upload-progress-list--component", U.list, d),
617
+ children: i.map((r) => {
618
+ let i = {
619
+ key: "cancel",
620
+ label: p.cancel(r.name),
621
+ icon: /* @__PURE__ */ A(S, {}),
622
+ run: () => o?.(r.id)
623
+ }, c = {
624
+ key: "retry",
625
+ label: p.retry(r.name),
626
+ icon: /* @__PURE__ */ A(v, {}),
627
+ run: () => s?.(r.id)
628
+ }, u = {
629
+ key: "remove",
630
+ label: p.remove(r.name),
631
+ icon: /* @__PURE__ */ A(S, {}),
632
+ run: () => l?.(r.id)
633
+ }, d = r.status === "uploading" ? o ? [i] : [] : r.status === "queued" ? o ? [i] : l ? [u] : [] : r.status === "error" ? [...s ? [c] : [], ...l ? [u] : []] : l ? [u] : [];
634
+ return /* @__PURE__ */ j("li", {
635
+ className: U.row,
636
+ children: [
637
+ r.preview ? /* @__PURE__ */ A("span", {
638
+ className: U.thumb,
639
+ children: /* @__PURE__ */ A(N, {
640
+ src: r.preview,
641
+ fallback: /* @__PURE__ */ A(f, { "aria-hidden": !0 })
642
+ })
643
+ }) : /* @__PURE__ */ A("span", {
644
+ className: t(U.statusIcon, ie[r.status]),
645
+ "aria-hidden": !0,
646
+ children: Q[r.status]
647
+ }),
648
+ /* @__PURE__ */ j("div", {
649
+ className: U.rowBody,
650
+ children: [
651
+ /* @__PURE__ */ A("span", {
652
+ className: U.rowName,
653
+ children: r.name
654
+ }),
655
+ /* @__PURE__ */ j(e, {
656
+ tag: "span",
657
+ size: "xs",
658
+ type: "secondary",
659
+ children: [p.status[r.status], r.size !== void 0 && /* @__PURE__ */ j(k, { children: [" · ", /* @__PURE__ */ A(a, {
660
+ value: r.size,
661
+ size: "inherit",
662
+ type: "inherit"
663
+ })] })]
664
+ }),
665
+ r.status === "uploading" && /* @__PURE__ */ A("div", {
666
+ className: U.progress,
667
+ role: "progressbar",
668
+ "aria-valuenow": r.progress ?? 0,
669
+ "aria-valuemin": 0,
670
+ "aria-valuemax": 100,
671
+ "aria-label": p.uploading(r.name),
672
+ children: /* @__PURE__ */ A("div", {
673
+ className: U.progressFill,
674
+ style: { width: `${r.progress ?? 0}%` }
675
+ })
676
+ }),
677
+ r.status === "error" && !!r.error && /* @__PURE__ */ A(e, {
678
+ tag: "span",
679
+ size: "xs",
680
+ type: "error",
681
+ children: r.error
682
+ })
683
+ ]
684
+ }),
685
+ d.length > 0 && /* @__PURE__ */ A("span", {
686
+ className: U.rowActions,
687
+ children: d.map((e) => /* @__PURE__ */ A(n, {
688
+ tone: "neutral",
689
+ appearance: "ghost",
690
+ iconOnly: !0,
691
+ "aria-label": e.label,
692
+ onClick: e.run,
693
+ children: e.icon
694
+ }, e.key))
695
+ })
696
+ ]
697
+ }, r.id);
698
+ })
699
+ }), y && /* @__PURE__ */ A(c, {
700
+ "aria-live": "polite",
701
+ children: h
702
+ })] });
703
+ }
704
+ function ae({ items: e, onAddFiles: r, onCancel: i, onRetry: a, onRemove: s, onClearAll: c, strings: l, showSummary: u = !0, className: d, ...f }) {
705
+ let p = {
706
+ ...z,
707
+ ...l
708
+ }, m = E(() => {
709
+ let t = {};
710
+ for (let n of e) t[n.status] = (t[n.status] ?? 0) + 1;
711
+ return t;
712
+ }, [e]), h = [
713
+ "uploading",
714
+ "queued",
715
+ "done",
716
+ "error",
717
+ "cancelled"
718
+ ].filter((e) => m[e]).map((e) => ({
719
+ status: e,
720
+ count: m[e]
721
+ }));
722
+ return /* @__PURE__ */ j("div", {
723
+ className: t("upload-tray--component", U.tray, d),
724
+ children: [
725
+ /* @__PURE__ */ A(Y, {
726
+ ...f,
727
+ strings: l,
728
+ multiple: !0,
729
+ showList: !1,
730
+ value: [],
731
+ onValueChange: (e) => {
732
+ e.length > 0 && r(e);
733
+ }
734
+ }),
735
+ u && h.length > 0 && /* @__PURE__ */ j("div", {
736
+ className: U.trayToolbar,
737
+ children: [/* @__PURE__ */ A("div", {
738
+ className: U.trayCounts,
739
+ children: h.map(({ status: e, count: t }) => /* @__PURE__ */ j(o, {
740
+ tone: e === "error" ? "destructive" : "neutral",
741
+ children: [
742
+ p.status[e],
743
+ " ",
744
+ t
745
+ ]
746
+ }, e))
747
+ }), !!c && /* @__PURE__ */ A(n, {
748
+ tone: "neutral",
749
+ appearance: "ghost",
750
+ onClick: c,
751
+ children: p.clearAll
752
+ })]
753
+ }),
754
+ /* @__PURE__ */ A($, {
755
+ items: e,
756
+ strings: l,
757
+ onCancel: i,
758
+ onRetry: a,
759
+ onRemove: s
760
+ })
761
+ ]
762
+ });
763
+ }
764
+ //#endregion
765
+ //#region src/components/base/upload/media-gallery.tsx
766
+ var oe = [];
767
+ function se({ value: r, defaultValue: i, onValueChange: a, onRejectedFiles: s, maxFiles: c, disabled: l = !1, invalid: u = !1, showCover: d = !0, strings: f, accept: h = "image/*", ...g }) {
768
+ let _ = {
769
+ ...F,
770
+ ...f
771
+ }, v = r !== void 0, [y, b] = O(i ?? []), x = v ? r ?? oe : y, [w, T] = O(null), [D, k] = O(null), P = C((e) => {
772
+ v || b(e), a?.(e);
773
+ }, [v, a]), I = C((e) => {
774
+ let t = J({
775
+ incoming: e,
776
+ current: x,
777
+ maxFiles: c ?? Infinity,
778
+ append: !0,
779
+ accept: h,
780
+ ...g
781
+ });
782
+ t.rejections.length > 0 && s?.(t.rejections), t.accepted.length > 0 && P(t.nextFiles);
783
+ }, [
784
+ h,
785
+ P,
786
+ g,
787
+ x,
788
+ c,
789
+ s
790
+ ]), { isDragging: L, dropTargetProps: R } = H({
791
+ disabled: l,
792
+ onFiles: I
793
+ }), z = C((e, t) => {
794
+ if (e === t || t < 0 || t >= x.length) return;
795
+ let n = [...x], [r] = n.splice(e, 1);
796
+ r !== void 0 && (n.splice(t, 0, r), P(n));
797
+ }, [P, x]), B = M(x), V = (e, t) => {
798
+ let n = e.key === "ArrowLeft" ? -1 : +(e.key === "ArrowRight");
799
+ if (n === 0) return;
800
+ e.preventDefault();
801
+ let r = t + n;
802
+ z(t, r);
803
+ let i = e.currentTarget.closest("[data-gallery]")?.querySelectorAll("[data-gallery-tile]");
804
+ requestAnimationFrame(() => i?.[r]?.focus());
805
+ }, W = (e, t) => {
806
+ e.preventDefault(), w !== null && z(w, t), T(null), k(null);
807
+ }, G = c !== void 0 && x.length >= c, K = E(() => x.map((e, t) => ({
808
+ file: e,
809
+ url: B[t]
810
+ })), [x, B]);
811
+ return /* @__PURE__ */ j("div", {
812
+ "data-gallery": "",
813
+ className: t("media-gallery--component", U.gallery),
814
+ children: [K.map(({ file: e, url: t }, r) => /* @__PURE__ */ j("div", {
815
+ className: U.tile,
816
+ "data-dragging": w === r || void 0,
817
+ "data-drop": D === r && w !== null && w !== r || void 0,
818
+ onDragOver: (e) => {
819
+ w !== null && (e.preventDefault(), k(r));
820
+ },
821
+ onDrop: (e) => W(e, r),
822
+ onDragEnd: () => {
823
+ T(null), k(null);
824
+ },
825
+ children: [
826
+ !!t && /* @__PURE__ */ A(N, {
827
+ src: t,
828
+ fallback: /* @__PURE__ */ A(p, {
829
+ "aria-hidden": !0,
830
+ className: U.tileFallback
831
+ }),
832
+ className: U.tileImage
833
+ }),
834
+ /* @__PURE__ */ A("button", {
835
+ type: "button",
836
+ "data-gallery-tile": "",
837
+ className: U.tileHandle,
838
+ "aria-label": _.position(e.name, r + 1, x.length),
839
+ disabled: l,
840
+ draggable: !l,
841
+ onDragStart: (e) => {
842
+ T(r), e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/plain", String(r));
843
+ let t = e.currentTarget.closest("[data-drop], div");
844
+ t && e.dataTransfer.setDragImage(t, 20, 20);
845
+ },
846
+ onDragEnd: () => {
847
+ T(null), k(null);
848
+ },
849
+ onKeyDown: (e) => V(e, r)
850
+ }),
851
+ r === 0 && d && /* @__PURE__ */ A(o, {
852
+ tone: "neutral",
853
+ className: U.tileCover,
854
+ children: _.cover
855
+ }),
856
+ /* @__PURE__ */ A(n, {
857
+ tone: "neutral",
858
+ appearance: "solid",
859
+ iconOnly: !0,
860
+ className: U.tileRemove,
861
+ "aria-label": _.remove(e.name),
862
+ disabled: l,
863
+ onClick: () => P(x.filter((e, t) => t !== r)),
864
+ children: /* @__PURE__ */ A(S, {})
865
+ })
866
+ ]
867
+ }, `${e.name}-${e.lastModified}-${r}`)), !G && /* @__PURE__ */ j("label", {
868
+ ...R,
869
+ "data-dragging": L || void 0,
870
+ "data-disabled": l || void 0,
871
+ "aria-invalid": u || void 0,
872
+ className: U.galleryAdd,
873
+ children: [
874
+ /* @__PURE__ */ A("input", {
875
+ type: "file",
876
+ accept: h,
877
+ multiple: !0,
878
+ disabled: l,
879
+ className: U.dropzoneInput,
880
+ onChange: (e) => {
881
+ let t = e.target.files;
882
+ t?.length && I(Array.from(t)), e.target.value = "";
883
+ }
884
+ }),
885
+ /* @__PURE__ */ A(m, { "aria-hidden": !0 }),
886
+ /* @__PURE__ */ A(e, {
887
+ tag: "span",
888
+ size: "xs",
889
+ type: "inherit",
890
+ children: _.add
891
+ })
892
+ ]
893
+ })]
894
+ });
895
+ }
896
+ //#endregion
897
+ //#region src/components/base/upload/file-picker-input.tsx
898
+ function ce({ value: e, onValueChange: r, onRejectedFiles: i, constraints: o = {}, disabled: s = !1, invalid: c = !1, name: l, strings: u, className: d, ...f }) {
899
+ let p = {
900
+ ...V,
901
+ ...u
902
+ }, m = D(null), [h, _] = O(void 0), v = e === void 0 ? h : e ?? void 0, y = C((t) => {
903
+ let n = J({
904
+ incoming: t,
905
+ current: [],
906
+ maxFiles: 1,
907
+ append: !1,
908
+ ...o
909
+ });
910
+ n.rejections.length > 0 && i?.(n.rejections);
911
+ let a = n.accepted[0];
912
+ a && (e === void 0 && _(a), r?.(a)), m.current && (m.current.value = "");
913
+ }, [
914
+ o,
915
+ i,
916
+ r,
917
+ e
918
+ ]);
919
+ return /* @__PURE__ */ j("div", {
920
+ "data-field-shell": "",
921
+ "data-disabled": s || void 0,
922
+ "aria-invalid": c || void 0,
923
+ className: t("file-picker-input--component", U.pickerShell, d),
924
+ ...f,
925
+ children: [
926
+ /* @__PURE__ */ A("input", {
927
+ ref: m,
928
+ type: "file",
929
+ name: l,
930
+ accept: o.accept,
931
+ disabled: s,
932
+ "aria-label": v ? v.name : p.empty,
933
+ className: U.dropzoneInput,
934
+ onChange: (e) => {
935
+ let t = e.target.files;
936
+ t?.length && y(Array.from(t));
937
+ }
938
+ }),
939
+ /* @__PURE__ */ A(g, {
940
+ "aria-hidden": !0,
941
+ className: U.pickerIcon
942
+ }),
943
+ /* @__PURE__ */ A("span", {
944
+ className: t(U.pickerLabel, !v && U.pickerEmpty),
945
+ children: v ? v.name : p.empty
946
+ }),
947
+ !!v && /* @__PURE__ */ A(a, {
948
+ value: v.size,
949
+ size: "xs",
950
+ type: "secondary",
951
+ className: U.pickerMeta
952
+ }),
953
+ !!v && !s && /* @__PURE__ */ A(n, {
954
+ tone: "neutral",
955
+ appearance: "ghost",
956
+ iconOnly: !0,
957
+ "aria-label": p.clear,
958
+ className: U.pickerClear,
959
+ onClick: () => {
960
+ e === void 0 && _(void 0), r?.(void 0);
961
+ },
962
+ children: /* @__PURE__ */ A(S, {})
963
+ })
964
+ ]
965
+ });
966
+ }
967
+ //#endregion
968
+ export { z as _, ne as a, J as c, I as d, B as f, R as g, F as h, ae as i, W as l, L as m, se as n, re as o, V as p, $ as r, Y as s, ce as t, H as u, P as v, N as y };