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
@@ -1,938 +0,0 @@
1
- import { t as e } from "./cx--CBrhWH0.js";
2
- import { h as t } from "./feedback-DRerHGuV.js";
3
- import { c as n } from "./buttons-CqXKWty3.js";
4
- import { d as r } from "./display-B3Q17h5z.js";
5
- import { C as i, S as a } from "./primitives-D0bdDozz.js";
6
- import { t as o } from "./badge-CxOuTfVr.js";
7
- import { t as s } from "./strings-Co9_qArR.js";
8
- import { CheckIcon as c, CircleAlertIcon as l, ClockIcon as u, FileIcon as d, ImageIcon as f, ImagePlusIcon as p, Loader2Icon as m, PaperclipIcon as h, PencilIcon as g, RotateCwIcon as _, TrashIcon as v, UploadCloudIcon as y, UserIcon as b, XIcon as x } from "lucide-react";
9
- import { useCallback as S, useEffect as C, useId as w, useMemo as T, useRef as E, useState as D } from "react";
10
- import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
11
- //#region src/hooks/use-object-urls.ts
12
- function j(e) {
13
- let [t, n] = D([]), r = E([]), i = E([]);
14
- return C(() => {
15
- if (e.length === r.current.length && e.every((e, t) => e === r.current[t])) return;
16
- r.current = e;
17
- let t = i.current;
18
- i.current = e.map((e) => URL.createObjectURL(e)), n(i.current);
19
- for (let e of t) URL.revokeObjectURL(e);
20
- }, [e]), C(() => () => {
21
- for (let e of i.current) URL.revokeObjectURL(e);
22
- i.current = [], r.current = [];
23
- }, []), t;
24
- }
25
- //#endregion
26
- //#region src/components/base/upload/preview-image.tsx
27
- function M({ src: t, alt: n = "", fallback: r, className: i }) {
28
- let [a, o] = D(!1), [s, c] = D(t);
29
- return t !== s && (c(t), o(!1)), a ? /* @__PURE__ */ k(O, { children: r }) : /* @__PURE__ */ k("img", {
30
- src: t,
31
- alt: n,
32
- className: e("preview-image--component", i),
33
- onError: () => o(!0)
34
- });
35
- }
36
- //#endregion
37
- //#region src/components/base/upload/file-upload.strings.ts
38
- var N = {
39
- instruction: "Drop a file here, or browse",
40
- instructionMultiple: "Drop files here, or browse",
41
- uploading: (e) => `Uploading ${e}`,
42
- remove: (e) => `Remove ${e}`,
43
- rejection: ({ file: e, code: t, details: n }) => {
44
- switch (t) {
45
- case "invalid-type": return `${e.name} is not an accepted file type.`;
46
- case "too-small": return `${e.name} is smaller than ${i(n.limitBytes ?? 0)}.`;
47
- case "too-large": return `${e.name} is larger than ${i(n.limitBytes ?? 0)}.`;
48
- case "duplicate": return `${e.name} has already been added.`;
49
- case "too-many": return `${e.name} exceeds the limit of ${n.maxFiles ?? 0} file${n.maxFiles === 1 ? "" : "s"}.`;
50
- default: return n.customMessage ?? `${e.name} was rejected.`;
51
- }
52
- },
53
- constraintHint: ({ accept: e, maxSizeBytes: t }) => [e, t === void 0 ? void 0 : `up to ${Math.round(t / 1024 / 1024)} MB`].filter(Boolean).join(" · ")
54
- }, P = {
55
- cover: "Cover",
56
- add: "Add images",
57
- position: (e, t, n) => `${e}, position ${t} of ${n}. Use the arrow keys to reorder.`,
58
- remove: (e) => `Remove ${e}`
59
- }, F = {
60
- empty: "Add a photo",
61
- overlay: "Change photo",
62
- remove: "Remove photo"
63
- }, I = {
64
- empty: "Drop an image here, or browse",
65
- overlay: "Change image",
66
- remove: "Remove image"
67
- }, L = {
68
- status: {
69
- queued: "Queued",
70
- uploading: "Uploading",
71
- done: "Uploaded",
72
- error: "Failed",
73
- cancelled: "Cancelled"
74
- },
75
- cancel: (e) => `Cancel ${e}`,
76
- retry: (e) => `Retry ${e}`,
77
- remove: (e) => `Remove ${e}`,
78
- uploading: (e) => `Uploading ${e}`,
79
- settled: (e, t) => `${e}: ${t}`
80
- }, R = {
81
- ...N,
82
- ...L,
83
- clearAll: "Clear all"
84
- }, z = {
85
- instruction: "Drop a file here, or browse",
86
- instructionMultiple: "Drop files here, or browse",
87
- dragOver: "Release to add",
88
- helper: ""
89
- }, B = {
90
- empty: "No file chosen",
91
- clear: "Remove file"
92
- };
93
- //#endregion
94
- //#region src/components/base/upload/use-file-drop-target.ts
95
- function V({ disabled: e = !1, onFiles: t }) {
96
- let n = E(0), [r, i] = D(!1), a = r && !e, o = S((e) => {
97
- e.preventDefault(), e.stopPropagation();
98
- }, []);
99
- return {
100
- isDragging: a,
101
- dropTargetProps: {
102
- onDragEnter: S((t) => {
103
- if (o(t), e) {
104
- n.current = 0;
105
- return;
106
- }
107
- n.current += 1, i(!0);
108
- }, [e, o]),
109
- onDragOver: S((t) => {
110
- o(t), !e && (t.dataTransfer && (t.dataTransfer.dropEffect = "copy"), i(!0));
111
- }, [e, o]),
112
- onDragLeave: S((e) => {
113
- o(e), n.current = Math.max(0, n.current - 1), n.current === 0 && i(!1);
114
- }, [o]),
115
- onDrop: S((r) => {
116
- if (o(r), n.current = 0, i(!1), e) return;
117
- let a = r.dataTransfer?.files;
118
- a?.length && t(Array.from(a));
119
- }, [
120
- e,
121
- t,
122
- o
123
- ])
124
- }
125
- };
126
- }
127
- var H = {
128
- dropzone: "upload__dropzone___18PHm",
129
- dropzoneCompact: "upload__dropzoneCompact___lO1Y2",
130
- dropzoneInput: "upload__dropzoneInput___OSLjX",
131
- dropzoneIcon: "upload__dropzoneIcon___dEbuz",
132
- dropzoneCopy: "upload__dropzoneCopy___FGRl_",
133
- dropzoneText: "upload__dropzoneText___fG9Sv",
134
- dropzoneHint: "upload__dropzoneHint____aACx",
135
- list: "upload__list___54BTe",
136
- row: "upload__row___6TE2T",
137
- rowActions: "upload__rowActions___fgMkU",
138
- thumb: "upload__thumb___I7oD7",
139
- statusIcon: "upload__statusIcon___VRRk3",
140
- rowBody: "upload__rowBody___51jrN",
141
- rowName: "upload__rowName____3TMo",
142
- rowMeta: "upload__rowMeta___NlE7h",
143
- progress: "upload__progress___sfhZY",
144
- progressFill: "upload__progressFill___PXFlt",
145
- root: "upload__root___TLif3",
146
- rejections: "upload__rejections___VTeCm",
147
- mediaRoot: "upload__mediaRoot___yS2ko",
148
- mediaPicker: "upload__mediaPicker___eVcZk",
149
- avatarPicker: "upload__avatarPicker___rAikO",
150
- imagePicker: "upload__imagePicker___zDNWf",
151
- mediaPreview: "upload__mediaPreview___BS0TO",
152
- mediaOverlay: "upload__mediaOverlay___diadO",
153
- mediaEmpty: "upload__mediaEmpty___5M65A",
154
- tray: "upload__tray___u741N",
155
- trayToolbar: "upload__trayToolbar___NmrU5",
156
- trayCounts: "upload__trayCounts___hrAmS",
157
- statusQueued: "upload__statusQueued___CMIPL",
158
- statusUploading: "upload__statusUploading___ec2M2",
159
- statusDone: "upload__statusDone___MW_Za",
160
- statusError: "upload__statusError___kutx4",
161
- statusCancelled: "upload__statusCancelled___JKMmC",
162
- rowError: "upload__rowError___X8Aj2",
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 U({ onDrop: t, accept: n, multiple: r = !1, disabled: i = !1, invalid: a = !1, compact: o = !1, icon: s, inputProps: c, strings: l, label: u, hint: d, footer: f, className: p, ...m }) {
182
- let h = {
183
- ...z,
184
- ...l
185
- }, g = w(), _ = c?.id ?? g, v = `${g}-prompt`, { isDragging: b, dropTargetProps: x } = V({
186
- disabled: i,
187
- onFiles: t
188
- }), S = b ? h.dragOver : u ?? (r ? h.instructionMultiple : h.instruction), C = d === void 0 ? h.helper : d, T = c?.["aria-labelledby"];
189
- return /* @__PURE__ */ A("div", {
190
- className: e("dropzone--component", p),
191
- ...m,
192
- children: [/* @__PURE__ */ A("label", {
193
- htmlFor: _,
194
- ...x,
195
- "data-slot": "dropzone",
196
- "data-dragging": b || void 0,
197
- "data-disabled": i || void 0,
198
- "data-invalid": a || void 0,
199
- className: e(H.dropzone, o && H.dropzoneCompact),
200
- children: [
201
- /* @__PURE__ */ k("input", {
202
- "aria-invalid": a || void 0,
203
- ...c,
204
- "aria-labelledby": T ? `${T} ${v}` : void 0,
205
- id: _,
206
- type: "file",
207
- accept: n,
208
- multiple: r,
209
- disabled: i,
210
- className: e(H.dropzoneInput, c?.className),
211
- onChange: (e) => {
212
- let n = e.target.files;
213
- n?.length && t(Array.from(n)), e.target.value = "";
214
- }
215
- }),
216
- s ?? /* @__PURE__ */ k(y, {
217
- "aria-hidden": !0,
218
- className: H.dropzoneIcon
219
- }),
220
- /* @__PURE__ */ A("span", {
221
- className: H.dropzoneCopy,
222
- children: [/* @__PURE__ */ k("span", {
223
- id: v,
224
- className: H.dropzoneText,
225
- children: S
226
- }), C != null && C !== "" && /* @__PURE__ */ k("span", {
227
- className: H.dropzoneHint,
228
- children: C
229
- })]
230
- })
231
- ]
232
- }), !!f && /* @__PURE__ */ k("div", {
233
- className: H.dropzoneFooter,
234
- children: f
235
- })]
236
- });
237
- }
238
- //#endregion
239
- //#region src/components/base/upload/validate-files.ts
240
- function W(e) {
241
- return [
242
- e.name,
243
- e.size,
244
- e.type,
245
- e.lastModified
246
- ].join("|");
247
- }
248
- function G(e, t) {
249
- if (!t?.trim()) return !0;
250
- let n = e.name.toLowerCase(), r = e.type.toLowerCase();
251
- 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);
252
- }
253
- function K(e, t) {
254
- let { accept: n, minSizeBytes: r, maxSizeBytes: i, validateFile: a } = t;
255
- if (!G(e, n)) return {
256
- file: e,
257
- code: "invalid-type",
258
- details: {}
259
- };
260
- if (r !== void 0 && e.size < r) return {
261
- file: e,
262
- code: "too-small",
263
- details: { limitBytes: r }
264
- };
265
- if (i !== void 0 && e.size > i) return {
266
- file: e,
267
- code: "too-large",
268
- details: { limitBytes: i }
269
- };
270
- if (a) {
271
- let t;
272
- try {
273
- t = a(e);
274
- } catch {
275
- t = !1;
276
- }
277
- if (t !== !0) return {
278
- file: e,
279
- code: "custom",
280
- details: { customMessage: typeof t == "string" ? t : void 0 }
281
- };
282
- }
283
- }
284
- function q({ incoming: e, current: t, maxFiles: n, append: r, ...i }) {
285
- let a = r ? [...t] : [], o = new Set(a.map(W)), s = [], c = [];
286
- for (let t of e) {
287
- let e = K(t, i);
288
- if (e) {
289
- c.push(e);
290
- continue;
291
- }
292
- let r = W(t);
293
- if (o.has(r)) {
294
- c.push({
295
- file: t,
296
- code: "duplicate",
297
- details: {}
298
- });
299
- continue;
300
- }
301
- if (a.length >= n) {
302
- c.push({
303
- file: t,
304
- code: "too-many",
305
- details: { maxFiles: n }
306
- });
307
- continue;
308
- }
309
- s.push(t), a.push(t), o.add(r);
310
- }
311
- return {
312
- accepted: s,
313
- nextFiles: a,
314
- rejections: c
315
- };
316
- }
317
- //#endregion
318
- //#region src/components/base/upload/file-upload.tsx
319
- var ee = [];
320
- function J({ id: r, value: i, defaultValue: o, onValueChange: s, 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: T, className: O, "aria-labelledby": j, "aria-describedby": M, "aria-invalid": P, "aria-required": F, ...I }) {
321
- let L = {
322
- ...N,
323
- ...g
324
- }, R = w(), z = r ?? R, B = E(null), V = i !== void 0, [W, G] = D(o ?? []), K = V ? i ?? ee : W, [J, ne] = D([]), Y = u ?? (l ? Infinity : 1), X = (d ?? (l ? "append" : "replace")) === "append", re = S((e) => {
325
- let t = q({
326
- incoming: e,
327
- current: K,
328
- maxFiles: Y,
329
- append: X,
330
- ...I
331
- });
332
- ne(t.rejections), t.rejections.length > 0 && c?.(t.rejections), (t.accepted.length > 0 || !X) && (V || G(t.nextFiles), s?.(t.nextFiles)), B.current && (B.current.value = "");
333
- }, [
334
- X,
335
- I,
336
- K,
337
- V,
338
- c,
339
- s,
340
- Y
341
- ]), Z = E(null), Q = E(null), ie = S((e) => {
342
- let t = K.filter((t, n) => n !== e);
343
- Q.current = e, V || G(t), s?.(t);
344
- }, [
345
- K,
346
- V,
347
- s
348
- ]);
349
- C(() => {
350
- if (Q.current === null) return;
351
- let e = Q.current;
352
- Q.current = null;
353
- let t = Z.current?.querySelectorAll("[data-remove]") ?? [], n = t[Math.min(e, t.length - 1)];
354
- n ? n.focus() : B.current?.focus();
355
- }, [K]);
356
- let $ = P ?? (p || void 0), ae = _ === void 0 ? L.constraintHint?.({
357
- accept: I.accept,
358
- maxSizeBytes: I.maxSizeBytes
359
- }) || null : _;
360
- return /* @__PURE__ */ A("div", {
361
- className: e("file-upload--component", H.root, O),
362
- children: [
363
- /* @__PURE__ */ k(U, {
364
- onDrop: re,
365
- accept: I.accept,
366
- multiple: l,
367
- disabled: f,
368
- invalid: $ === !0 || $ === "true",
369
- compact: m,
370
- label: h,
371
- hint: ae,
372
- strings: {
373
- instruction: L.instruction,
374
- instructionMultiple: L.instructionMultiple,
375
- ...L.dragOver ? { dragOver: L.dragOver } : null
376
- },
377
- inputProps: {
378
- ref: B,
379
- id: z,
380
- name: T,
381
- "aria-labelledby": j,
382
- "aria-describedby": M,
383
- "aria-invalid": $,
384
- "aria-required": F
385
- }
386
- }),
387
- y && J.length > 0 && /* @__PURE__ */ k("div", {
388
- className: H.rejections,
389
- children: J.map((e) => /* @__PURE__ */ k(t, {
390
- tone: "destructive",
391
- children: L.rejection(e)
392
- }, `${e.file.name}-${e.code}`))
393
- }),
394
- v && K.length > 0 && /* @__PURE__ */ k("ul", {
395
- ref: Z,
396
- className: H.list,
397
- children: K.map((e, t) => /* @__PURE__ */ A("li", {
398
- className: H.row,
399
- children: [
400
- /* @__PURE__ */ k(te, { file: e }),
401
- /* @__PURE__ */ A("div", {
402
- className: H.rowBody,
403
- children: [
404
- /* @__PURE__ */ k("span", {
405
- className: H.rowName,
406
- children: e.name
407
- }),
408
- /* @__PURE__ */ k("span", {
409
- className: H.rowMeta,
410
- children: /* @__PURE__ */ k(a, { value: e.size })
411
- }),
412
- b?.[e.name] !== void 0 && /* @__PURE__ */ k("div", {
413
- className: H.progress,
414
- role: "progressbar",
415
- "aria-valuenow": b[e.name],
416
- "aria-valuemin": 0,
417
- "aria-valuemax": 100,
418
- "aria-label": L.uploading(e.name),
419
- children: /* @__PURE__ */ k("div", {
420
- className: H.progressFill,
421
- style: { width: `${b[e.name]}%` }
422
- })
423
- })
424
- ]
425
- }),
426
- /* @__PURE__ */ k(n, {
427
- tone: "neutral",
428
- buttonStyle: "ghost",
429
- iconOnly: !0,
430
- "aria-label": L.remove(e.name),
431
- "data-remove": "",
432
- disabled: f,
433
- onClick: () => ie(t),
434
- children: /* @__PURE__ */ k(x, {})
435
- })
436
- ]
437
- }, `${e.name}-${e.lastModified}`))
438
- })
439
- ]
440
- });
441
- }
442
- function te({ file: e }) {
443
- let t = e.type.startsWith("image/"), [n] = j(t ? [e] : []);
444
- return /* @__PURE__ */ k("span", {
445
- className: H.thumb,
446
- children: t && n ? /* @__PURE__ */ k(M, {
447
- src: n,
448
- fallback: /* @__PURE__ */ k(d, { "aria-hidden": !0 })
449
- }) : /* @__PURE__ */ k(d, { "aria-hidden": !0 })
450
- });
451
- }
452
- //#endregion
453
- //#region src/components/base/upload/media-upload.tsx
454
- function ne({ value: e, onValueChange: t, onRejectedFiles: n, previewUrl: r, accept: i = "image/*", ...a }) {
455
- let o = E(null), [s, c] = D(void 0), [l, u] = D(void 0), [d, f] = D(r);
456
- d !== r && (f(r), u(void 0));
457
- let p = e === void 0 ? s : e ?? void 0, [m] = j(p ? [p] : []);
458
- return {
459
- inputRef: o,
460
- accepted: S((r) => {
461
- let s = q({
462
- incoming: r,
463
- current: [],
464
- maxFiles: 1,
465
- append: !1,
466
- accept: i,
467
- ...a
468
- }), l = s.accepted[0];
469
- l && (e === void 0 && c(l), t?.(l)), s.rejections.length > 0 && n?.(s.rejections), o.current && (o.current.value = "");
470
- }, [
471
- i,
472
- a,
473
- n,
474
- t,
475
- e
476
- ]),
477
- clear: S(() => {
478
- e === void 0 && (c(void 0), u(r)), t?.(void 0);
479
- }, [
480
- t,
481
- r,
482
- e
483
- ]),
484
- shown: m ?? (e === void 0 && l === r ? null : r) ?? null,
485
- accept: i
486
- };
487
- }
488
- function Y({ shape: t, emptyIcon: r, emptyLabel: i, overlayLabel: a, removeLabel: o, props: s }) {
489
- let { id: c, disabled: l, invalid: u, className: d, name: f, "aria-label": p, "aria-labelledby": m, "aria-describedby": h, "aria-invalid": _, "aria-required": y } = s, { inputRef: b, accepted: x, clear: S, shown: C, accept: T } = ne(s), { isDragging: E, dropTargetProps: D } = V({
490
- disabled: l,
491
- onFiles: x
492
- }), O = _ ?? (u || void 0), j = w(), N = c ?? j;
493
- return /* @__PURE__ */ A("div", {
494
- className: e(t === "avatar" ? "avatar-upload--component" : "image-upload--component", H.mediaRoot, d),
495
- children: [/* @__PURE__ */ A("div", {
496
- ...D,
497
- "data-dragging": E || void 0,
498
- "data-disabled": l || void 0,
499
- "data-filled": C ? "" : void 0,
500
- "data-invalid": O && O !== "false" || void 0,
501
- className: e(H.mediaPicker, t === "avatar" ? H.avatarPicker : H.imagePicker),
502
- children: [
503
- /* @__PURE__ */ k("input", {
504
- ref: b,
505
- id: N,
506
- type: "file",
507
- name: f,
508
- accept: T,
509
- disabled: l,
510
- "aria-label": p ?? (C ? a : i),
511
- "aria-labelledby": m ? `${m} ${N}` : void 0,
512
- "aria-describedby": h,
513
- "aria-invalid": O,
514
- "aria-required": y,
515
- className: H.dropzoneInput,
516
- onChange: (e) => {
517
- let t = e.target.files;
518
- t?.length && x(Array.from(t)), e.target.value = "";
519
- }
520
- }),
521
- C ? /* @__PURE__ */ k(M, {
522
- src: C,
523
- fallback: /* @__PURE__ */ k("span", {
524
- className: H.mediaEmpty,
525
- children: r
526
- }),
527
- className: H.mediaPreview
528
- }) : /* @__PURE__ */ A("span", {
529
- className: H.mediaEmpty,
530
- children: [r, t === "image" && /* @__PURE__ */ k("span", { children: i })]
531
- }),
532
- /* @__PURE__ */ A("span", {
533
- className: H.mediaOverlay,
534
- "aria-hidden": !0,
535
- children: [/* @__PURE__ */ k(g, { "aria-hidden": !0 }), t === "image" && /* @__PURE__ */ k("span", { children: a })]
536
- })
537
- ]
538
- }), C && !l && /* @__PURE__ */ A(n, {
539
- tone: "neutral",
540
- buttonStyle: "ghost",
541
- onClick: () => {
542
- S(), b.current?.focus();
543
- },
544
- children: [/* @__PURE__ */ k(v, {}), o]
545
- })]
546
- });
547
- }
548
- function X({ strings: e, ...t }) {
549
- let n = {
550
- ...F,
551
- ...e
552
- };
553
- return /* @__PURE__ */ k(Y, {
554
- shape: "avatar",
555
- emptyIcon: /* @__PURE__ */ k(b, { "aria-hidden": !0 }),
556
- emptyLabel: n.empty,
557
- overlayLabel: n.overlay,
558
- removeLabel: n.remove,
559
- props: t
560
- });
561
- }
562
- function re({ strings: e, ...t }) {
563
- let n = {
564
- ...I,
565
- ...e
566
- };
567
- return /* @__PURE__ */ k(Y, {
568
- shape: "image",
569
- emptyIcon: /* @__PURE__ */ k(f, { "aria-hidden": !0 }),
570
- emptyLabel: n.empty,
571
- overlayLabel: n.overlay,
572
- removeLabel: n.remove,
573
- props: t
574
- });
575
- }
576
- //#endregion
577
- //#region src/components/base/upload/upload-queue.tsx
578
- var Z = {
579
- queued: /* @__PURE__ */ k(u, { "aria-hidden": !0 }),
580
- uploading: /* @__PURE__ */ k(m, { "aria-hidden": !0 }),
581
- done: /* @__PURE__ */ k(c, { "aria-hidden": !0 }),
582
- error: /* @__PURE__ */ k(l, { "aria-hidden": !0 }),
583
- cancelled: /* @__PURE__ */ k(x, { "aria-hidden": !0 })
584
- }, Q = {
585
- queued: H.statusQueued,
586
- uploading: H.statusUploading,
587
- done: H.statusDone,
588
- error: H.statusError,
589
- cancelled: H.statusCancelled
590
- };
591
- function ie({ items: t, onCancel: i, onRetry: o, onRemove: c, strings: l, className: u }) {
592
- let f = s(L, l), p = E(/* @__PURE__ */ new Map()), [m, h] = D(""), g = t.some((e) => e.status === "queued" || e.status === "uploading"), [v, y] = D(g);
593
- return g && !v && y(!0), C(() => {
594
- let e = [];
595
- for (let n of t) {
596
- let t = p.current.get(n.id), r = n.status === "done" || n.status === "error" || n.status === "cancelled";
597
- t !== void 0 && t !== n.status && r && e.push(f.settled?.(n.name, f.status[n.status]) ?? `${n.name}: ${f.status[n.status]}`);
598
- }
599
- p.current = new Map(t.map((e) => [e.id, e.status])), e.length > 0 && h(e.join(". "));
600
- }, [t, f]), t.length === 0 ? null : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k("ul", {
601
- className: e("upload-progress-list--component", H.list, u),
602
- children: t.map((t) => {
603
- let r = {
604
- key: "cancel",
605
- label: f.cancel(t.name),
606
- icon: /* @__PURE__ */ k(x, {}),
607
- run: () => i?.(t.id)
608
- }, s = {
609
- key: "retry",
610
- label: f.retry(t.name),
611
- icon: /* @__PURE__ */ k(_, {}),
612
- run: () => o?.(t.id)
613
- }, l = {
614
- key: "remove",
615
- label: f.remove(t.name),
616
- icon: /* @__PURE__ */ k(x, {}),
617
- run: () => c?.(t.id)
618
- }, u = t.status === "uploading" ? i ? [r] : [] : t.status === "queued" ? i ? [r] : c ? [l] : [] : t.status === "error" ? [...o ? [s] : [], ...c ? [l] : []] : c ? [l] : [];
619
- return /* @__PURE__ */ A("li", {
620
- className: H.row,
621
- children: [
622
- t.preview ? /* @__PURE__ */ k("span", {
623
- className: H.thumb,
624
- children: /* @__PURE__ */ k(M, {
625
- src: t.preview,
626
- fallback: /* @__PURE__ */ k(d, { "aria-hidden": !0 })
627
- })
628
- }) : /* @__PURE__ */ k("span", {
629
- className: e(H.statusIcon, Q[t.status]),
630
- "aria-hidden": !0,
631
- children: Z[t.status]
632
- }),
633
- /* @__PURE__ */ A("div", {
634
- className: H.rowBody,
635
- children: [
636
- /* @__PURE__ */ k("span", {
637
- className: H.rowName,
638
- children: t.name
639
- }),
640
- /* @__PURE__ */ A("span", {
641
- className: H.rowMeta,
642
- children: [f.status[t.status], t.size !== void 0 && /* @__PURE__ */ A(O, { children: [" · ", /* @__PURE__ */ k(a, { value: t.size })] })]
643
- }),
644
- t.status === "uploading" && /* @__PURE__ */ k("div", {
645
- className: H.progress,
646
- role: "progressbar",
647
- "aria-valuenow": t.progress ?? 0,
648
- "aria-valuemin": 0,
649
- "aria-valuemax": 100,
650
- "aria-label": f.uploading(t.name),
651
- children: /* @__PURE__ */ k("div", {
652
- className: H.progressFill,
653
- style: { width: `${t.progress ?? 0}%` }
654
- })
655
- }),
656
- t.status === "error" && !!t.error && /* @__PURE__ */ k("span", {
657
- className: H.rowError,
658
- children: t.error
659
- })
660
- ]
661
- }),
662
- u.length > 0 && /* @__PURE__ */ k("span", {
663
- className: H.rowActions,
664
- children: u.map((e) => /* @__PURE__ */ k(n, {
665
- tone: "neutral",
666
- buttonStyle: "ghost",
667
- iconOnly: !0,
668
- "aria-label": e.label,
669
- onClick: e.run,
670
- children: e.icon
671
- }, e.key))
672
- })
673
- ]
674
- }, t.id);
675
- })
676
- }), v && /* @__PURE__ */ k(r, {
677
- "aria-live": "polite",
678
- children: m
679
- })] });
680
- }
681
- function $({ items: t, onAddFiles: r, onCancel: i, onRetry: a, onRemove: s, onClearAll: c, strings: l, showSummary: u = !0, className: d, ...f }) {
682
- let p = {
683
- ...R,
684
- ...l
685
- }, m = T(() => {
686
- let e = {};
687
- for (let n of t) e[n.status] = (e[n.status] ?? 0) + 1;
688
- return e;
689
- }, [t]), h = [
690
- "uploading",
691
- "queued",
692
- "done",
693
- "error",
694
- "cancelled"
695
- ].filter((e) => m[e]).map((e) => ({
696
- status: e,
697
- count: m[e]
698
- }));
699
- return /* @__PURE__ */ A("div", {
700
- className: e("upload-tray--component", H.tray, d),
701
- children: [
702
- /* @__PURE__ */ k(J, {
703
- ...f,
704
- strings: l,
705
- multiple: !0,
706
- showList: !1,
707
- value: [],
708
- onValueChange: (e) => {
709
- e.length > 0 && r(e);
710
- }
711
- }),
712
- u && h.length > 0 && /* @__PURE__ */ A("div", {
713
- className: H.trayToolbar,
714
- children: [/* @__PURE__ */ k("div", {
715
- className: H.trayCounts,
716
- children: h.map(({ status: e, count: t }) => /* @__PURE__ */ A(o, {
717
- tone: e === "error" ? "destructive" : "neutral",
718
- children: [
719
- p.status[e],
720
- " ",
721
- t
722
- ]
723
- }, e))
724
- }), !!c && /* @__PURE__ */ k(n, {
725
- tone: "neutral",
726
- buttonStyle: "ghost",
727
- onClick: c,
728
- children: p.clearAll
729
- })]
730
- }),
731
- /* @__PURE__ */ k(ie, {
732
- items: t,
733
- strings: l,
734
- onCancel: i,
735
- onRetry: a,
736
- onRemove: s
737
- })
738
- ]
739
- });
740
- }
741
- //#endregion
742
- //#region src/components/base/upload/media-gallery.tsx
743
- var ae = [];
744
- function oe({ value: t, defaultValue: r, onValueChange: i, onRejectedFiles: a, maxFiles: s, disabled: c = !1, invalid: l = !1, showCover: u = !0, strings: d, accept: m = "image/*", ...h }) {
745
- let g = {
746
- ...P,
747
- ...d
748
- }, _ = t !== void 0, [v, y] = D(r ?? []), b = _ ? t ?? ae : v, [C, w] = D(null), [E, O] = D(null), N = S((e) => {
749
- _ || y(e), i?.(e);
750
- }, [_, i]), F = S((e) => {
751
- let t = q({
752
- incoming: e,
753
- current: b,
754
- maxFiles: s ?? Infinity,
755
- append: !0,
756
- accept: m,
757
- ...h
758
- });
759
- t.rejections.length > 0 && a?.(t.rejections), t.accepted.length > 0 && N(t.nextFiles);
760
- }, [
761
- m,
762
- N,
763
- h,
764
- b,
765
- s,
766
- a
767
- ]), { isDragging: I, dropTargetProps: L } = V({
768
- disabled: c,
769
- onFiles: F
770
- }), R = S((e, t) => {
771
- if (e === t || t < 0 || t >= b.length) return;
772
- let n = [...b], [r] = n.splice(e, 1);
773
- r !== void 0 && (n.splice(t, 0, r), N(n));
774
- }, [N, b]), z = j(b), B = (e, t) => {
775
- let n = e.key === "ArrowLeft" ? -1 : +(e.key === "ArrowRight");
776
- if (n === 0) return;
777
- e.preventDefault();
778
- let r = t + n;
779
- R(t, r);
780
- let i = e.currentTarget.closest("[data-gallery]")?.querySelectorAll("[data-gallery-tile]");
781
- requestAnimationFrame(() => i?.[r]?.focus());
782
- }, U = (e, t) => {
783
- e.preventDefault(), C !== null && R(C, t), w(null), O(null);
784
- }, W = s !== void 0 && b.length >= s, G = T(() => b.map((e, t) => ({
785
- file: e,
786
- url: z[t]
787
- })), [b, z]);
788
- return /* @__PURE__ */ A("div", {
789
- "data-gallery": "",
790
- className: e("media-gallery--component", H.gallery),
791
- children: [G.map(({ file: e, url: t }, r) => /* @__PURE__ */ A("div", {
792
- className: H.tile,
793
- "data-dragging": C === r || void 0,
794
- "data-drop": E === r && C !== null && C !== r || void 0,
795
- onDragOver: (e) => {
796
- C !== null && (e.preventDefault(), O(r));
797
- },
798
- onDrop: (e) => U(e, r),
799
- onDragEnd: () => {
800
- w(null), O(null);
801
- },
802
- children: [
803
- !!t && /* @__PURE__ */ k(M, {
804
- src: t,
805
- fallback: /* @__PURE__ */ k(f, {
806
- "aria-hidden": !0,
807
- className: H.tileFallback
808
- }),
809
- className: H.tileImage
810
- }),
811
- /* @__PURE__ */ k("button", {
812
- type: "button",
813
- "data-gallery-tile": "",
814
- className: H.tileHandle,
815
- "aria-label": g.position(e.name, r + 1, b.length),
816
- disabled: c,
817
- draggable: !c,
818
- onDragStart: (e) => {
819
- w(r), e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/plain", String(r));
820
- let t = e.currentTarget.closest("[data-drop], div");
821
- t && e.dataTransfer.setDragImage(t, 20, 20);
822
- },
823
- onDragEnd: () => {
824
- w(null), O(null);
825
- },
826
- onKeyDown: (e) => B(e, r)
827
- }),
828
- r === 0 && u && /* @__PURE__ */ k(o, {
829
- tone: "neutral",
830
- className: H.tileCover,
831
- children: g.cover
832
- }),
833
- /* @__PURE__ */ k(n, {
834
- tone: "neutral",
835
- buttonStyle: "solid",
836
- iconOnly: !0,
837
- className: H.tileRemove,
838
- "aria-label": g.remove(e.name),
839
- disabled: c,
840
- onClick: () => N(b.filter((e, t) => t !== r)),
841
- children: /* @__PURE__ */ k(x, {})
842
- })
843
- ]
844
- }, `${e.name}-${e.lastModified}-${r}`)), !W && /* @__PURE__ */ A("label", {
845
- ...L,
846
- "data-dragging": I || void 0,
847
- "data-disabled": c || void 0,
848
- "aria-invalid": l || void 0,
849
- className: H.galleryAdd,
850
- children: [
851
- /* @__PURE__ */ k("input", {
852
- type: "file",
853
- accept: m,
854
- multiple: !0,
855
- disabled: c,
856
- className: H.dropzoneInput,
857
- onChange: (e) => {
858
- let t = e.target.files;
859
- t?.length && F(Array.from(t)), e.target.value = "";
860
- }
861
- }),
862
- /* @__PURE__ */ k(p, { "aria-hidden": !0 }),
863
- /* @__PURE__ */ k("span", { children: g.add })
864
- ]
865
- })]
866
- });
867
- }
868
- //#endregion
869
- //#region src/components/base/upload/file-picker-input.tsx
870
- function se({ value: t, onValueChange: r, onRejectedFiles: i, constraints: o = {}, disabled: s = !1, invalid: c = !1, name: l, strings: u, className: d, ...f }) {
871
- let p = {
872
- ...B,
873
- ...u
874
- }, m = E(null), [g, _] = D(void 0), v = t === void 0 ? g : t ?? void 0, y = S((e) => {
875
- let n = q({
876
- incoming: e,
877
- current: [],
878
- maxFiles: 1,
879
- append: !1,
880
- ...o
881
- });
882
- n.rejections.length > 0 && i?.(n.rejections);
883
- let a = n.accepted[0];
884
- a && (t === void 0 && _(a), r?.(a)), m.current && (m.current.value = "");
885
- }, [
886
- o,
887
- i,
888
- r,
889
- t
890
- ]);
891
- return /* @__PURE__ */ A("div", {
892
- "data-field-shell": "",
893
- "data-disabled": s || void 0,
894
- "aria-invalid": c || void 0,
895
- className: e("file-picker-input--component", H.pickerShell, d),
896
- ...f,
897
- children: [
898
- /* @__PURE__ */ k("input", {
899
- ref: m,
900
- type: "file",
901
- name: l,
902
- accept: o.accept,
903
- disabled: s,
904
- "aria-label": v ? v.name : p.empty,
905
- className: H.dropzoneInput,
906
- onChange: (e) => {
907
- let t = e.target.files;
908
- t?.length && y(Array.from(t));
909
- }
910
- }),
911
- /* @__PURE__ */ k(h, {
912
- "aria-hidden": !0,
913
- className: H.pickerIcon
914
- }),
915
- /* @__PURE__ */ k("span", {
916
- className: e(H.pickerLabel, !v && H.pickerEmpty),
917
- children: v ? v.name : p.empty
918
- }),
919
- !!v && /* @__PURE__ */ k("span", {
920
- className: H.pickerMeta,
921
- children: /* @__PURE__ */ k(a, { value: v.size })
922
- }),
923
- !!v && !s && /* @__PURE__ */ k(n, {
924
- tone: "neutral",
925
- buttonStyle: "ghost",
926
- iconOnly: !0,
927
- "aria-label": p.clear,
928
- className: H.pickerClear,
929
- onClick: () => {
930
- t === void 0 && _(void 0), r?.(void 0);
931
- },
932
- children: /* @__PURE__ */ k(x, {})
933
- })
934
- ]
935
- });
936
- }
937
- //#endregion
938
- export { R as _, X as a, q as c, F as d, z as f, L as g, P as h, $ as i, U as l, I as m, oe as n, re as o, B as p, ie as r, J as s, se as t, V as u, N as v, M as y };