@startdownnotez404/ui 1.3.5 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/AutocompleteField-653233JU.mjs +203 -0
  2. package/dist/AutocompleteField-653233JU.mjs.map +1 -0
  3. package/dist/AvatarField-KFASMVZU.mjs +378 -0
  4. package/dist/AvatarField-KFASMVZU.mjs.map +1 -0
  5. package/dist/{DateField-ZYMZFHL4.mjs → DateField-CDJ6W6XF.mjs} +19 -7
  6. package/dist/DateField-CDJ6W6XF.mjs.map +1 -0
  7. package/dist/DateRangeField-ZWSFT5KV.mjs +118 -0
  8. package/dist/DateRangeField-ZWSFT5KV.mjs.map +1 -0
  9. package/dist/{DateTimeField-TPTJ7YIZ.mjs → DateTimeField-SFAF4I6A.mjs} +36 -11
  10. package/dist/DateTimeField-SFAF4I6A.mjs.map +1 -0
  11. package/dist/FileUploadField-TSNCSLXX.mjs +101 -0
  12. package/dist/FileUploadField-TSNCSLXX.mjs.map +1 -0
  13. package/dist/{JSONEditorField-TMRWGXVR.mjs → JSONEditorField-3KXC2GOG.mjs} +7 -6
  14. package/dist/{JSONEditorField-TMRWGXVR.mjs.map → JSONEditorField-3KXC2GOG.mjs.map} +1 -1
  15. package/dist/{PopperMenu-LJ36RPBW.mjs → PopperMenu-PSHLKIEZ.mjs} +26 -12
  16. package/dist/{PopperMenu-LJ36RPBW.mjs.map → PopperMenu-PSHLKIEZ.mjs.map} +1 -1
  17. package/dist/{TelField-LOGRVZ4I.mjs → TelField-FRQT2UBJ.mjs} +8 -7
  18. package/dist/{TelField-LOGRVZ4I.mjs.map → TelField-FRQT2UBJ.mjs.map} +1 -1
  19. package/dist/TimeField-XVWXBJID.mjs +94 -0
  20. package/dist/TimeField-XVWXBJID.mjs.map +1 -0
  21. package/dist/alert.d.mts +148 -18
  22. package/dist/alert.d.ts +148 -18
  23. package/dist/alert.js +698 -254
  24. package/dist/alert.js.map +1 -1
  25. package/dist/alert.mjs +46 -10
  26. package/dist/autocomplete.d.mts +438 -4
  27. package/dist/autocomplete.d.ts +438 -4
  28. package/dist/autocomplete.js +632 -21
  29. package/dist/autocomplete.js.map +1 -1
  30. package/dist/autocomplete.mjs +26 -7
  31. package/dist/avatar.js +2 -1
  32. package/dist/avatar.js.map +1 -1
  33. package/dist/avatar.mjs +12 -11
  34. package/dist/box.mjs +2 -1
  35. package/dist/button.mjs +3 -2
  36. package/dist/chart.mjs +3 -2
  37. package/dist/checkbox.mjs +3 -2
  38. package/dist/chunk-2FK24ZPJ.mjs +78 -0
  39. package/dist/chunk-2FK24ZPJ.mjs.map +1 -0
  40. package/dist/{chunk-V26V2S3W.mjs → chunk-3O3N6X6D.mjs} +3 -3
  41. package/dist/{chunk-Y74ALKBL.mjs → chunk-4MSPA7U7.mjs} +11 -9
  42. package/dist/{chunk-Y74ALKBL.mjs.map → chunk-4MSPA7U7.mjs.map} +1 -1
  43. package/dist/{chunk-24XDGNJ6.mjs → chunk-4P45Z5LR.mjs} +63 -41
  44. package/dist/chunk-4P45Z5LR.mjs.map +1 -0
  45. package/dist/chunk-4SSJY32J.mjs +1182 -0
  46. package/dist/chunk-4SSJY32J.mjs.map +1 -0
  47. package/dist/{chunk-XJ2SXC2Q.mjs → chunk-6B6I27TT.mjs} +18 -16
  48. package/dist/{chunk-XJ2SXC2Q.mjs.map → chunk-6B6I27TT.mjs.map} +1 -1
  49. package/dist/chunk-6JKMEH2L.mjs +205 -0
  50. package/dist/chunk-6JKMEH2L.mjs.map +1 -0
  51. package/dist/{chunk-IN3O4R7Q.mjs → chunk-7O526A2D.mjs} +6 -4
  52. package/dist/{chunk-IN3O4R7Q.mjs.map → chunk-7O526A2D.mjs.map} +1 -1
  53. package/dist/chunk-AFLEG5ZC.mjs +28 -0
  54. package/dist/chunk-AFLEG5ZC.mjs.map +1 -0
  55. package/dist/{chunk-UGMRJMFZ.mjs → chunk-BO5CU4ZM.mjs} +4 -4
  56. package/dist/{chunk-JIU5GVM7.mjs → chunk-D4XPNSSI.mjs} +5 -3
  57. package/dist/{chunk-JIU5GVM7.mjs.map → chunk-D4XPNSSI.mjs.map} +1 -1
  58. package/dist/chunk-DPIMA5IO.mjs +72 -0
  59. package/dist/chunk-DPIMA5IO.mjs.map +1 -0
  60. package/dist/chunk-F2CGFVIZ.mjs +83 -0
  61. package/dist/chunk-F2CGFVIZ.mjs.map +1 -0
  62. package/dist/{chunk-R5MKQN6D.mjs → chunk-FBLSJQWK.mjs} +3 -3
  63. package/dist/{chunk-BGB7JHIU.mjs → chunk-FMGZCOJC.mjs} +5 -3
  64. package/dist/{chunk-BGB7JHIU.mjs.map → chunk-FMGZCOJC.mjs.map} +1 -1
  65. package/dist/{chunk-UTVSYS6S.mjs → chunk-FNSIQ2B7.mjs} +18 -6
  66. package/dist/chunk-FNSIQ2B7.mjs.map +1 -0
  67. package/dist/{chunk-JWANK42G.mjs → chunk-FUZ2JNTZ.mjs} +3 -3
  68. package/dist/{chunk-CRYIEYZZ.mjs → chunk-HAJWE62X.mjs} +66 -42
  69. package/dist/chunk-HAJWE62X.mjs.map +1 -0
  70. package/dist/{chunk-CWFWRZWU.mjs → chunk-KSN33A6I.mjs} +3 -2
  71. package/dist/{chunk-CWFWRZWU.mjs.map → chunk-KSN33A6I.mjs.map} +1 -1
  72. package/dist/chunk-KYTHGFFY.mjs +866 -0
  73. package/dist/chunk-KYTHGFFY.mjs.map +1 -0
  74. package/dist/{chunk-QKGCW37O.mjs → chunk-LDFM46LV.mjs} +5 -3
  75. package/dist/{chunk-QKGCW37O.mjs.map → chunk-LDFM46LV.mjs.map} +1 -1
  76. package/dist/chunk-LQNDBPHU.mjs +142 -0
  77. package/dist/chunk-LQNDBPHU.mjs.map +1 -0
  78. package/dist/{chunk-E3I2VDHZ.mjs → chunk-M2PYXSAF.mjs} +6 -4
  79. package/dist/{chunk-E3I2VDHZ.mjs.map → chunk-M2PYXSAF.mjs.map} +1 -1
  80. package/dist/{chunk-DELCADNF.mjs → chunk-ODVKRIVN.mjs} +30 -30
  81. package/dist/{chunk-HR3A4H4E.mjs → chunk-PEJL2T2K.mjs} +13 -11
  82. package/dist/{chunk-HR3A4H4E.mjs.map → chunk-PEJL2T2K.mjs.map} +1 -1
  83. package/dist/{chunk-OGNGPI3M.mjs → chunk-PL55YKT4.mjs} +2 -2
  84. package/dist/{chunk-S6EZVRZC.mjs → chunk-PNSJC6PC.mjs} +5 -28
  85. package/dist/chunk-PNSJC6PC.mjs.map +1 -0
  86. package/dist/{chunk-TDRA5EZI.mjs → chunk-PUREEN2J.mjs} +7 -7
  87. package/dist/chunk-QFS5CENY.mjs +659 -0
  88. package/dist/chunk-QFS5CENY.mjs.map +1 -0
  89. package/dist/chunk-RSN7NH2J.mjs +250 -0
  90. package/dist/chunk-RSN7NH2J.mjs.map +1 -0
  91. package/dist/{chunk-UDREPVEY.mjs → chunk-RVSMEZE3.mjs} +12 -78
  92. package/dist/chunk-RVSMEZE3.mjs.map +1 -0
  93. package/dist/{chunk-SRWPHN2N.mjs → chunk-S64IYJ6Y.mjs} +2 -2
  94. package/dist/{chunk-ZG3NQI77.mjs → chunk-SMD7OEUW.mjs} +6 -4
  95. package/dist/{chunk-ZG3NQI77.mjs.map → chunk-SMD7OEUW.mjs.map} +1 -1
  96. package/dist/{chunk-NJYNJLT7.mjs → chunk-SWFB3A3G.mjs} +2 -2
  97. package/dist/{chunk-RXBQ7KXF.mjs → chunk-USXGNKWJ.mjs} +98 -44
  98. package/dist/chunk-USXGNKWJ.mjs.map +1 -0
  99. package/dist/{chunk-OJV6V7YZ.mjs → chunk-VL7V52YD.mjs} +27 -20
  100. package/dist/chunk-VL7V52YD.mjs.map +1 -0
  101. package/dist/{chunk-2ZZJTBTE.mjs → chunk-WJZ3IYET.mjs} +2 -2
  102. package/dist/chunk-XAJAMVAG.mjs +1720 -0
  103. package/dist/chunk-XAJAMVAG.mjs.map +1 -0
  104. package/dist/chunk-YIJ5QVJ6.mjs +277 -0
  105. package/dist/chunk-YIJ5QVJ6.mjs.map +1 -0
  106. package/dist/{chunk-T6AMRENK.mjs → chunk-YRW5NKD7.mjs} +148 -112
  107. package/dist/chunk-YRW5NKD7.mjs.map +1 -0
  108. package/dist/chunk-ZMJKG2UI.mjs +71 -0
  109. package/dist/chunk-ZMJKG2UI.mjs.map +1 -0
  110. package/dist/confirm.d.mts +48 -0
  111. package/dist/confirm.d.ts +48 -0
  112. package/dist/confirm.js +334 -0
  113. package/dist/confirm.js.map +1 -0
  114. package/dist/confirm.mjs +20 -0
  115. package/dist/datePicker.d.mts +256 -14
  116. package/dist/datePicker.d.ts +256 -14
  117. package/dist/datePicker.js +1624 -145
  118. package/dist/datePicker.js.map +1 -1
  119. package/dist/datePicker.mjs +19 -6
  120. package/dist/dialog.d.mts +166 -0
  121. package/dist/dialog.d.ts +166 -0
  122. package/dist/dialog.js +362 -0
  123. package/dist/dialog.js.map +1 -0
  124. package/dist/dialog.mjs +45 -0
  125. package/dist/emptyState.d.mts +17 -0
  126. package/dist/emptyState.d.ts +17 -0
  127. package/dist/emptyState.js +253 -0
  128. package/dist/emptyState.js.map +1 -0
  129. package/dist/emptyState.mjs +12 -0
  130. package/dist/emptyState.mjs.map +1 -0
  131. package/dist/errorState.d.mts +18 -0
  132. package/dist/errorState.d.ts +18 -0
  133. package/dist/{displayFile.js → errorState.js} +107 -156
  134. package/dist/errorState.js.map +1 -0
  135. package/dist/errorState.mjs +15 -0
  136. package/dist/errorState.mjs.map +1 -0
  137. package/dist/fileUpload.d.mts +197 -0
  138. package/dist/fileUpload.d.ts +197 -0
  139. package/dist/fileUpload.js +1483 -0
  140. package/dist/fileUpload.js.map +1 -0
  141. package/dist/fileUpload.mjs +65 -0
  142. package/dist/fileUpload.mjs.map +1 -0
  143. package/dist/flowMap.mjs +7 -6
  144. package/dist/flowMap.mjs.map +1 -1
  145. package/dist/image.js +1195 -429
  146. package/dist/image.js.map +1 -1
  147. package/dist/image.mjs +8 -6
  148. package/dist/index.d.ts +7 -2
  149. package/dist/index.js +8606 -4087
  150. package/dist/index.js.map +1 -1
  151. package/dist/index.mjs +314 -152
  152. package/dist/inlineError.d.mts +16 -0
  153. package/dist/inlineError.d.ts +16 -0
  154. package/dist/inlineError.js +297 -0
  155. package/dist/inlineError.js.map +1 -0
  156. package/dist/inlineError.mjs +15 -0
  157. package/dist/inlineError.mjs.map +1 -0
  158. package/dist/input.mjs +8 -7
  159. package/dist/jsonEditor.mjs +3 -2
  160. package/dist/list.mjs +7 -6
  161. package/dist/loading.mjs +8 -6
  162. package/dist/markdown.mjs +7 -6
  163. package/dist/markdown.mjs.map +1 -1
  164. package/dist/menu.mjs +9 -8
  165. package/dist/modal.js +2 -1
  166. package/dist/modal.js.map +1 -1
  167. package/dist/modal.mjs +7 -5
  168. package/dist/process.d.mts +33 -75
  169. package/dist/process.d.ts +33 -75
  170. package/dist/process.js +1275 -203
  171. package/dist/process.js.map +1 -1
  172. package/dist/process.mjs +12 -9
  173. package/dist/scrollToLoad.mjs +4 -3
  174. package/dist/select.mjs +10 -9
  175. package/dist/skeleton.d.mts +15 -1
  176. package/dist/skeleton.d.ts +15 -1
  177. package/dist/skeleton.js +114 -2
  178. package/dist/skeleton.js.map +1 -1
  179. package/dist/skeleton.mjs +6 -3
  180. package/dist/stepper.mjs +4 -3
  181. package/dist/tab.mjs +10 -9
  182. package/dist/table.d.mts +269 -85
  183. package/dist/table.d.ts +269 -85
  184. package/dist/table.js +5102 -3153
  185. package/dist/table.js.map +1 -1
  186. package/dist/table.mjs +21 -19
  187. package/dist/theme.js +1766 -432
  188. package/dist/theme.js.map +1 -1
  189. package/dist/theme.mjs +32 -25
  190. package/dist/timeline.mjs +4 -3
  191. package/dist/toast.d.mts +49 -0
  192. package/dist/toast.d.ts +49 -0
  193. package/dist/toast.js +175 -0
  194. package/dist/toast.js.map +1 -0
  195. package/dist/toast.mjs +9 -0
  196. package/dist/toast.mjs.map +1 -0
  197. package/dist/toggleButtonGroup.mjs +3 -2
  198. package/dist/useForm.d.mts +270 -86
  199. package/dist/useForm.d.ts +270 -86
  200. package/dist/useForm.js +4672 -2727
  201. package/dist/useForm.js.map +1 -1
  202. package/dist/useForm.mjs +18 -16
  203. package/dist/useSearch.mjs +13 -12
  204. package/dist/variablesRenderer.mjs +8 -7
  205. package/package.json +3 -3
  206. package/dist/AutocompleteField-ZKNU2IRR.mjs +0 -181
  207. package/dist/AutocompleteField-ZKNU2IRR.mjs.map +0 -1
  208. package/dist/AvatarField-SAODT3CZ.mjs +0 -275
  209. package/dist/AvatarField-SAODT3CZ.mjs.map +0 -1
  210. package/dist/DateField-ZYMZFHL4.mjs.map +0 -1
  211. package/dist/DateTimeField-TPTJ7YIZ.mjs.map +0 -1
  212. package/dist/FileUploadField-NTMWBJER.mjs +0 -78
  213. package/dist/FileUploadField-NTMWBJER.mjs.map +0 -1
  214. package/dist/chunk-24XDGNJ6.mjs.map +0 -1
  215. package/dist/chunk-27KYFU7R.mjs +0 -30
  216. package/dist/chunk-27KYFU7R.mjs.map +0 -1
  217. package/dist/chunk-AAH2O24U.mjs +0 -325
  218. package/dist/chunk-AAH2O24U.mjs.map +0 -1
  219. package/dist/chunk-CRYIEYZZ.mjs.map +0 -1
  220. package/dist/chunk-EEH7HACG.mjs +0 -249
  221. package/dist/chunk-EEH7HACG.mjs.map +0 -1
  222. package/dist/chunk-EKPULYPU.mjs +0 -497
  223. package/dist/chunk-EKPULYPU.mjs.map +0 -1
  224. package/dist/chunk-OJV6V7YZ.mjs.map +0 -1
  225. package/dist/chunk-RXBQ7KXF.mjs.map +0 -1
  226. package/dist/chunk-S6EZVRZC.mjs.map +0 -1
  227. package/dist/chunk-SGCUDWO3.mjs +0 -396
  228. package/dist/chunk-SGCUDWO3.mjs.map +0 -1
  229. package/dist/chunk-T6AMRENK.mjs.map +0 -1
  230. package/dist/chunk-UDREPVEY.mjs.map +0 -1
  231. package/dist/chunk-UTVSYS6S.mjs.map +0 -1
  232. package/dist/chunk-XIMFP6RB.mjs +0 -161
  233. package/dist/chunk-XIMFP6RB.mjs.map +0 -1
  234. package/dist/displayFile.d.mts +0 -95
  235. package/dist/displayFile.d.ts +0 -95
  236. package/dist/displayFile.js.map +0 -1
  237. package/dist/displayFile.mjs +0 -19
  238. package/dist/fileUploader.d.mts +0 -86
  239. package/dist/fileUploader.d.ts +0 -86
  240. package/dist/fileUploader.js +0 -722
  241. package/dist/fileUploader.js.map +0 -1
  242. package/dist/fileUploader.mjs +0 -16
  243. /package/dist/{chunk-V26V2S3W.mjs.map → chunk-3O3N6X6D.mjs.map} +0 -0
  244. /package/dist/{chunk-UGMRJMFZ.mjs.map → chunk-BO5CU4ZM.mjs.map} +0 -0
  245. /package/dist/{chunk-R5MKQN6D.mjs.map → chunk-FBLSJQWK.mjs.map} +0 -0
  246. /package/dist/{chunk-JWANK42G.mjs.map → chunk-FUZ2JNTZ.mjs.map} +0 -0
  247. /package/dist/{chunk-DELCADNF.mjs.map → chunk-ODVKRIVN.mjs.map} +0 -0
  248. /package/dist/{chunk-OGNGPI3M.mjs.map → chunk-PL55YKT4.mjs.map} +0 -0
  249. /package/dist/{chunk-TDRA5EZI.mjs.map → chunk-PUREEN2J.mjs.map} +0 -0
  250. /package/dist/{chunk-SRWPHN2N.mjs.map → chunk-S64IYJ6Y.mjs.map} +0 -0
  251. /package/dist/{chunk-NJYNJLT7.mjs.map → chunk-SWFB3A3G.mjs.map} +0 -0
  252. /package/dist/{chunk-2ZZJTBTE.mjs.map → chunk-WJZ3IYET.mjs.map} +0 -0
  253. /package/dist/{displayFile.mjs.map → confirm.mjs.map} +0 -0
  254. /package/dist/{fileUploader.mjs.map → dialog.mjs.map} +0 -0
@@ -0,0 +1,1483 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/elemental/FileUpload/index.ts
31
+ var FileUpload_exports = {};
32
+ __export(FileUpload_exports, {
33
+ ARCHIVE_FILE_ICON_STYLE: () => ARCHIVE_FILE_ICON_STYLE,
34
+ FileUpload: () => FileUpload,
35
+ TYPE_COLOR_FALLBACKS: () => TYPE_COLOR_FALLBACKS,
36
+ UNKNOWN_FILE_ICON_STYLE: () => UNKNOWN_FILE_ICON_STYLE,
37
+ createFileUploadId: () => createFileUploadId,
38
+ createFileUploadItem: () => createFileUploadItem,
39
+ fileUploadButtonSx: () => fileUploadButtonSx,
40
+ fileUploadDropzoneSx: () => fileUploadDropzoneSx,
41
+ fileUploadIconWellSx: () => fileUploadIconWellSx,
42
+ fileUploadItemSx: () => fileUploadItemSx,
43
+ fileUploadLibIconSx: () => fileUploadLibIconSx,
44
+ fileUploadRootSx: () => fileUploadRootSx,
45
+ fileUploadThumbSx: () => fileUploadThumbSx,
46
+ fileUploadTileIconWellSx: () => fileUploadTileIconWellSx,
47
+ fileUploadTileLibIconSx: () => fileUploadTileLibIconSx,
48
+ fileUploadTileListSx: () => fileUploadTileListSx,
49
+ fileUploadTileMediaSx: () => fileUploadTileMediaSx,
50
+ fileUploadTileProgressSx: () => fileUploadTileProgressSx,
51
+ fileUploadTileRemoveSx: () => fileUploadTileRemoveSx,
52
+ fileUploadTileSx: () => fileUploadTileSx,
53
+ formatFileSize: () => formatFileSize,
54
+ getFileExtension: () => getFileExtension,
55
+ isImageFile: () => isImageFile,
56
+ resolveFileIconStyle: () => resolveFileIconStyle,
57
+ validateFiles: () => validateFiles
58
+ });
59
+ module.exports = __toCommonJS(FileUpload_exports);
60
+
61
+ // src/components/elemental/FileUpload/src/FileUpload.tsx
62
+ var import_react2 = require("react");
63
+
64
+ // src/_utils/_func/sx.ts
65
+ function flattenSx(part) {
66
+ if (part == null || typeof part === "boolean") {
67
+ return [];
68
+ }
69
+ if (Array.isArray(part)) {
70
+ return part.flatMap(flattenSx);
71
+ }
72
+ if (typeof part === "function" || typeof part === "object") {
73
+ return [part];
74
+ }
75
+ return [];
76
+ }
77
+ function mergeSx(...parts) {
78
+ const list = parts.flatMap(flattenSx);
79
+ if (list.length === 0) {
80
+ return void 0;
81
+ }
82
+ if (list.length === 1) {
83
+ return list[0];
84
+ }
85
+ return list;
86
+ }
87
+
88
+ // src/components/elemental/Box/src/index.ts
89
+ var import_Box = __toESM(require("@mui/material/Box"));
90
+ var import_Stack = __toESM(require("@mui/material/Stack"));
91
+ var import_Grid = __toESM(require("@mui/material/Grid"));
92
+
93
+ // src/components/elemental/Typography/src/Typography.ts
94
+ var import_Typography = __toESM(require("@mui/material/Typography"));
95
+
96
+ // src/components/elemental/Button/src/Button/Button.tsx
97
+ var import_Button = __toESM(require("@mui/material/Button"));
98
+ var import_jsx_runtime = require("react/jsx-runtime");
99
+ function Button(p) {
100
+ const { children, slotProps, ...rest } = p;
101
+ const { sx, ...boxRest } = slotProps?.innerBox ?? {};
102
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, { ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
103
+ import_Box.default,
104
+ {
105
+ ...boxRest,
106
+ sx: mergeSx(
107
+ {
108
+ textOverflow: "ellipsis",
109
+ overflow: "hidden",
110
+ whiteSpace: "pre"
111
+ },
112
+ sx
113
+ ),
114
+ children
115
+ }
116
+ ) });
117
+ }
118
+
119
+ // src/components/elemental/Button/src/IconButton/IconButton.tsx
120
+ var import_react = require("react");
121
+ var import_IconButton = __toESM(require("@mui/material/IconButton"));
122
+
123
+ // src/components/elemental/Tooltip/src/Tooltip/index.ts
124
+ var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
125
+
126
+ // src/components/elemental/Button/src/IconButton/IconButton.tsx
127
+ var import_jsx_runtime2 = require("react/jsx-runtime");
128
+ var IconButton = (0, import_react.forwardRef)(({
129
+ title = "",
130
+ children,
131
+ color,
132
+ size,
133
+ slotProps,
134
+ selected,
135
+ className,
136
+ ...props
137
+ }, ref) => {
138
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
139
+ import_Tooltip.default,
140
+ {
141
+ title,
142
+ slotProps: {
143
+ popper: {
144
+ sx: {
145
+ textTransform: "capitalize"
146
+ }
147
+ },
148
+ ...slotProps?.tooltip
149
+ },
150
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_Box.default, { component: "span", sx: { width: "fit-content" }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
151
+ import_IconButton.default,
152
+ {
153
+ ref,
154
+ color,
155
+ size,
156
+ className: [className, selected ? "Mui-selected" : ""].filter(Boolean).join(" "),
157
+ ...props,
158
+ children
159
+ }
160
+ ) })
161
+ }
162
+ );
163
+ });
164
+ var IconButton_default = IconButton;
165
+
166
+ // src/components/elemental/Form/src/FormLabel/FormLabel.tsx
167
+ var import_FormLabel = __toESM(require("@mui/material/FormLabel"));
168
+ var import_jsx_runtime3 = require("react/jsx-runtime");
169
+ function MuiFormLabel(props) {
170
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_FormLabel.default, { ...props });
171
+ }
172
+
173
+ // src/components/elemental/Form/src/index.ts
174
+ var import_FormControl = __toESM(require("@mui/material/FormControl"));
175
+ var import_FormHelperText = __toESM(require("@mui/material/FormHelperText"));
176
+ var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
177
+ var import_InputLabel = __toESM(require("@mui/material/InputLabel"));
178
+
179
+ // src/components/elemental/Progress/src/LinearProgress.tsx
180
+ var import_LinearProgress = __toESM(require("@mui/material/LinearProgress"));
181
+ var import_jsx_runtime4 = require("react/jsx-runtime");
182
+ var LinearProgress = (props) => {
183
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_LinearProgress.default, { ...props });
184
+ };
185
+
186
+ // src/components/Icons/MuiIcon/index.ts
187
+ var import_ArrowRightAlt = __toESM(require("@mui/icons-material/ArrowRightAlt"));
188
+ var import_DescriptionOutlined = __toESM(require("@mui/icons-material/DescriptionOutlined"));
189
+ var import_Description = __toESM(require("@mui/icons-material/Description"));
190
+ var import_PictureAsPdf = __toESM(require("@mui/icons-material/PictureAsPdf"));
191
+ var import_AudioFile = __toESM(require("@mui/icons-material/AudioFile"));
192
+ var import_VideoFile = __toESM(require("@mui/icons-material/VideoFile"));
193
+ var import_TableChart = __toESM(require("@mui/icons-material/TableChart"));
194
+ var import_FolderZip = __toESM(require("@mui/icons-material/FolderZip"));
195
+ var import_InsertDriveFile = __toESM(require("@mui/icons-material/InsertDriveFile"));
196
+ var import_ImageOutlined = __toESM(require("@mui/icons-material/ImageOutlined"));
197
+ var import_LayersOutlined = __toESM(require("@mui/icons-material/LayersOutlined"));
198
+ var import_TextFormat = __toESM(require("@mui/icons-material/TextFormat"));
199
+ var import_Remove = __toESM(require("@mui/icons-material/Remove"));
200
+ var import_PostAdd = __toESM(require("@mui/icons-material/PostAdd"));
201
+ var import_ErrorOutline = __toESM(require("@mui/icons-material/ErrorOutline"));
202
+ var import_QuestionMarkOutlined = __toESM(require("@mui/icons-material/QuestionMarkOutlined"));
203
+ var import_MeetingRoomOutlined = __toESM(require("@mui/icons-material/MeetingRoomOutlined"));
204
+ var import_PlaylistRemove = __toESM(require("@mui/icons-material/PlaylistRemove"));
205
+ var import_ChecklistRtl = __toESM(require("@mui/icons-material/ChecklistRtl"));
206
+ var import_HideImageOutlined = __toESM(require("@mui/icons-material/HideImageOutlined"));
207
+ var import_RemoveRedEyeTwoTone = __toESM(require("@mui/icons-material/RemoveRedEyeTwoTone"));
208
+ var import_PhotoSizeSelectLarge = __toESM(require("@mui/icons-material/PhotoSizeSelectLarge"));
209
+ var import_LockPersonOutlined = __toESM(require("@mui/icons-material/LockPersonOutlined"));
210
+ var import_Person = __toESM(require("@mui/icons-material/Person"));
211
+ var import_InsertEmoticon = __toESM(require("@mui/icons-material/InsertEmoticon"));
212
+ var import_RemoveDoneOutlined = __toESM(require("@mui/icons-material/RemoveDoneOutlined"));
213
+ var import_Tag = __toESM(require("@mui/icons-material/Tag"));
214
+ var import_Audiotrack = __toESM(require("@mui/icons-material/Audiotrack"));
215
+ var import_Videocam = __toESM(require("@mui/icons-material/Videocam"));
216
+ var import_Code = __toESM(require("@mui/icons-material/Code"));
217
+ var import_Equalizer = __toESM(require("@mui/icons-material/Equalizer"));
218
+ var import_PivotTableChart = __toESM(require("@mui/icons-material/PivotTableChart"));
219
+ var import_Search = __toESM(require("@mui/icons-material/Search"));
220
+ var import_DataObject = __toESM(require("@mui/icons-material/DataObject"));
221
+ var import_SortByAlpha = __toESM(require("@mui/icons-material/SortByAlpha"));
222
+ var import_ThumbUp = __toESM(require("@mui/icons-material/ThumbUp"));
223
+ var import_AttachMoneyOutlined = __toESM(require("@mui/icons-material/AttachMoneyOutlined"));
224
+ var import_Storage = __toESM(require("@mui/icons-material/Storage"));
225
+ var import_WorkspacePremium = __toESM(require("@mui/icons-material/WorkspacePremium"));
226
+ var import_Numbers = __toESM(require("@mui/icons-material/Numbers"));
227
+ var import_Functions = __toESM(require("@mui/icons-material/Functions"));
228
+ var import_Lightbulb = __toESM(require("@mui/icons-material/Lightbulb"));
229
+ var import_CropRotate = __toESM(require("@mui/icons-material/CropRotate"));
230
+ var import_PhotoSizeSelectLarge2 = __toESM(require("@mui/icons-material/PhotoSizeSelectLarge"));
231
+ var import_CollectionsBookmark = __toESM(require("@mui/icons-material/CollectionsBookmark"));
232
+ var import_Schedule = __toESM(require("@mui/icons-material/Schedule"));
233
+ var import_Style = __toESM(require("@mui/icons-material/Style"));
234
+ var import_Crop169 = __toESM(require("@mui/icons-material/Crop169"));
235
+ var import_CropSquare = __toESM(require("@mui/icons-material/CropSquare"));
236
+ var import_GraphicEqRounded = __toESM(require("@mui/icons-material/GraphicEqRounded"));
237
+ var import_MemoryRounded = __toESM(require("@mui/icons-material/MemoryRounded"));
238
+ var import_AddCircleOutlineRounded = __toESM(require("@mui/icons-material/AddCircleOutlineRounded"));
239
+ var import_Add = __toESM(require("@mui/icons-material/Add"));
240
+ var import_Close = __toESM(require("@mui/icons-material/Close"));
241
+ var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
242
+ var import_Autorenew = __toESM(require("@mui/icons-material/Autorenew"));
243
+ var import_CheckCircle = __toESM(require("@mui/icons-material/CheckCircle"));
244
+ var import_Menu = __toESM(require("@mui/icons-material/Menu"));
245
+ var import_MoreVert = __toESM(require("@mui/icons-material/MoreVert"));
246
+ var import_MoreHoriz = __toESM(require("@mui/icons-material/MoreHoriz"));
247
+ var import_ContentCopy = __toESM(require("@mui/icons-material/ContentCopy"));
248
+ var import_ContentPaste = __toESM(require("@mui/icons-material/ContentPaste"));
249
+ var import_Cloud = __toESM(require("@mui/icons-material/Cloud"));
250
+ var import_DownloadOutlined = __toESM(require("@mui/icons-material/DownloadOutlined"));
251
+ var import_DownloadDoneOutlined = __toESM(require("@mui/icons-material/DownloadDoneOutlined"));
252
+ var import_StarBorderOutlined = __toESM(require("@mui/icons-material/StarBorderOutlined"));
253
+ var import_DeleteForever = __toESM(require("@mui/icons-material/DeleteForever"));
254
+ var import_LayersClear = __toESM(require("@mui/icons-material/LayersClear"));
255
+ var import_Check = __toESM(require("@mui/icons-material/Check"));
256
+ var import_DoneAll = __toESM(require("@mui/icons-material/DoneAll"));
257
+ var import_PowerSettingsNew = __toESM(require("@mui/icons-material/PowerSettingsNew"));
258
+ var import_Send = __toESM(require("@mui/icons-material/Send"));
259
+ var import_ZoomInMap = __toESM(require("@mui/icons-material/ZoomInMap"));
260
+ var import_ZoomOutMap = __toESM(require("@mui/icons-material/ZoomOutMap"));
261
+ var import_HomeRepairService = __toESM(require("@mui/icons-material/HomeRepairService"));
262
+ var import_Construction = __toESM(require("@mui/icons-material/Construction"));
263
+ var import_Help = __toESM(require("@mui/icons-material/Help"));
264
+ var import_EmojiFlags = __toESM(require("@mui/icons-material/EmojiFlags"));
265
+ var import_Edit = __toESM(require("@mui/icons-material/Edit"));
266
+ var import_ForkRight = __toESM(require("@mui/icons-material/ForkRight"));
267
+ var import_Settings = __toESM(require("@mui/icons-material/Settings"));
268
+ var import_Restore = __toESM(require("@mui/icons-material/Restore"));
269
+ var import_EditNote = __toESM(require("@mui/icons-material/EditNote"));
270
+ var import_HomeOutlined = __toESM(require("@mui/icons-material/HomeOutlined"));
271
+ var import_ExitToAppOutlined = __toESM(require("@mui/icons-material/ExitToAppOutlined"));
272
+ var import_WbSunnyOutlined = __toESM(require("@mui/icons-material/WbSunnyOutlined"));
273
+ var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
274
+ var import_AttachFileOutlined = __toESM(require("@mui/icons-material/AttachFileOutlined"));
275
+ var import_NoteAdd = __toESM(require("@mui/icons-material/NoteAdd"));
276
+ var import_CloudUpload = __toESM(require("@mui/icons-material/CloudUpload"));
277
+ var import_KeyboardDoubleArrowRight = __toESM(require("@mui/icons-material/KeyboardDoubleArrowRight"));
278
+ var import_KeyboardDoubleArrowLeft = __toESM(require("@mui/icons-material/KeyboardDoubleArrowLeft"));
279
+ var import_KeyboardDoubleArrowRightRounded = __toESM(require("@mui/icons-material/KeyboardDoubleArrowRightRounded"));
280
+ var import_FitScreen = __toESM(require("@mui/icons-material/FitScreen"));
281
+ var import_Fullscreen = __toESM(require("@mui/icons-material/Fullscreen"));
282
+ var import_Biotech = __toESM(require("@mui/icons-material/Biotech"));
283
+ var import_Share = __toESM(require("@mui/icons-material/Share"));
284
+ var import_FilterAlt = __toESM(require("@mui/icons-material/FilterAlt"));
285
+ var import_Sync = __toESM(require("@mui/icons-material/Sync"));
286
+ var import_PlayArrow = __toESM(require("@mui/icons-material/PlayArrow"));
287
+ var import_PauseOutlined = __toESM(require("@mui/icons-material/PauseOutlined"));
288
+ var import_Casino = __toESM(require("@mui/icons-material/Casino"));
289
+ var import_Paid = __toESM(require("@mui/icons-material/Paid"));
290
+ var import_Save = __toESM(require("@mui/icons-material/Save"));
291
+ var import_StopRounded = __toESM(require("@mui/icons-material/StopRounded"));
292
+ var import_Replay = __toESM(require("@mui/icons-material/Replay"));
293
+ var import_AccountTree = __toESM(require("@mui/icons-material/AccountTree"));
294
+ var import_Close2 = __toESM(require("@mui/icons-material/Close"));
295
+ var import_KeyboardArrowDown = __toESM(require("@mui/icons-material/KeyboardArrowDown"));
296
+ var import_KeyboardArrowRight = __toESM(require("@mui/icons-material/KeyboardArrowRight"));
297
+ var import_SearchRounded = __toESM(require("@mui/icons-material/SearchRounded"));
298
+ var import_CloseRounded = __toESM(require("@mui/icons-material/CloseRounded"));
299
+ var import_SortByAlphaRounded = __toESM(require("@mui/icons-material/SortByAlphaRounded"));
300
+ var import_FilterAltOutlined = __toESM(require("@mui/icons-material/FilterAltOutlined"));
301
+ var import_InboxOutlined = __toESM(require("@mui/icons-material/InboxOutlined"));
302
+ var import_SearchOff = __toESM(require("@mui/icons-material/SearchOff"));
303
+ var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
304
+ var import_ArrowDropDownRounded = __toESM(require("@mui/icons-material/ArrowDropDownRounded"));
305
+ var import_AccountBox = __toESM(require("@mui/icons-material/AccountBox"));
306
+ var import_Logout = __toESM(require("@mui/icons-material/Logout"));
307
+ var import_Login = __toESM(require("@mui/icons-material/Login"));
308
+ var import_Dashboard = __toESM(require("@mui/icons-material/Dashboard"));
309
+ var import_AccountTreeOutlined = __toESM(require("@mui/icons-material/AccountTreeOutlined"));
310
+ var import_HelpOutline = __toESM(require("@mui/icons-material/HelpOutline"));
311
+ var import_NavigateBefore = __toESM(require("@mui/icons-material/NavigateBefore"));
312
+ var import_NavigateNext = __toESM(require("@mui/icons-material/NavigateNext"));
313
+ var import_Person2 = __toESM(require("@mui/icons-material/Person"));
314
+ var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
315
+ var import_QuestionAnswerOutlined = __toESM(require("@mui/icons-material/QuestionAnswerOutlined"));
316
+ var import_Today = __toESM(require("@mui/icons-material/Today"));
317
+ var import_DeleteForever2 = __toESM(require("@mui/icons-material/DeleteForever"));
318
+ var import_AdsClick = __toESM(require("@mui/icons-material/AdsClick"));
319
+ var import_Fingerprint = __toESM(require("@mui/icons-material/Fingerprint"));
320
+ var import_SportsEsportsOutlined = __toESM(require("@mui/icons-material/SportsEsportsOutlined"));
321
+ var import_HelpOutlineRounded = __toESM(require("@mui/icons-material/HelpOutlineRounded"));
322
+ var import_AccountTreeOutlined2 = __toESM(require("@mui/icons-material/AccountTreeOutlined"));
323
+ var import_SmartToyOutlined = __toESM(require("@mui/icons-material/SmartToyOutlined"));
324
+ var import_AcUnit = __toESM(require("@mui/icons-material/AcUnit"));
325
+ var import_Loop = __toESM(require("@mui/icons-material/Loop"));
326
+ var import_Pending = __toESM(require("@mui/icons-material/Pending"));
327
+ var import_AllInclusive = __toESM(require("@mui/icons-material/AllInclusive"));
328
+ var import_WarningOutlined = __toESM(require("@mui/icons-material/WarningOutlined"));
329
+ var import_InfoOutlined = __toESM(require("@mui/icons-material/InfoOutlined"));
330
+ var import_AutoAwesomeRounded = __toESM(require("@mui/icons-material/AutoAwesomeRounded"));
331
+ var import_ErrorOutlineOutlined = __toESM(require("@mui/icons-material/ErrorOutlineOutlined"));
332
+ var import_Download = __toESM(require("@mui/icons-material/Download"));
333
+
334
+ // src/components/elemental/FileUpload/src/FileUpload.tsx
335
+ var import_react_file_icon = require("react-file-icon");
336
+
337
+ // src/components/elemental/FileUpload/src/theme.ts
338
+ var fileUploadRootSx = {
339
+ "--fu-border": "var(--mui-palette-border-1)",
340
+ "--fu-border-hover": "var(--mui-palette-border-hover-1, var(--mui-palette-text-secondary))",
341
+ "--fu-border-active": "color-mix(in srgb, var(--mui-palette-text-secondary) 65%, transparent)",
342
+ "--fu-border-error": "var(--mui-palette-error-main)",
343
+ "--fu-surface": "color-mix(in srgb, var(--mui-palette-background-paper) 78%, transparent)",
344
+ "--fu-surface-hover": "color-mix(in srgb, var(--mui-palette-background-paper) 92%, transparent)",
345
+ "--fu-surface-active": "color-mix(in srgb, var(--mui-palette-primary-main) 8%, var(--mui-palette-background-paper))",
346
+ "--fu-item-bg": "color-mix(in srgb, var(--mui-palette-background-paper) 88%, transparent)",
347
+ "--fu-icon": "var(--mui-palette-text-secondary)",
348
+ "--fu-text": "var(--mui-palette-text-primary)",
349
+ "--fu-text-secondary": "var(--mui-palette-text-secondary)",
350
+ "--fu-shadow": "inset 0 1px 0 color-mix(in srgb, var(--mui-palette-common-white) 6%, transparent)",
351
+ "--fu-radius": "16px",
352
+ "--fu-item-radius": "12px",
353
+ display: "flex",
354
+ flexDirection: "column",
355
+ gap: 1,
356
+ width: "100%",
357
+ boxSizing: "border-box",
358
+ '[color-scheme="dark"] &': {
359
+ "--fu-surface": "color-mix(in srgb, var(--mui-palette-background-paper) 70%, transparent)",
360
+ "--fu-surface-hover": "color-mix(in srgb, var(--mui-palette-background-paper) 88%, transparent)",
361
+ "--fu-item-bg": "color-mix(in srgb, var(--mui-palette-background-paper) 82%, transparent)",
362
+ "--fu-shadow": "inset 0 1px 0 color-mix(in srgb, var(--mui-palette-common-white) 8%, transparent), 0 1px 2px rgba(0,0,0,0.18)"
363
+ }
364
+ };
365
+ var fileUploadDropzoneSx = {
366
+ display: "flex",
367
+ flexDirection: "column",
368
+ alignItems: "center",
369
+ justifyContent: "center",
370
+ textAlign: "center",
371
+ gap: 0.75,
372
+ px: 3,
373
+ py: 3.5,
374
+ minHeight: 140,
375
+ borderRadius: "var(--fu-radius)",
376
+ border: "1px dashed var(--fu-drop-border, var(--fu-border))",
377
+ backgroundColor: "var(--fu-drop-bg, var(--fu-surface))",
378
+ boxShadow: "var(--fu-shadow)",
379
+ color: "var(--fu-text-secondary)",
380
+ cursor: "pointer",
381
+ outline: "none",
382
+ boxSizing: "border-box",
383
+ transition: "border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease",
384
+ "&:hover": {
385
+ borderColor: "var(--fu-border-hover)",
386
+ backgroundColor: "var(--fu-surface-hover)"
387
+ },
388
+ "&:focus-visible": {
389
+ borderColor: "var(--fu-border-active)",
390
+ borderStyle: "solid"
391
+ },
392
+ '&[data-active="true"]': {
393
+ borderColor: "var(--fu-border-active)",
394
+ borderStyle: "solid",
395
+ backgroundColor: "var(--fu-surface-active)"
396
+ },
397
+ '&[data-error="true"]': {
398
+ "--fu-drop-border": "var(--fu-border-error)"
399
+ },
400
+ '&[data-disabled="true"]': {
401
+ opacity: 0.58,
402
+ cursor: "default",
403
+ pointerEvents: "none"
404
+ }
405
+ };
406
+ var fileUploadItemSx = {
407
+ display: "flex",
408
+ alignItems: "center",
409
+ gap: 1.25,
410
+ px: 1.25,
411
+ py: 1,
412
+ borderRadius: "var(--fu-item-radius)",
413
+ border: "1px solid var(--fu-border)",
414
+ backgroundColor: "var(--fu-item-bg)",
415
+ boxShadow: "var(--fu-shadow)",
416
+ boxSizing: "border-box",
417
+ minWidth: 0,
418
+ '&[data-status="error"]': {
419
+ borderColor: "color-mix(in srgb, var(--mui-palette-error-main) 55%, var(--fu-border))",
420
+ backgroundColor: "color-mix(in srgb, var(--mui-palette-error-main) 8%, var(--fu-item-bg))"
421
+ }
422
+ };
423
+ var fileUploadThumbSx = {
424
+ width: 36,
425
+ height: 36,
426
+ minWidth: 36,
427
+ borderRadius: "8px",
428
+ objectFit: "cover",
429
+ flexShrink: 0,
430
+ border: "1px solid var(--fu-border)",
431
+ backgroundColor: "var(--fu-item-bg)",
432
+ display: "block",
433
+ boxSizing: "border-box"
434
+ };
435
+ var fileUploadIconWellSx = {
436
+ width: 36,
437
+ height: 36,
438
+ minWidth: 36,
439
+ borderRadius: "8px",
440
+ flexShrink: 0,
441
+ display: "flex",
442
+ alignItems: "center",
443
+ justifyContent: "center",
444
+ border: "1px solid var(--fu-border)",
445
+ backgroundColor: "color-mix(in srgb, var(--mui-palette-background-paper) 55%, transparent)",
446
+ boxSizing: "border-box",
447
+ overflow: "hidden"
448
+ };
449
+ var fileUploadLibIconSx = {
450
+ width: 24,
451
+ height: 30,
452
+ lineHeight: 0,
453
+ flexShrink: 0,
454
+ // Keep library colors vivid (no opacity / filter / color overrides).
455
+ color: "unset",
456
+ filter: "none",
457
+ opacity: 1,
458
+ "& svg": {
459
+ width: "100%",
460
+ height: "100%",
461
+ display: "block",
462
+ // Prevent inherited MUI text color from washing glyph/label fills.
463
+ color: "unset"
464
+ }
465
+ };
466
+ var fileUploadButtonSx = {
467
+ alignSelf: "flex-start",
468
+ textTransform: "none",
469
+ fontWeight: 600,
470
+ fontSize: "0.8125rem",
471
+ lineHeight: 1.25,
472
+ borderRadius: "10px",
473
+ px: 1.5,
474
+ py: 0.75,
475
+ minHeight: 36,
476
+ border: "1px solid var(--fu-border)",
477
+ backgroundColor: "var(--fu-surface)",
478
+ color: "var(--fu-text)",
479
+ boxShadow: "var(--fu-shadow)",
480
+ transition: "border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease",
481
+ "&:hover": {
482
+ borderColor: "var(--fu-border-hover)",
483
+ backgroundColor: "var(--fu-surface-hover)"
484
+ },
485
+ "&:focus-visible": {
486
+ borderColor: "var(--fu-border-active)",
487
+ outline: "none"
488
+ },
489
+ '&[data-active="true"]': {
490
+ borderColor: "var(--fu-border-active)",
491
+ backgroundColor: "var(--fu-surface-active)"
492
+ },
493
+ '&[data-error="true"]': {
494
+ borderColor: "var(--fu-border-error)",
495
+ color: "var(--fu-border-error)"
496
+ },
497
+ "&.Mui-disabled": {
498
+ opacity: 0.58,
499
+ borderColor: "var(--fu-border)",
500
+ color: "var(--fu-text-secondary)"
501
+ },
502
+ "& .MuiButton-startIcon": {
503
+ marginRight: "8px",
504
+ marginLeft: 0,
505
+ color: "var(--fu-icon)"
506
+ }
507
+ };
508
+ var fileUploadTileListSx = {
509
+ display: "flex",
510
+ flexWrap: "wrap",
511
+ gap: 1.25,
512
+ m: 0,
513
+ p: 0,
514
+ listStyle: "none"
515
+ };
516
+ var fileUploadTileSx = {
517
+ "--fu-tile-size": "80px",
518
+ position: "relative",
519
+ width: "var(--fu-tile-size)",
520
+ height: "var(--fu-tile-size)",
521
+ minWidth: "var(--fu-tile-size)",
522
+ borderRadius: "12px",
523
+ border: "1px solid var(--fu-border)",
524
+ backgroundColor: "var(--fu-item-bg)",
525
+ boxShadow: "var(--fu-shadow)",
526
+ boxSizing: "border-box",
527
+ overflow: "hidden",
528
+ flexShrink: 0,
529
+ '&[data-status="error"]': {
530
+ borderColor: "color-mix(in srgb, var(--mui-palette-error-main) 55%, var(--fu-border))"
531
+ },
532
+ "&:hover .fu-tile-remove, &:focus-within .fu-tile-remove": {
533
+ opacity: 1,
534
+ pointerEvents: "auto"
535
+ }
536
+ };
537
+ var fileUploadTileMediaSx = {
538
+ width: "100%",
539
+ height: "100%",
540
+ objectFit: "cover",
541
+ display: "block",
542
+ borderRadius: "inherit"
543
+ };
544
+ var fileUploadTileIconWellSx = {
545
+ width: "100%",
546
+ height: "100%",
547
+ display: "flex",
548
+ alignItems: "center",
549
+ justifyContent: "center",
550
+ backgroundColor: "color-mix(in srgb, var(--mui-palette-background-paper) 55%, transparent)",
551
+ border: "none",
552
+ borderRadius: 0,
553
+ boxSizing: "border-box",
554
+ overflow: "hidden"
555
+ };
556
+ var fileUploadTileLibIconSx = {
557
+ width: 36,
558
+ height: 44,
559
+ lineHeight: 0,
560
+ flexShrink: 0,
561
+ color: "unset",
562
+ filter: "none",
563
+ opacity: 1,
564
+ "& svg": {
565
+ width: "100%",
566
+ height: "100%",
567
+ display: "block",
568
+ color: "unset"
569
+ }
570
+ };
571
+ var fileUploadTileRemoveSx = {
572
+ position: "absolute",
573
+ top: 4,
574
+ right: 4,
575
+ zIndex: 2,
576
+ width: 22,
577
+ height: 22,
578
+ p: 0,
579
+ opacity: 0,
580
+ pointerEvents: "none",
581
+ backgroundColor: "#fff",
582
+ color: "rgba(15, 23, 42, 0.72)",
583
+ boxShadow: "0 1px 3px rgba(0,0,0,0.22)",
584
+ border: "1px solid color-mix(in srgb, var(--mui-palette-common-black) 8%, transparent)",
585
+ transition: "opacity 140ms ease, background-color 140ms ease",
586
+ "&:hover": {
587
+ backgroundColor: "#fff",
588
+ color: "rgba(15, 23, 42, 0.92)"
589
+ },
590
+ "&.Mui-disabled": {
591
+ opacity: 0
592
+ }
593
+ };
594
+ var fileUploadTileProgressSx = {
595
+ position: "absolute",
596
+ left: 0,
597
+ right: 0,
598
+ bottom: 0,
599
+ zIndex: 1,
600
+ height: 3,
601
+ borderRadius: 0,
602
+ backgroundColor: "color-mix(in srgb, var(--mui-palette-common-black) 25%, transparent)",
603
+ "& .MuiLinearProgress-bar": {
604
+ borderRadius: 0
605
+ }
606
+ };
607
+
608
+ // src/components/elemental/FileUpload/src/utils.ts
609
+ var idSeq = 0;
610
+ function createFileUploadId() {
611
+ if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
612
+ return crypto.randomUUID();
613
+ }
614
+ idSeq += 1;
615
+ return `fu-${Date.now()}-${idSeq}`;
616
+ }
617
+ function createFileUploadItem(file) {
618
+ return {
619
+ id: createFileUploadId(),
620
+ file,
621
+ status: "idle",
622
+ progress: 0
623
+ };
624
+ }
625
+ function formatFileSize(bytes) {
626
+ if (!Number.isFinite(bytes) || bytes < 0) return "\u2014";
627
+ if (bytes < 1024) return `${bytes} B`;
628
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
629
+ if (bytes < 1024 * 1024 * 1024) {
630
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
631
+ }
632
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
633
+ }
634
+ function parseAccept(accept) {
635
+ if (!accept || !accept.trim()) return [];
636
+ return accept.split(",").map((p) => p.trim()).filter(Boolean).map((token) => {
637
+ if (token.startsWith(".")) {
638
+ return { type: "ext", value: token.toLowerCase() };
639
+ }
640
+ return { type: "mime", value: token.toLowerCase() };
641
+ });
642
+ }
643
+ function matchesAccept(file, rules) {
644
+ if (rules.length === 0) return true;
645
+ const name = file.name.toLowerCase();
646
+ const mime = (file.type || "").toLowerCase();
647
+ return rules.some((rule) => {
648
+ if (rule.type === "ext") {
649
+ return name.endsWith(rule.value);
650
+ }
651
+ if (rule.value.endsWith("/*")) {
652
+ const prefix = rule.value.slice(0, -1);
653
+ return mime.startsWith(prefix);
654
+ }
655
+ return mime === rule.value;
656
+ });
657
+ }
658
+ function validateFiles(incoming, opts) {
659
+ const rules = parseAccept(opts.accept);
660
+ const accepted = [];
661
+ const rejections = [];
662
+ const hardCap = opts.multiple ? opts.maxFiles != null && opts.maxFiles > 0 ? opts.maxFiles : Infinity : 1;
663
+ for (const file of incoming) {
664
+ const errors = [];
665
+ if (!matchesAccept(file, rules)) {
666
+ errors.push("file-invalid-type");
667
+ }
668
+ if (opts.maxSize != null && opts.maxSize > 0 && file.size > opts.maxSize) {
669
+ errors.push("file-too-large");
670
+ }
671
+ if (opts.currentCount + accepted.length >= hardCap) {
672
+ errors.push("too-many-files");
673
+ }
674
+ if (errors.length > 0) {
675
+ rejections.push({ file, errors });
676
+ } else {
677
+ accepted.push(file);
678
+ }
679
+ }
680
+ return { accepted, rejections };
681
+ }
682
+ var MIME_TO_EXT = {
683
+ "application/pdf": "pdf",
684
+ "application/zip": "zip",
685
+ "application/x-zip-compressed": "zip",
686
+ "application/gzip": "gz",
687
+ "application/x-gzip": "gz",
688
+ "application/x-rar-compressed": "rar",
689
+ "application/vnd.rar": "rar",
690
+ "application/x-7z-compressed": "7z",
691
+ "application/x-tar": "tar",
692
+ "application/json": "json",
693
+ "application/msword": "doc",
694
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
695
+ "application/vnd.ms-excel": "xls",
696
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
697
+ "application/vnd.ms-powerpoint": "ppt",
698
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
699
+ "text/plain": "txt",
700
+ "text/csv": "csv",
701
+ "text/markdown": "md",
702
+ "image/jpeg": "jpg",
703
+ "image/png": "png",
704
+ "image/gif": "gif",
705
+ "image/webp": "webp",
706
+ "image/svg+xml": "svg",
707
+ "audio/mpeg": "mp3",
708
+ "audio/wav": "wav",
709
+ "video/mp4": "mp4",
710
+ "video/webm": "webm"
711
+ };
712
+ function getFileExtension(file) {
713
+ const name = file.name || "";
714
+ const dot = name.lastIndexOf(".");
715
+ if (dot > 0 && dot < name.length - 1) {
716
+ return name.slice(dot + 1).toLowerCase();
717
+ }
718
+ const mime = (file.type || "").toLowerCase();
719
+ return MIME_TO_EXT[mime] ?? "";
720
+ }
721
+ function isImageFile(file) {
722
+ return typeof file.type === "string" && file.type.startsWith("image/");
723
+ }
724
+ var EXT_ALIASES = {
725
+ "7z": "7zip",
726
+ tgz: "gz",
727
+ tbz: "gz",
728
+ tbz2: "gz"
729
+ };
730
+ var ARCHIVE_FILE_ICON_STYLE = {
731
+ type: "compressed",
732
+ labelColor: "#E2A903",
733
+ labelTextColor: "#1A1A1A",
734
+ labelUppercase: true,
735
+ foldColor: "#C48E02",
736
+ color: "#F6E7A8",
737
+ glyphColor: "rgba(40, 30, 0, 0.35)"
738
+ };
739
+ var ARCHIVE_EXTS = /* @__PURE__ */ new Set([
740
+ "zip",
741
+ "zipx",
742
+ "rar",
743
+ "7z",
744
+ "7zip",
745
+ "gz",
746
+ "tar",
747
+ "tgz",
748
+ "sitx",
749
+ "bz2"
750
+ ]);
751
+ var TYPE_COLOR_FALLBACKS = {
752
+ "3d": {
753
+ type: "3d",
754
+ labelColor: "#5FB9AD",
755
+ foldColor: "#4A9E94",
756
+ color: "#E5F6F4"
757
+ },
758
+ acrobat: {
759
+ type: "acrobat",
760
+ labelColor: "#D93831",
761
+ foldColor: "#B82E28",
762
+ color: "#FCE8E7"
763
+ },
764
+ android: {
765
+ type: "android",
766
+ labelColor: "#3DDC84",
767
+ foldColor: "#2BB86A",
768
+ color: "#E6FBF0"
769
+ },
770
+ audio: {
771
+ type: "audio",
772
+ labelColor: "#9B59B6",
773
+ foldColor: "#7E3F9A",
774
+ color: "#F3E9F8"
775
+ },
776
+ binary: {
777
+ type: "binary",
778
+ labelColor: "#E67E22",
779
+ foldColor: "#C86A1A",
780
+ color: "#FDF0E4"
781
+ },
782
+ code: {
783
+ type: "code",
784
+ labelColor: "#3498DB",
785
+ foldColor: "#2A7AB0",
786
+ color: "#E7F3FB"
787
+ },
788
+ compressed: { ...ARCHIVE_FILE_ICON_STYLE },
789
+ document: {
790
+ type: "document",
791
+ labelColor: "#5B8DEF",
792
+ labelUppercase: true,
793
+ foldColor: "#4A75C9",
794
+ color: "#E8EEF9",
795
+ glyphColor: "rgba(40, 60, 120, 0.35)"
796
+ },
797
+ drive: {
798
+ type: "drive",
799
+ labelColor: "#27AE60",
800
+ foldColor: "#1E8A4B",
801
+ color: "#E5F7ED"
802
+ },
803
+ font: {
804
+ type: "font",
805
+ labelColor: "#8E44AD",
806
+ foldColor: "#71368A",
807
+ color: "#F2E8F7"
808
+ },
809
+ image: {
810
+ type: "image",
811
+ labelColor: "#1ABC9C",
812
+ foldColor: "#14967C",
813
+ color: "#E4F8F3"
814
+ },
815
+ presentation: {
816
+ type: "presentation",
817
+ labelColor: "#D35400",
818
+ labelUppercase: true,
819
+ foldColor: "#A84300",
820
+ color: "#FCEADE",
821
+ glyphColor: "rgba(120, 50, 0, 0.35)"
822
+ },
823
+ settings: {
824
+ type: "settings",
825
+ labelColor: "#16A085",
826
+ foldColor: "#117A65",
827
+ color: "#E4F6F2"
828
+ },
829
+ spreadsheet: {
830
+ type: "spreadsheet",
831
+ labelColor: "#2D7D46",
832
+ labelUppercase: true,
833
+ foldColor: "#246338",
834
+ color: "#E5F2EA",
835
+ glyphColor: "rgba(20, 60, 30, 0.35)"
836
+ },
837
+ vector: {
838
+ type: "vector",
839
+ labelColor: "#FF7F18",
840
+ foldColor: "#D96A12",
841
+ color: "#FFF0E4"
842
+ },
843
+ video: {
844
+ type: "video",
845
+ labelColor: "#E74C3C",
846
+ foldColor: "#C0392B",
847
+ color: "#FCE9E7"
848
+ }
849
+ };
850
+ var UNKNOWN_FILE_ICON_STYLE = {
851
+ type: "document",
852
+ labelColor: "#5B8DEF",
853
+ labelTextColor: "#FFFFFF",
854
+ labelUppercase: true,
855
+ foldColor: "#4A75C9",
856
+ color: "#E8EEF9",
857
+ glyphColor: "rgba(40, 60, 120, 0.35)"
858
+ };
859
+ var MONO_PAGE_COLORS = /* @__PURE__ */ new Set([
860
+ "",
861
+ "whitesmoke",
862
+ "#fff",
863
+ "#ffffff",
864
+ "white",
865
+ "#f5f5f5",
866
+ "#fafafa"
867
+ ]);
868
+ function hasVividColor(style) {
869
+ if (typeof style.labelColor === "string" && style.labelColor.trim()) {
870
+ return true;
871
+ }
872
+ if (typeof style.color === "string") {
873
+ const c = style.color.trim().toLowerCase();
874
+ if (c && !MONO_PAGE_COLORS.has(c)) return true;
875
+ }
876
+ return false;
877
+ }
878
+ function mergeColorEnrichment(lib, enrichment) {
879
+ return {
880
+ ...enrichment,
881
+ ...lib,
882
+ labelColor: lib.labelColor ?? enrichment.labelColor,
883
+ labelTextColor: lib.labelTextColor ?? enrichment.labelTextColor,
884
+ foldColor: lib.foldColor ?? enrichment.foldColor,
885
+ color: lib.color ?? enrichment.color,
886
+ glyphColor: lib.glyphColor ?? enrichment.glyphColor,
887
+ labelUppercase: lib.labelUppercase ?? enrichment.labelUppercase,
888
+ type: lib.type ?? enrichment.type
889
+ };
890
+ }
891
+ function resolveFileIconStyle(file, defaultStyles2) {
892
+ const rawExt = getFileExtension(file);
893
+ const styleKey = (EXT_ALIASES[rawExt] ?? rawExt).toLowerCase();
894
+ const displayExt = rawExt || styleKey || void 0;
895
+ const lib = {
896
+ ...(styleKey ? defaultStyles2[styleKey] : void 0) ?? {}
897
+ };
898
+ const isArchive = ARCHIVE_EXTS.has(rawExt) || ARCHIVE_EXTS.has(styleKey) || lib.type === "compressed";
899
+ let style;
900
+ if (isArchive) {
901
+ style = { ...lib, ...ARCHIVE_FILE_ICON_STYLE };
902
+ } else if (hasVividColor(lib)) {
903
+ style = { ...lib };
904
+ } else if (lib.type && TYPE_COLOR_FALLBACKS[lib.type]) {
905
+ style = mergeColorEnrichment(lib, TYPE_COLOR_FALLBACKS[lib.type]);
906
+ } else {
907
+ style = mergeColorEnrichment(lib, UNKNOWN_FILE_ICON_STYLE);
908
+ }
909
+ return {
910
+ extension: displayExt,
911
+ styleKey,
912
+ style
913
+ };
914
+ }
915
+
916
+ // src/components/elemental/FileUpload/src/FileUpload.tsx
917
+ var import_jsx_runtime5 = require("react/jsx-runtime");
918
+ function mergeSx2(...parts) {
919
+ const out = [];
920
+ for (const p of parts) {
921
+ if (!p) continue;
922
+ if (Array.isArray(p)) out.push(...p);
923
+ else out.push(p);
924
+ }
925
+ return out;
926
+ }
927
+ var FileUpload = (0, import_react2.forwardRef)(
928
+ function FileUpload2(props, ref) {
929
+ const {
930
+ value: valueProp,
931
+ defaultValue,
932
+ onChange,
933
+ onRemove,
934
+ onReject,
935
+ multiple = true,
936
+ accept,
937
+ maxSize,
938
+ maxFiles,
939
+ disabled = false,
940
+ hideDropzone = false,
941
+ disableRemove = false,
942
+ readOnly = false,
943
+ label,
944
+ name,
945
+ helperText,
946
+ error = false,
947
+ required = false,
948
+ variant = "dropzone",
949
+ itemVariant = "row",
950
+ buttonLabel = "Upload file",
951
+ dropzoneTitle = "Drag & drop files here",
952
+ dropzoneDescription = "or click to browse",
953
+ id: idProp,
954
+ className,
955
+ sx,
956
+ "data-testid": dataTestId = "file-upload"
957
+ } = props;
958
+ const reactId = (0, import_react2.useId)();
959
+ const inputId = idProp ?? `file-upload-${reactId}`;
960
+ const helperId = `${inputId}-helper`;
961
+ const inputRef = (0, import_react2.useRef)(null);
962
+ const isControlled = valueProp !== void 0;
963
+ const [uncontrolled, setUncontrolled] = (0, import_react2.useState)(
964
+ () => defaultValue ?? []
965
+ );
966
+ const items = (0, import_react2.useMemo)(
967
+ () => isControlled ? valueProp ?? [] : uncontrolled,
968
+ [isControlled, valueProp, uncontrolled]
969
+ );
970
+ const [active, setActive] = (0, import_react2.useState)(false);
971
+ const dragDepth = (0, import_react2.useRef)(0);
972
+ const atCapacity = (0, import_react2.useMemo)(() => {
973
+ if (!multiple) return items.length >= 1;
974
+ if (maxFiles != null && maxFiles > 0) return items.length >= maxFiles;
975
+ return false;
976
+ }, [items.length, maxFiles, multiple]);
977
+ const commit = (0, import_react2.useCallback)(
978
+ (next) => {
979
+ if (!isControlled) setUncontrolled(next);
980
+ onChange?.(next);
981
+ },
982
+ [isControlled, onChange]
983
+ );
984
+ const ingest = (0, import_react2.useCallback)(
985
+ (fileList) => {
986
+ if (disabled) return;
987
+ const incoming = Array.from(fileList);
988
+ if (incoming.length === 0) return;
989
+ const { accepted, rejections } = validateFiles(incoming, {
990
+ accept,
991
+ maxSize,
992
+ maxFiles,
993
+ currentCount: items.length,
994
+ multiple
995
+ });
996
+ if (rejections.length > 0) {
997
+ onReject?.(rejections);
998
+ }
999
+ if (accepted.length === 0) return;
1000
+ const nextItems = accepted.map(createFileUploadItem);
1001
+ if (!multiple) {
1002
+ commit(nextItems.slice(0, 1));
1003
+ return;
1004
+ }
1005
+ commit([...items, ...nextItems]);
1006
+ },
1007
+ [
1008
+ accept,
1009
+ disabled,
1010
+ items,
1011
+ maxFiles,
1012
+ maxSize,
1013
+ multiple,
1014
+ onReject,
1015
+ commit
1016
+ ]
1017
+ );
1018
+ const handleRemove = (0, import_react2.useCallback)(
1019
+ (item) => {
1020
+ if (disabled) return;
1021
+ const next = items.filter((i) => i.id !== item.id);
1022
+ commit(next);
1023
+ onRemove?.(item, next);
1024
+ if (inputRef.current) inputRef.current.value = "";
1025
+ },
1026
+ [commit, disabled, items, onRemove]
1027
+ );
1028
+ const openPicker = (0, import_react2.useCallback)(() => {
1029
+ if (disabled || atCapacity) return;
1030
+ inputRef.current?.click();
1031
+ }, [atCapacity, disabled]);
1032
+ const onInputChange = (0, import_react2.useCallback)(
1033
+ (e) => {
1034
+ if (e.target.files) ingest(e.target.files);
1035
+ e.target.value = "";
1036
+ },
1037
+ [ingest]
1038
+ );
1039
+ const onDragEnter = (0, import_react2.useCallback)(
1040
+ (e) => {
1041
+ e.preventDefault();
1042
+ e.stopPropagation();
1043
+ if (disabled || atCapacity) return;
1044
+ dragDepth.current += 1;
1045
+ setActive(true);
1046
+ },
1047
+ [atCapacity, disabled]
1048
+ );
1049
+ const onDragLeave = (0, import_react2.useCallback)((e) => {
1050
+ e.preventDefault();
1051
+ e.stopPropagation();
1052
+ dragDepth.current = Math.max(0, dragDepth.current - 1);
1053
+ if (dragDepth.current === 0) setActive(false);
1054
+ }, []);
1055
+ const onDragOver = (0, import_react2.useCallback)((e) => {
1056
+ e.preventDefault();
1057
+ e.stopPropagation();
1058
+ }, []);
1059
+ const onDrop = (0, import_react2.useCallback)(
1060
+ (e) => {
1061
+ e.preventDefault();
1062
+ e.stopPropagation();
1063
+ dragDepth.current = 0;
1064
+ setActive(false);
1065
+ if (disabled || atCapacity) return;
1066
+ if (e.dataTransfer.files?.length) {
1067
+ ingest(e.dataTransfer.files);
1068
+ }
1069
+ },
1070
+ [atCapacity, disabled, ingest]
1071
+ );
1072
+ const queueOnly = readOnly || hideDropzone;
1073
+ const removeDisabled = readOnly || disableRemove || disabled;
1074
+ const showTrigger = !queueOnly && !atCapacity;
1075
+ const isButton = variant === "button";
1076
+ const fileInput = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1077
+ "input",
1078
+ {
1079
+ ref: inputRef,
1080
+ id: inputId,
1081
+ name,
1082
+ type: "file",
1083
+ accept,
1084
+ multiple,
1085
+ disabled,
1086
+ onChange: onInputChange,
1087
+ style: { display: "none" },
1088
+ "aria-hidden": true,
1089
+ tabIndex: -1
1090
+ }
1091
+ );
1092
+ const dragHandlers = {
1093
+ onDragEnter,
1094
+ onDragLeave,
1095
+ onDragOver,
1096
+ onDrop
1097
+ };
1098
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1099
+ import_Box.default,
1100
+ {
1101
+ ref,
1102
+ className,
1103
+ "data-testid": dataTestId,
1104
+ "data-variant": variant,
1105
+ "data-readonly": readOnly || queueOnly ? "true" : void 0,
1106
+ sx: mergeSx2(fileUploadRootSx, sx),
1107
+ children: [
1108
+ label ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1109
+ MuiFormLabel,
1110
+ {
1111
+ htmlFor: showTrigger ? inputId : void 0,
1112
+ required,
1113
+ error,
1114
+ sx: {
1115
+ mb: 0.25,
1116
+ color: error ? "error.main" : "text.secondary",
1117
+ fontSize: "0.8rem",
1118
+ fontWeight: 600
1119
+ },
1120
+ children: label
1121
+ }
1122
+ ) : null,
1123
+ fileInput,
1124
+ showTrigger ? isButton ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1125
+ Button,
1126
+ {
1127
+ type: "button",
1128
+ disableElevation: true,
1129
+ disabled,
1130
+ "aria-invalid": error || void 0,
1131
+ "aria-describedby": helperText ? helperId : void 0,
1132
+ "data-active": active ? "true" : "false",
1133
+ "data-error": error ? "true" : "false",
1134
+ "data-testid": `${dataTestId}-button`,
1135
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_CloudUpload.default, { sx: { fontSize: "1.15rem" } }),
1136
+ onClick: openPicker,
1137
+ sx: fileUploadButtonSx,
1138
+ ...dragHandlers,
1139
+ children: buttonLabel
1140
+ }
1141
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1142
+ import_Box.default,
1143
+ {
1144
+ role: "button",
1145
+ tabIndex: disabled ? -1 : 0,
1146
+ "aria-disabled": disabled || void 0,
1147
+ "aria-invalid": error || void 0,
1148
+ "aria-describedby": helperText ? helperId : void 0,
1149
+ "data-active": active ? "true" : "false",
1150
+ "data-error": error ? "true" : "false",
1151
+ "data-disabled": disabled ? "true" : "false",
1152
+ "data-testid": `${dataTestId}-dropzone`,
1153
+ sx: fileUploadDropzoneSx,
1154
+ onClick: openPicker,
1155
+ onKeyDown: (e) => {
1156
+ if (e.key === "Enter" || e.key === " ") {
1157
+ e.preventDefault();
1158
+ openPicker();
1159
+ }
1160
+ },
1161
+ ...dragHandlers,
1162
+ children: [
1163
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1164
+ import_CloudUpload.default,
1165
+ {
1166
+ "aria-hidden": true,
1167
+ sx: { fontSize: 36, color: "var(--fu-icon)", opacity: 0.9 }
1168
+ }
1169
+ ),
1170
+ typeof dropzoneTitle === "string" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1171
+ import_Typography.default,
1172
+ {
1173
+ variant: "subtitle2",
1174
+ sx: { m: 0, color: "var(--fu-text)", fontWeight: 600 },
1175
+ children: dropzoneTitle
1176
+ }
1177
+ ) : dropzoneTitle,
1178
+ dropzoneDescription ? typeof dropzoneDescription === "string" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1179
+ import_Typography.default,
1180
+ {
1181
+ variant: "caption",
1182
+ sx: { m: 0, color: "var(--fu-text-secondary)" },
1183
+ children: dropzoneDescription
1184
+ }
1185
+ ) : dropzoneDescription : null
1186
+ ]
1187
+ }
1188
+ ) : null,
1189
+ items.length > 0 ? itemVariant === "tile" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1190
+ import_Box.default,
1191
+ {
1192
+ component: "ul",
1193
+ "data-testid": `${dataTestId}-list`,
1194
+ "data-item-variant": "tile",
1195
+ sx: fileUploadTileListSx,
1196
+ children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1197
+ FileUploadListItem,
1198
+ {
1199
+ item,
1200
+ disabled,
1201
+ disableRemove: removeDisabled,
1202
+ onRemove: handleRemove,
1203
+ testId: `${dataTestId}-item`,
1204
+ itemVariant: "tile"
1205
+ },
1206
+ item.id
1207
+ ))
1208
+ }
1209
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1210
+ import_Stack.default,
1211
+ {
1212
+ component: "ul",
1213
+ spacing: 1,
1214
+ "data-testid": `${dataTestId}-list`,
1215
+ "data-item-variant": "row",
1216
+ sx: { m: 0, p: 0, listStyle: "none" },
1217
+ children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1218
+ FileUploadListItem,
1219
+ {
1220
+ item,
1221
+ disabled,
1222
+ disableRemove: removeDisabled,
1223
+ onRemove: handleRemove,
1224
+ testId: `${dataTestId}-item`,
1225
+ itemVariant: "row"
1226
+ },
1227
+ item.id
1228
+ ))
1229
+ }
1230
+ ) : null,
1231
+ helperText ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1232
+ import_FormHelperText.default,
1233
+ {
1234
+ id: helperId,
1235
+ error,
1236
+ sx: { mx: 0.5, mt: 0 },
1237
+ children: helperText
1238
+ }
1239
+ ) : null
1240
+ ]
1241
+ }
1242
+ );
1243
+ }
1244
+ );
1245
+ function FileUploadTypeIcon({
1246
+ file,
1247
+ tile = false
1248
+ }) {
1249
+ const resolved = resolveFileIconStyle(
1250
+ file,
1251
+ import_react_file_icon.defaultStyles
1252
+ );
1253
+ const { extension, styleKey } = resolved;
1254
+ const iconStyle = resolved.style;
1255
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1256
+ import_Box.default,
1257
+ {
1258
+ "aria-hidden": true,
1259
+ "data-testid": "file-upload-icon",
1260
+ "data-ext": extension || void 0,
1261
+ "data-style-key": styleKey || void 0,
1262
+ sx: tile ? fileUploadTileIconWellSx : fileUploadIconWellSx,
1263
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Box.default, { sx: tile ? fileUploadTileLibIconSx : fileUploadLibIconSx, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1264
+ import_react_file_icon.FileIcon,
1265
+ {
1266
+ fold: true,
1267
+ radius: 3,
1268
+ extension,
1269
+ ...iconStyle
1270
+ }
1271
+ ) })
1272
+ }
1273
+ );
1274
+ }
1275
+ function FileUploadThumb({
1276
+ file,
1277
+ tile = false
1278
+ }) {
1279
+ const [url, setUrl] = (0, import_react2.useState)(null);
1280
+ const [previewFailed, setPreviewFailed] = (0, import_react2.useState)(false);
1281
+ (0, import_react2.useEffect)(() => {
1282
+ setPreviewFailed(false);
1283
+ if (!isImageFile(file)) {
1284
+ setUrl(null);
1285
+ return;
1286
+ }
1287
+ const objectUrl = URL.createObjectURL(file);
1288
+ setUrl(objectUrl);
1289
+ return () => {
1290
+ URL.revokeObjectURL(objectUrl);
1291
+ };
1292
+ }, [file]);
1293
+ if (url && !previewFailed) {
1294
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1295
+ import_Box.default,
1296
+ {
1297
+ component: "img",
1298
+ src: url,
1299
+ alt: "",
1300
+ "data-testid": "file-upload-thumb",
1301
+ sx: tile ? fileUploadTileMediaSx : fileUploadThumbSx,
1302
+ onError: () => setPreviewFailed(true)
1303
+ }
1304
+ );
1305
+ }
1306
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FileUploadTypeIcon, { file, tile });
1307
+ }
1308
+ function FileUploadListItem({
1309
+ item,
1310
+ disabled,
1311
+ disableRemove = false,
1312
+ onRemove,
1313
+ testId,
1314
+ itemVariant
1315
+ }) {
1316
+ if (itemVariant === "tile") {
1317
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1318
+ FileUploadTileItem,
1319
+ {
1320
+ item,
1321
+ disabled,
1322
+ disableRemove,
1323
+ onRemove,
1324
+ testId
1325
+ }
1326
+ );
1327
+ }
1328
+ const status = item.status ?? (item.error ? "error" : "idle");
1329
+ const showProgress = status === "uploading" || typeof item.progress === "number" && item.progress > 0 && item.progress < 100 && status !== "error" && status !== "success";
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1331
+ import_Box.default,
1332
+ {
1333
+ component: "li",
1334
+ "data-testid": testId,
1335
+ "data-status": status,
1336
+ "data-item-variant": "row",
1337
+ sx: fileUploadItemSx,
1338
+ children: [
1339
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FileUploadThumb, { file: item.file }),
1340
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_Box.default, { sx: { flex: 1, minWidth: 0 }, children: [
1341
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1342
+ import_Typography.default,
1343
+ {
1344
+ variant: "body2",
1345
+ noWrap: true,
1346
+ title: item.file.name,
1347
+ sx: { m: 0, fontWeight: 500, color: "var(--fu-text)" },
1348
+ children: item.file.name
1349
+ }
1350
+ ),
1351
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1352
+ import_Typography.default,
1353
+ {
1354
+ variant: "caption",
1355
+ sx: { m: 0, color: "var(--fu-text-secondary)" },
1356
+ children: [
1357
+ formatFileSize(item.file.size),
1358
+ item.error ? ` \xB7 ${item.error}` : null,
1359
+ status === "success" && !item.error ? " \xB7 Done" : null
1360
+ ]
1361
+ }
1362
+ ),
1363
+ showProgress ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1364
+ LinearProgress,
1365
+ {
1366
+ variant: "determinate",
1367
+ value: Math.max(0, Math.min(100, item.progress ?? 0)),
1368
+ "aria-label": `Upload progress ${item.progress ?? 0}%`,
1369
+ sx: { mt: 0.75, height: 4, borderRadius: 2 }
1370
+ }
1371
+ ) : null,
1372
+ status === "uploading" && item.progress == null ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1373
+ LinearProgress,
1374
+ {
1375
+ "aria-label": "Uploading",
1376
+ sx: { mt: 0.75, height: 4, borderRadius: 2 }
1377
+ }
1378
+ ) : null
1379
+ ] }),
1380
+ disableRemove ? null : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1381
+ IconButton_default,
1382
+ {
1383
+ size: "small",
1384
+ "aria-label": `Remove ${item.file.name}`,
1385
+ disabled,
1386
+ onClick: () => onRemove(item),
1387
+ sx: {
1388
+ flexShrink: 0,
1389
+ color: "var(--fu-text-secondary)",
1390
+ p: 0.35
1391
+ },
1392
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Close.default, { sx: { fontSize: "1rem" } })
1393
+ }
1394
+ )
1395
+ ]
1396
+ }
1397
+ );
1398
+ }
1399
+ function FileUploadTileItem({
1400
+ item,
1401
+ disabled,
1402
+ disableRemove = false,
1403
+ onRemove,
1404
+ testId
1405
+ }) {
1406
+ const status = item.status ?? (item.error ? "error" : "idle");
1407
+ const showProgress = status === "uploading" || typeof item.progress === "number" && item.progress > 0 && item.progress < 100 && status !== "error" && status !== "success";
1408
+ const indeterminate = status === "uploading" && item.progress == null;
1409
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1410
+ import_Box.default,
1411
+ {
1412
+ component: "li",
1413
+ "data-testid": testId,
1414
+ "data-status": status,
1415
+ "data-item-variant": "tile",
1416
+ title: item.file.name,
1417
+ sx: fileUploadTileSx,
1418
+ children: [
1419
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FileUploadThumb, { file: item.file, tile: true }),
1420
+ showProgress ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1421
+ LinearProgress,
1422
+ {
1423
+ variant: "determinate",
1424
+ value: Math.max(0, Math.min(100, item.progress ?? 0)),
1425
+ "aria-label": `Upload progress ${item.progress ?? 0}%`,
1426
+ sx: fileUploadTileProgressSx
1427
+ }
1428
+ ) : null,
1429
+ indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1430
+ LinearProgress,
1431
+ {
1432
+ "aria-label": "Uploading",
1433
+ sx: fileUploadTileProgressSx
1434
+ }
1435
+ ) : null,
1436
+ disableRemove ? null : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1437
+ IconButton_default,
1438
+ {
1439
+ className: "fu-tile-remove",
1440
+ size: "small",
1441
+ "aria-label": `Remove ${item.file.name}`,
1442
+ disabled,
1443
+ onClick: (e) => {
1444
+ e.stopPropagation();
1445
+ onRemove(item);
1446
+ },
1447
+ sx: fileUploadTileRemoveSx,
1448
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Close.default, { sx: { fontSize: "0.85rem" } })
1449
+ }
1450
+ )
1451
+ ]
1452
+ }
1453
+ );
1454
+ }
1455
+ // Annotate the CommonJS export names for ESM import in node:
1456
+ 0 && (module.exports = {
1457
+ ARCHIVE_FILE_ICON_STYLE,
1458
+ FileUpload,
1459
+ TYPE_COLOR_FALLBACKS,
1460
+ UNKNOWN_FILE_ICON_STYLE,
1461
+ createFileUploadId,
1462
+ createFileUploadItem,
1463
+ fileUploadButtonSx,
1464
+ fileUploadDropzoneSx,
1465
+ fileUploadIconWellSx,
1466
+ fileUploadItemSx,
1467
+ fileUploadLibIconSx,
1468
+ fileUploadRootSx,
1469
+ fileUploadThumbSx,
1470
+ fileUploadTileIconWellSx,
1471
+ fileUploadTileLibIconSx,
1472
+ fileUploadTileListSx,
1473
+ fileUploadTileMediaSx,
1474
+ fileUploadTileProgressSx,
1475
+ fileUploadTileRemoveSx,
1476
+ fileUploadTileSx,
1477
+ formatFileSize,
1478
+ getFileExtension,
1479
+ isImageFile,
1480
+ resolveFileIconStyle,
1481
+ validateFiles
1482
+ });
1483
+ //# sourceMappingURL=fileUpload.js.map