@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
@@ -1,325 +0,0 @@
1
- import {
2
- IconButton_default
3
- } from "./chunk-JIU5GVM7.mjs";
4
- import {
5
- default10 as default11,
6
- default3 as default4,
7
- default34 as default12,
8
- default4 as default5,
9
- default5 as default6,
10
- default54 as default13,
11
- default6 as default7,
12
- default7 as default8,
13
- default8 as default9,
14
- default9 as default10
15
- } from "./chunk-ZVFYOXDE.mjs";
16
- import {
17
- default as default3
18
- } from "./chunk-4RPFRNXG.mjs";
19
- import {
20
- default as default2
21
- } from "./chunk-S6EZVRZC.mjs";
22
-
23
- // src/_utils/_func/downloadFile.ts
24
- import { fileTypeFromBuffer } from "file-type";
25
- async function downloadFile(url, fetchOptions) {
26
- const res = await fetch(url, fetchOptions);
27
- const blob = await res.blob();
28
- const buffer = await blob.arrayBuffer();
29
- const fType = await fileTypeFromBuffer(buffer);
30
- const data = {
31
- blobUrl: URL.createObjectURL(blob),
32
- size: blob.size,
33
- mimeType: fType?.mime || blob.type
34
- // use file-type to get the mime type
35
- };
36
- const nonImgRes = {
37
- ...data,
38
- dimensions: {
39
- width: 0,
40
- height: 0
41
- }
42
- };
43
- try {
44
- if (data.mimeType.includes("image/")) {
45
- const dimensions = await handleImageDownload(data.blobUrl);
46
- return {
47
- ...data,
48
- dimensions
49
- };
50
- } else {
51
- return nonImgRes;
52
- }
53
- } catch (err) {
54
- console.warn("Failed to handle image download:", err);
55
- return nonImgRes;
56
- }
57
- }
58
- async function handleImageDownload(blobUrl) {
59
- const img = new Image();
60
- img.src = blobUrl;
61
- await new Promise((resolve, reject) => {
62
- img.onload = resolve;
63
- img.onerror = reject;
64
- });
65
- const metaData = {
66
- width: img.width,
67
- height: img.height
68
- };
69
- img.remove();
70
- return metaData;
71
- }
72
-
73
- // src/_utils/_const/file.ts
74
- var FILE_STATUSs = {
75
- // local status
76
- uploadingToLocal: "local-uploading",
77
- uploadedToLocal: "local-uploaded",
78
- localError: "local-error",
79
- pending: "pending",
80
- // upload s3
81
- uploadPending: "upload-pending",
82
- gettingSignedURL: "upload-gettingSignedURL",
83
- beginUploadToS3: "upload-beginUploadToS3",
84
- uploadedToCloud: "upload-uploadedToCloud",
85
- error: "upload-error",
86
- // download
87
- downloadPending: "download-pending",
88
- downloading: "download-in-progress",
89
- downloaded: "download-completed",
90
- downloadError: "download-error"
91
- };
92
- var FILE_TYPEs = {
93
- image: "image",
94
- video: "video",
95
- audio: "audio",
96
- pdf: "pdf",
97
- doc: "doc",
98
- xls: "xls",
99
- ppt: "ppt",
100
- txt: "txt",
101
- zip: "zip",
102
- json: "json",
103
- other: "other"
104
- };
105
-
106
- // src/_utils/classes/PreviewableFile.ts
107
- var PreviewableFile = class {
108
- path;
109
- blobUrl;
110
- filename;
111
- randomName;
112
- fileType;
113
- mimeType;
114
- size;
115
- displaySize;
116
- url;
117
- fetchOptions;
118
- putUrl;
119
- getUrl;
120
- status;
121
- revokeable;
122
- imageProps;
123
- constructor(props = {}) {
124
- this.path = props.path ?? "";
125
- this.blobUrl = props.blobUrl ?? "";
126
- this.filename = props.filename ?? "";
127
- this.randomName = props.randomName ?? "";
128
- this.fileType = props.fileType ?? getFileType(props.mimeType ?? "");
129
- this.mimeType = props.mimeType ?? "";
130
- this.size = props.size ?? 0;
131
- this.displaySize = props.displaySize ?? displayFileSize(props.size ?? 0);
132
- this.url = props.url ?? "";
133
- this.fetchOptions = props.fetchOptions ?? {};
134
- this.putUrl = props.putUrl ?? "";
135
- this.getUrl = props.getUrl ?? "";
136
- this.status = props.status ?? FILE_STATUSs.pending;
137
- this.revokeable = props.revokeable ?? true;
138
- this.imageProps = props.imageProps ?? {
139
- width: 0,
140
- height: 0
141
- };
142
- Object.preventExtensions(this);
143
- }
144
- toPlainObj() {
145
- return {
146
- ...this
147
- };
148
- }
149
- updateFile(file) {
150
- if (!file) return;
151
- this.path = file.path;
152
- this.blobUrl = file.blobUrl;
153
- this.filename = file.filename;
154
- this.randomName = file.randomName;
155
- this.fileType = file.fileType;
156
- this.size = file.size;
157
- this.displaySize = file.displaySize;
158
- this.url = file.url;
159
- this.fetchOptions = file.fetchOptions;
160
- this.putUrl = file.putUrl;
161
- this.getUrl = file.getUrl;
162
- this.status = file.status;
163
- this.revokeable = file.revokeable;
164
- this.imageProps = file.imageProps;
165
- }
166
- updateStatus(status) {
167
- this.status = status;
168
- }
169
- async downloadFile() {
170
- if (!this.url) return this;
171
- try {
172
- const res = await downloadFile(this.url, this.fetchOptions);
173
- this.url = res.blobUrl;
174
- this.path = res.blobUrl;
175
- this.status = FILE_STATUSs.downloaded;
176
- this.blobUrl = res.blobUrl;
177
- this.fileType = getFileType(res.mimeType);
178
- this.mimeType = res.mimeType;
179
- this.size = res.size;
180
- this.displaySize = displayFileSize(res.size);
181
- this.imageProps = res.dimensions;
182
- return this;
183
- } catch (err) {
184
- console.log(err);
185
- return this;
186
- }
187
- }
188
- _displayFileSize() {
189
- return displayFileSize(this.size);
190
- }
191
- getUploadFormat() {
192
- return {
193
- url: this.putUrl,
194
- keyPath: this.putUrl,
195
- filename: this.filename,
196
- fileType: this.mimeType,
197
- hostname: ""
198
- };
199
- }
200
- };
201
- function displayFileSize(size) {
202
- const units = ["B", "KB", "MB", "GB", "TB"];
203
- let unitIndex = 0;
204
- while (size >= 1024 && unitIndex < units.length - 1) {
205
- size /= 1024;
206
- unitIndex++;
207
- }
208
- const sizeWithUnit = size.toFixed(2) + " " + units[unitIndex];
209
- return `[${sizeWithUnit}]`;
210
- }
211
- function getFileType(mimeType) {
212
- const types = Object.values(FILE_TYPEs);
213
- const [type] = mimeType.split("/");
214
- if (types.includes(type)) {
215
- return type;
216
- }
217
- const found = types.find((t) => mimeType.includes(t) && t !== FILE_TYPEs.other);
218
- if (found) {
219
- return found;
220
- }
221
- return FILE_TYPEs.other;
222
- }
223
-
224
- // src/components/compound/DisplayFile/src/DisplayFile.tsx
225
- import { jsx, jsxs } from "react/jsx-runtime";
226
- var getFileIcon = (fileType) => {
227
- switch (fileType) {
228
- case FILE_TYPEs.image:
229
- return default11;
230
- case FILE_TYPEs.pdf:
231
- return default5;
232
- case FILE_TYPEs.audio:
233
- return default6;
234
- case FILE_TYPEs.video:
235
- return default7;
236
- case FILE_TYPEs.xls:
237
- return default8;
238
- case FILE_TYPEs.zip:
239
- return default9;
240
- case FILE_TYPEs.json:
241
- return default12;
242
- case FILE_TYPEs.ppt:
243
- case FILE_TYPEs.doc:
244
- case FILE_TYPEs.txt:
245
- return default4;
246
- default:
247
- return default10;
248
- }
249
- };
250
- var FileThumbnail = ({ file, size = 60 }) => {
251
- const isImage = file.fileType === FILE_TYPEs.image;
252
- const FileIcon = getFileIcon(file.fileType || "");
253
- return /* @__PURE__ */ jsx(
254
- default2,
255
- {
256
- sx: {
257
- width: size,
258
- height: size,
259
- minWidth: size,
260
- display: "flex",
261
- alignItems: "center",
262
- justifyContent: "center",
263
- bgcolor: "transparent",
264
- borderRadius: 1,
265
- overflow: "hidden"
266
- },
267
- children: isImage && file.blobUrl ? /* @__PURE__ */ jsx(
268
- default2,
269
- {
270
- component: "img",
271
- src: file.blobUrl,
272
- alt: file.filename,
273
- sx: { width: "100%", height: "100%", objectFit: "cover" }
274
- }
275
- ) : /* @__PURE__ */ jsx(FileIcon, { fontSize: size >= 60 ? "large" : "medium", color: "action" })
276
- }
277
- );
278
- };
279
- var DisplayFile = ({
280
- file,
281
- onDelete,
282
- mode = "thumbnail"
283
- }) => {
284
- return /* @__PURE__ */ jsxs(default2, { sx: {
285
- display: "flex",
286
- alignItems: "center",
287
- gap: 1,
288
- p: 1,
289
- border: "1px solid",
290
- borderColor: "divider",
291
- borderRadius: 1,
292
- width: mode === "thumbnail" ? "fit-content" : "100%",
293
- maxWidth: "100%",
294
- position: "relative"
295
- }, children: [
296
- /* @__PURE__ */ jsx(FileThumbnail, { file }),
297
- /* @__PURE__ */ jsxs(default2, { sx: { flex: 1, overflow: "hidden" }, children: [
298
- /* @__PURE__ */ jsx(default3, { variant: "body2", noWrap: true, sx: { maxWidth: 150 }, children: file.filename }),
299
- /* @__PURE__ */ jsx(default3, { variant: "caption", color: "text.secondary", children: file.displaySize })
300
- ] }),
301
- onDelete && /* @__PURE__ */ jsx(
302
- IconButton_default,
303
- {
304
- size: "small",
305
- onClick: () => onDelete(file),
306
- sx: { ml: "auto" },
307
- children: /* @__PURE__ */ jsx(default13, { fontSize: "small" })
308
- }
309
- )
310
- ] });
311
- };
312
- DisplayFile.DISPLAY_MODEs = {
313
- thumbnail: "thumbnail",
314
- name: "name"
315
- };
316
- var DisplayFile_default = DisplayFile;
317
-
318
- export {
319
- PreviewableFile,
320
- displayFileSize,
321
- getFileIcon,
322
- FileThumbnail,
323
- DisplayFile_default
324
- };
325
- //# sourceMappingURL=chunk-AAH2O24U.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/_utils/_func/downloadFile.ts","../src/_utils/_const/file.ts","../src/_utils/classes/PreviewableFile.ts","../src/components/compound/DisplayFile/src/DisplayFile.tsx"],"sourcesContent":["import { fileTypeFromBuffer } from 'file-type';\n\n/**\n * download file from url and return blob url\n * @param url\n * @param fetchOptions\n */\nexport async function downloadFile(url: string, fetchOptions?: RequestInit) {\n const res = await fetch(url, fetchOptions);\n const blob = await res.blob();\n const buffer = await blob.arrayBuffer();\n\n // application/octet-stream make it hard to detect\n // so we use buffer to detect the mime type\n const fType = await fileTypeFromBuffer(buffer);\n\n const data = {\n blobUrl: URL.createObjectURL(blob),\n size: blob.size,\n mimeType: fType?.mime || blob.type, // use file-type to get the mime type\n };\n\n const nonImgRes = {\n ...data,\n dimensions: {\n width: 0,\n height: 0,\n },\n };\n // if file is an image\n try {\n if (data.mimeType.includes('image/')) {\n const dimensions = await handleImageDownload(data.blobUrl);\n // check the mime type\n return {\n ...data,\n dimensions: dimensions,\n };\n } else {\n return nonImgRes;\n }\n\n } catch (err) {\n // if there is an error, it might not be an image or the image failed to load\n console.warn('Failed to handle image download:', err);\n return nonImgRes;\n }\n}\n\n/**\n * handle image download\n * @param blobUrl \n * @returns \n */\nasync function handleImageDownload(blobUrl: string) {\n // Create an Image object to load the image\n const img = new Image();\n img.src = blobUrl;\n\n // Wait for the image to load to access its dimensions\n await new Promise((resolve, reject) => {\n img.onload = resolve;\n img.onerror = reject;\n });\n const metaData = {\n width: img.width,\n height: img.height,\n };\n\n // clear the img from memory\n img.remove();\n\n return metaData;\n}\n","import { ValueOf } from '../_types';\n\nexport const FILE_STATUSs = {\n // local status\n uploadingToLocal:\"local-uploading\",\n uploadedToLocal:\"local-uploaded\",\n localError:\"local-error\",\n\n \n pending:\"pending\",\n // upload s3\n uploadPending:'upload-pending',\n gettingSignedURL:'upload-gettingSignedURL',\n beginUploadToS3:'upload-beginUploadToS3',\n uploadedToCloud:'upload-uploadedToCloud',\n error:'upload-error',\n // download\n downloadPending:'download-pending',\n downloading:'download-in-progress',\n downloaded:'download-completed',\n downloadError:'download-error',\n} as const\n\nexport const FILE_TYPEs = {\n image:\"image\",\n video:\"video\",\n audio:\"audio\",\n pdf:\"pdf\",\n doc:\"doc\",\n xls:\"xls\",\n ppt:\"ppt\",\n txt:\"txt\",\n zip:\"zip\",\n json:\"json\",\n other:\"other\",\n} as const\n\nexport const MAX_FILE_NAME_LENGTH = 100\n\nexport type FileStatusType = ValueOf<typeof FILE_STATUSs>;\nexport type FileType = ValueOf<typeof FILE_TYPEs>;\n\nexport type Attachment = {\n url: string;\n keyPath: string;\n filename: string;\n fileType: string;\n hostname: string;\n}\n","import { downloadFile } from \"../_func/downloadFile\";\nimport { type FileStatusType, type FileType, FILE_STATUSs, FILE_TYPEs, type Attachment } from \"../_const/file\";\n\nexport { FILE_TYPEs, FILE_STATUSs };\n\ninterface PreviewableFileProps {\n path?: string;\n blobUrl?: string;\n filename?: string;\n randomName?: string;\n fileType?: string;\n mimeType?: Blob[\"type\"];\n size?: number;\n displaySize?: string;\n url?: string;\n fetchOptions?: object;\n putUrl?: string;\n getUrl?: string;\n status?: FileStatusType;\n revokeable?: boolean;\n imageProps?:{\n width: number;\n height: number;\n };\n}\n\nexport default class PreviewableFile {\n path: NonNullable<PreviewableFileProps[\"path\"]>;\n blobUrl: NonNullable<PreviewableFileProps[\"blobUrl\"]>;\n filename: NonNullable<PreviewableFileProps[\"filename\"]>;\n randomName: NonNullable<PreviewableFileProps[\"randomName\"]>;\n fileType: NonNullable<PreviewableFileProps[\"fileType\"]>;\n mimeType: NonNullable<PreviewableFileProps[\"mimeType\"]>;\n size: NonNullable<PreviewableFileProps[\"size\"]>;\n displaySize: NonNullable<PreviewableFileProps[\"displaySize\"]>;\n url: NonNullable<PreviewableFileProps[\"url\"]>;\n fetchOptions: NonNullable<PreviewableFileProps[\"fetchOptions\"]>;\n putUrl: NonNullable<PreviewableFileProps[\"putUrl\"]>;\n getUrl: NonNullable<PreviewableFileProps[\"getUrl\"]>;\n status: NonNullable<PreviewableFileProps[\"status\"]>;\n revokeable: NonNullable<PreviewableFileProps[\"revokeable\"]>;\n imageProps: NonNullable<PreviewableFileProps[\"imageProps\"]>;\n\n constructor(props: PreviewableFileProps = {}) { \n this.path = props.path ?? \"\"\n this.blobUrl = props.blobUrl ?? \"\"\n this.filename = props.filename ?? \"\"\n this.randomName = props.randomName ?? \"\"\n this.fileType = (props.fileType ?? getFileType(props.mimeType ?? \"\")) as FileType\n this.mimeType = props.mimeType ?? \"\"\n this.size = props.size ?? 0\n this.displaySize = props.displaySize ?? displayFileSize(props.size ?? 0)\n\n this.url = props.url ?? \"\"\n this.fetchOptions = props.fetchOptions ?? {}\n this.putUrl = props.putUrl ?? \"\"\n this.getUrl = props.getUrl ?? \"\"\n\n this.status = props.status ?? FILE_STATUSs.pending\n this.revokeable = props.revokeable ?? true\n this.imageProps = props.imageProps ?? {\n width: 0,\n height: 0,\n }\n\n Object.preventExtensions(this)\n }\n\n toPlainObj(){\n return {\n ...this\n }\n }\n\n updateFile(file: PreviewableFile | undefined){\n if(!file) return\n\n this.path = file.path\n this.blobUrl = file.blobUrl\n this.filename = file.filename\n this.randomName = file.randomName\n this.fileType = file.fileType\n this.size = file.size\n this.displaySize = file.displaySize\n\n this.url = file.url\n this.fetchOptions = file.fetchOptions\n this.putUrl = file.putUrl\n this.getUrl = file.getUrl\n\n this.status = file.status\n this.revokeable = file.revokeable\n\n this.imageProps = file.imageProps\n }\n updateStatus(status: FileStatusType){\n this.status = status\n }\n async downloadFile(){\n // if dont have url, return\n if(!this.url) return this\n // use the current url to download the file\n try{\n const res = await downloadFile(this.url, this.fetchOptions)\n // update the file\n\n // ensure `url` points to the usable blob URL returned from the download\n // (fixes cases where `this.url` was an ephemeral/revoked object URL)\n this.url = res.blobUrl\n this.path = res.blobUrl\n this.status = FILE_STATUSs.downloaded\n this.blobUrl = res.blobUrl\n this.fileType = getFileType(res.mimeType)\n this.mimeType = res.mimeType\n this.size = res.size\n this.displaySize = displayFileSize(res.size)\n this.imageProps = res.dimensions\n\n return this\n }catch(err){\n console.log(err)\n return this\n }\n }\n\n _displayFileSize(){\n return displayFileSize(this.size)\n }\n\n getUploadFormat():Attachment{\n return {\n url: this.putUrl,\n keyPath: this.putUrl,\n filename: this.filename,\n fileType: this.mimeType,\n hostname: \"\",\n }\n }\n}\n\nexport function displayFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n\n // Determine the appropriate unit index\n let unitIndex = 0;\n while (size >= 1024 && unitIndex < units.length - 1) {\n size /= 1024;\n unitIndex++;\n }\n\n // Format the file size with the unit\n // 2 decimal places\n const sizeWithUnit = size.toFixed(2) + ' ' + units[unitIndex];\n\n return `[${sizeWithUnit}]`;\n}\n\n/**\n * get the file type based on the mime type\n */\nfunction getFileType(mimeType:Blob[\"type\"]): FileType {\n const types = Object.values(FILE_TYPEs) as FileType[];\n \n // 1. Check if the type is explicitly defined in the start (e.g. image/jpeg -> image)\n const [type] = mimeType.split('/');\n if(types.includes(type as FileType)){\n return type as FileType;\n }\n\n // 2. Check if the type is included in the mime type (e.g. application/pdf -> pdf)\n const found = types.find((t) => mimeType.includes(t) && t !== FILE_TYPEs.other);\n if(found){\n return found;\n }\n\n return FILE_TYPEs.other;\n}\n","// src/components/compound/DisplayFile/src/DisplayFile.tsx\nimport React from 'react';\nimport { Box } from '@/ele/Box';\nimport { Typography } from '@/ele/Typography';\nimport { IconButton } from '@/ele/Button';\nimport {\n CloseIcon,\n DescriptionIcon,\n PictureAsPdfIcon,\n ImageIcon,\n AudioFileIcon,\n VideoFileIcon,\n TableChartIcon,\n FolderZipIcon,\n DataObjectIcon,\n InsertDriveFileIcon,\n} from '@/icons/MuiIcon';\n\nimport PreviewableFile, { FILE_TYPEs } from '@/_utils/classes/PreviewableFile';\n\nexport interface DisplayFileProps {\n file: PreviewableFile;\n onDelete?: (file: PreviewableFile) => void;\n mode?: 'thumbnail' | 'name';\n}\n\nexport const getFileIcon = (fileType: string) => {\n switch (fileType) {\n case FILE_TYPEs.image: return ImageIcon;\n case FILE_TYPEs.pdf: return PictureAsPdfIcon;\n case FILE_TYPEs.audio: return AudioFileIcon;\n case FILE_TYPEs.video: return VideoFileIcon;\n case FILE_TYPEs.xls: return TableChartIcon;\n case FILE_TYPEs.zip: return FolderZipIcon;\n case FILE_TYPEs.json: return DataObjectIcon;\n\n case FILE_TYPEs.ppt:\n case FILE_TYPEs.doc: \n case FILE_TYPEs.txt: \n return DescriptionIcon;\n default: return InsertDriveFileIcon;\n }\n};\n\nexport const FileThumbnail: React.FC<{ file: PreviewableFile; size?: number }> = ({ file, size = 60 }) => {\n const isImage = file.fileType === FILE_TYPEs.image;\n const FileIcon = getFileIcon(file.fileType || '');\n\n return (\n <Box\n sx={{\n width: size,\n height: size,\n minWidth: size,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n bgcolor: 'transparent',\n borderRadius: 1,\n overflow: 'hidden'\n }}\n >\n {isImage && file.blobUrl ? (\n <Box\n component=\"img\"\n src={file.blobUrl}\n alt={file.filename}\n sx={{ width: '100%', height: '100%', objectFit: 'cover' }}\n />\n ) : (\n <FileIcon fontSize={size >= 60 ? \"large\" : \"medium\"} color=\"action\" />\n )}\n </Box>\n );\n};\n\nconst DisplayFile: React.FC<DisplayFileProps> & { DISPLAY_MODEs: { thumbnail: 'thumbnail'; name: 'name' } } = ({\n file,\n onDelete,\n mode = 'thumbnail'\n}) => {\n return (\n <Box sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n p: 1,\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: 1,\n width: mode === 'thumbnail' ? 'fit-content' : '100%',\n maxWidth: '100%',\n position: 'relative',\n }}>\n <FileThumbnail file={file} />\n \n <Box sx={{ flex: 1, overflow: 'hidden' }}>\n <Typography variant=\"body2\" noWrap sx={{ maxWidth: 150 }}>\n {file.filename}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {file.displaySize}\n </Typography>\n </Box>\n\n {onDelete && (\n <IconButton \n size=\"small\" \n onClick={() => onDelete(file)}\n sx={{ ml: 'auto' }}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n );\n};\n\nDisplayFile.DISPLAY_MODEs = {\n thumbnail: 'thumbnail',\n name: 'name'\n};\n\nexport default DisplayFile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,0BAA0B;AAOnC,eAAsB,aAAa,KAAa,cAA4B;AAC1E,QAAM,MAAM,MAAM,MAAM,KAAK,YAAY;AACzC,QAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,QAAM,SAAS,MAAM,KAAK,YAAY;AAItC,QAAM,QAAQ,MAAM,mBAAmB,MAAM;AAE7C,QAAM,OAAO;AAAA,IACX,SAAS,IAAI,gBAAgB,IAAI;AAAA,IACjC,MAAM,KAAK;AAAA,IACX,UAAU,OAAO,QAAQ,KAAK;AAAA;AAAA,EAChC;AAEA,QAAM,YAAY;AAAA,IAChB,GAAG;AAAA,IACH,YAAY;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,MAAI;AACF,QAAI,KAAK,SAAS,SAAS,QAAQ,GAAG;AACpC,YAAM,aAAa,MAAM,oBAAoB,KAAK,OAAO;AAEzD,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,MACF;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EAEF,SAAS,KAAK;AAEZ,YAAQ,KAAK,oCAAoC,GAAG;AACpD,WAAO;AAAA,EACT;AACF;AAOA,eAAe,oBAAoB,SAAiB;AAElD,QAAM,MAAM,IAAI,MAAM;AACtB,MAAI,MAAM;AAGV,QAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AACrC,QAAI,SAAS;AACb,QAAI,UAAU;AAAA,EAChB,CAAC;AACD,QAAM,WAAW;AAAA,IACf,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,EACd;AAGA,MAAI,OAAO;AAEX,SAAO;AACT;;;ACvEO,IAAM,eAAe;AAAA;AAAA,EAE1B,kBAAiB;AAAA,EACjB,iBAAgB;AAAA,EAChB,YAAW;AAAA,EAGX,SAAQ;AAAA;AAAA,EAER,eAAc;AAAA,EACd,kBAAiB;AAAA,EACjB,iBAAgB;AAAA,EAChB,iBAAgB;AAAA,EAChB,OAAM;AAAA;AAAA,EAEN,iBAAgB;AAAA,EAChB,aAAY;AAAA,EACZ,YAAW;AAAA,EACX,eAAc;AAChB;AAEO,IAAM,aAAa;AAAA,EACxB,OAAM;AAAA,EACN,OAAM;AAAA,EACN,OAAM;AAAA,EACN,KAAI;AAAA,EACJ,KAAI;AAAA,EACJ,KAAI;AAAA,EACJ,KAAI;AAAA,EACJ,KAAI;AAAA,EACJ,KAAI;AAAA,EACJ,MAAK;AAAA,EACL,OAAM;AACR;;;ACTA,IAAqB,kBAArB,MAAqC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,QAA8B,CAAC,GAAG;AAC5C,SAAK,OAAO,MAAM,QAAQ;AAC1B,SAAK,UAAU,MAAM,WAAW;AAChC,SAAK,WAAW,MAAM,YAAY;AAClC,SAAK,aAAa,MAAM,cAAc;AACtC,SAAK,WAAY,MAAM,YAAY,YAAY,MAAM,YAAY,EAAE;AACnE,SAAK,WAAW,MAAM,YAAY;AAClC,SAAK,OAAO,MAAM,QAAQ;AAC1B,SAAK,cAAc,MAAM,eAAe,gBAAgB,MAAM,QAAQ,CAAC;AAEvE,SAAK,MAAM,MAAM,OAAO;AACxB,SAAK,eAAe,MAAM,gBAAgB,CAAC;AAC3C,SAAK,SAAS,MAAM,UAAU;AAC9B,SAAK,SAAS,MAAM,UAAU;AAE9B,SAAK,SAAS,MAAM,UAAU,aAAa;AAC3C,SAAK,aAAa,MAAM,cAAc;AACtC,SAAK,aAAa,MAAM,cAAc;AAAA,MACpC,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAEA,WAAO,kBAAkB,IAAI;AAAA,EAC/B;AAAA,EAEA,aAAY;AACV,WAAO;AAAA,MACL,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,WAAW,MAAkC;AAC3C,QAAG,CAAC,KAAM;AAEV,SAAK,OAAO,KAAK;AACjB,SAAK,UAAU,KAAK;AACpB,SAAK,WAAW,KAAK;AACrB,SAAK,aAAa,KAAK;AACvB,SAAK,WAAW,KAAK;AACrB,SAAK,OAAO,KAAK;AACjB,SAAK,cAAc,KAAK;AAExB,SAAK,MAAM,KAAK;AAChB,SAAK,eAAe,KAAK;AACzB,SAAK,SAAS,KAAK;AACnB,SAAK,SAAS,KAAK;AAEnB,SAAK,SAAS,KAAK;AACnB,SAAK,aAAa,KAAK;AAEvB,SAAK,aAAa,KAAK;AAAA,EACzB;AAAA,EACA,aAAa,QAAuB;AAClC,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,MAAM,eAAc;AAElB,QAAG,CAAC,KAAK,IAAK,QAAO;AAErB,QAAG;AACD,YAAM,MAAM,MAAM,aAAa,KAAK,KAAK,KAAK,YAAY;AAK1D,WAAK,MAAM,IAAI;AACf,WAAK,OAAO,IAAI;AAChB,WAAK,SAAS,aAAa;AAC3B,WAAK,UAAU,IAAI;AACnB,WAAK,WAAW,YAAY,IAAI,QAAQ;AACxC,WAAK,WAAW,IAAI;AACpB,WAAK,OAAO,IAAI;AAChB,WAAK,cAAc,gBAAgB,IAAI,IAAI;AAC3C,WAAK,aAAa,IAAI;AAEtB,aAAO;AAAA,IACT,SAAO,KAAI;AACT,cAAQ,IAAI,GAAG;AACf,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,mBAAkB;AAChB,WAAO,gBAAgB,KAAK,IAAI;AAAA,EAClC;AAAA,EAEA,kBAA4B;AAC1B,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,SAAS,KAAK;AAAA,MACd,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAEO,SAAS,gBAAgB,MAAsB;AACpD,QAAM,QAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,IAAI;AAG1C,MAAI,YAAY;AAChB,SAAO,QAAQ,QAAQ,YAAY,MAAM,SAAS,GAAG;AACnD,YAAQ;AACR;AAAA,EACF;AAIA,QAAM,eAAe,KAAK,QAAQ,CAAC,IAAI,MAAM,MAAM,SAAS;AAE5D,SAAO,IAAI,YAAY;AACzB;AAKA,SAAS,YAAY,UAAiC;AACpD,QAAM,QAAQ,OAAO,OAAO,UAAU;AAGtC,QAAM,CAAC,IAAI,IAAI,SAAS,MAAM,GAAG;AACjC,MAAG,MAAM,SAAS,IAAgB,GAAE;AAClC,WAAO;AAAA,EACT;AAGA,QAAM,QAAQ,MAAM,KAAK,CAAC,MAAM,SAAS,SAAS,CAAC,KAAK,MAAM,WAAW,KAAK;AAC9E,MAAG,OAAM;AACP,WAAO;AAAA,EACT;AAEA,SAAO,WAAW;AACpB;;;ACjHgB,cAiCJ,YAjCI;AArCT,IAAM,cAAc,CAAC,aAAqB;AAC7C,UAAQ,UAAU;AAAA,IACd,KAAK,WAAW;AAAO,aAAOA;AAAA,IAC9B,KAAK,WAAW;AAAK,aAAOA;AAAA,IAC5B,KAAK,WAAW;AAAO,aAAOA;AAAA,IAC9B,KAAK,WAAW;AAAO,aAAOA;AAAA,IAC9B,KAAK,WAAW;AAAK,aAAOA;AAAA,IAC5B,KAAK,WAAW;AAAK,aAAOA;AAAA,IAC5B,KAAK,WAAW;AAAM,aAAOA;AAAA,IAE7B,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AACZ,aAAOA;AAAA,IACX;AAAS,aAAOA;AAAA,EACpB;AACJ;AAEO,IAAM,gBAAoE,CAAC,EAAE,MAAM,OAAO,GAAG,MAAM;AACtG,QAAM,UAAU,KAAK,aAAa,WAAW;AAC7C,QAAM,WAAW,YAAY,KAAK,YAAY,EAAE;AAEhD,SACI;AAAA,IAACA;AAAA,IAAA;AAAA,MACG,IAAI;AAAA,QACA,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS;AAAA,QACT,cAAc;AAAA,QACd,UAAU;AAAA,MACd;AAAA,MAEC,qBAAW,KAAK,UACb;AAAA,QAACA;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,KAAK,KAAK;AAAA,UACV,KAAK,KAAK;AAAA,UACV,IAAI,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAQ;AAAA;AAAA,MAC5D,IAEA,oBAAC,YAAS,UAAU,QAAQ,KAAK,UAAU,UAAU,OAAM,UAAS;AAAA;AAAA,EAE5E;AAER;AAEA,IAAM,cAAwG,CAAC;AAAA,EAC3G;AAAA,EACA;AAAA,EACA,OAAO;AACX,MAAM;AACF,SACI,qBAACA,UAAA,EAAI,IAAI;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO,SAAS,cAAc,gBAAgB;AAAA,IAC9C,UAAU;AAAA,IACV,UAAU;AAAA,EACd,GACI;AAAA,wBAAC,iBAAc,MAAY;AAAA,IAE3B,qBAACA,UAAA,EAAI,IAAI,EAAE,MAAM,GAAG,UAAU,SAAS,GACnC;AAAA,0BAACA,UAAA,EAAW,SAAQ,SAAQ,QAAM,MAAC,IAAI,EAAE,UAAU,IAAI,GAClD,eAAK,UACV;AAAA,MACA,oBAACA,UAAA,EAAW,SAAQ,WAAU,OAAM,kBAC/B,eAAK,aACV;AAAA,OACJ;AAAA,IAEC,YACG;AAAA,MAAC;AAAA;AAAA,QACG,MAAK;AAAA,QACL,SAAS,MAAM,SAAS,IAAI;AAAA,QAC5B,IAAI,EAAE,IAAI,OAAO;AAAA,QAEjB,8BAACA,WAAA,EAAU,UAAS,SAAQ;AAAA;AAAA,IAChC;AAAA,KAER;AAER;AAEA,YAAY,gBAAgB;AAAA,EACxB,WAAW;AAAA,EACX,MAAM;AACV;AAEA,IAAO,sBAAQ;","names":["default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/styles/scroll.css","../src/theme/Provider.tsx","../src/theme/muiTheme.ts","../src/theme/colors/darkBlue.ts","../src/theme/colors/lightBrown.ts","../src/theme/ToggleThemeButton/ToggleThemeButton.tsx","../src/theme/appScrollStyles.ts"],"sourcesContent":["import styleInject from '#style-inject';styleInject(\":root[color-scheme=light] {\\n --scroll-thumb-visible: color-mix(in srgb, var(--mui-palette-secondary-main), transparent 62%);\\n --scroll-thumb-hover-visible: color-mix(in srgb, var(--mui-palette-secondary-dark), transparent 48%);\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: transparent;\\n --scroll-thumb-hover-color: transparent;\\n --scroll-track-color: transparent;\\n}\\n:root[color-scheme=dark] {\\n --scroll-thumb-visible: color-mix(in srgb, var(--mui-palette-grey-500), transparent 44%);\\n --scroll-thumb-hover-visible: color-mix(in lab, var(--mui-palette-secondary-dark) 16%, transparent 36%);\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: transparent;\\n --scroll-thumb-hover-color: transparent;\\n --scroll-track-color: transparent;\\n}\\n*:hover {\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: var(--scroll-thumb-visible);\\n --scroll-thumb-hover-color: var(--scroll-thumb-hover-visible);\\n --scroll-track-color: transparent;\\n}\\n*:hover * {\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: transparent;\\n --scroll-thumb-hover-color: transparent;\\n --scroll-track-color: transparent;\\n}\\n*:hover *:hover {\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: var(--scroll-thumb-visible);\\n --scroll-thumb-hover-color: var(--scroll-thumb-hover-visible);\\n --scroll-track-color: transparent;\\n}\\n[data-chat-surface]:focus-within [data-scroll-surface] {\\n --scroll-bg-color: transparent;\\n --scroll-thumb-color: var(--scroll-thumb-visible);\\n --scroll-thumb-hover-color: var(--scroll-thumb-hover-visible);\\n --scroll-track-color: transparent;\\n}\\n::-webkit-scrollbar-corner {\\n background: var(--mui-palette-background-default);\\n}\\n::-webkit-scrollbar {\\n width: 8px;\\n height: 8px;\\n}\\n::-webkit-scrollbar-track {\\n background: transparent;\\n}\\n::-webkit-scrollbar-track:horizontal {\\n background: transparent;\\n}\\n::-webkit-scrollbar-thumb {\\n background:\\n linear-gradient(\\n to right,\\n transparent 0%,\\n transparent 25%,\\n var(--scroll-thumb-color) 25%,\\n var(--scroll-thumb-color) 75%,\\n transparent 75%,\\n transparent 100%);\\n border: none;\\n border-radius: 10px;\\n}\\n::-webkit-scrollbar-thumb:horizontal {\\n background:\\n linear-gradient(\\n to bottom,\\n transparent 0%,\\n transparent 25%,\\n var(--scroll-thumb-color) 25%,\\n var(--scroll-thumb-color) 75%,\\n transparent 75%,\\n transparent 100%);\\n}\\n::-webkit-scrollbar-thumb:hover {\\n background:\\n linear-gradient(\\n to right,\\n transparent 0%,\\n transparent 25%,\\n var(--scroll-thumb-hover-color) 25%,\\n var(--scroll-thumb-hover-color) 75%,\\n transparent 75%,\\n transparent 100%);\\n}\\n::-webkit-scrollbar-thumb:horizontal:hover {\\n background:\\n linear-gradient(\\n to bottom,\\n transparent 0%,\\n transparent 25%,\\n var(--scroll-thumb-hover-color) 25%,\\n var(--scroll-thumb-hover-color) 75%,\\n transparent 75%,\\n transparent 100%);\\n}\\n.disable-scrollbars::-webkit-scrollbar,\\n.disable-scrollbars::-webkit-scrollbar-track,\\n.disable-scrollbars::-webkit-scrollbar-thumb {\\n background: transparent;\\n}\\n\")","import React from 'react';\nimport createCache from '@emotion/cache';\nimport { CacheProvider } from '@emotion/react';\nimport { ThemeProvider as MuiThemeProvider, type Theme, type ThemeOptions } from '@mui/material/styles';\nimport { CssBaseline, GlobalStyles } from '@mui/material';\nimport { AlertProvider } from '@/compound/Alert';\n\nimport { createAppTheme } from './muiTheme';\n\nconst appEmotionCache = createCache({\n key: 'sdui',\n speedy: true,\n});\n\nconst globalStyles = {\n // Font styles\n 'html, body': {\n fontFamily: \"'Roboto', 'Helvetica Neue', Arial, sans-serif\",\n WebkitFontSmoothing: 'antialiased',\n MozOsxFontSmoothing: 'grayscale',\n color: 'var(--mui-palette-text-primary)',\n },\n 'h1,h2,h3,h4,h5,h6,h7, .h1, .h2,.h3,.h4,.h5,.h6': {\n wordBreak: 'break-word',\n lineHeight: 1.35,\n },\n label: {\n color: 'var(--mui-palette-text-primary)',\n },\n p: {\n fontSize: '15px',\n color: 'var(--mui-palette-text-primary)',\n cursor: 'text',\n },\n // Nested content inside clickable hosts inherits the host cursor\n // (covers ListItemButton, Button, IconButton, AccordionSummary, etc.).\n 'button *, a *, [role=\"button\"] *, .MuiButtonBase-root *': {\n cursor: 'inherit',\n },\n a: {\n color: 'var(--mui-palette-text-href)', // Assuming this var exists from theme\n cursor: 'pointer',\n },\n '*::selection': {\n backgroundColor: 'var(--mui-palette-focus-1)',\n color: 'var(--mui-palette-text-primary)',\n textShadow: 'none',\n },\n '*::-moz-selection': {\n backgroundColor: 'var(--mui-palette-focus-1)',\n color: 'var(--mui-palette-text-primary)',\n textShadow: 'none',\n },\n\n // Layout styles\n html: {\n height: '100%',\n width: '100%',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n },\n 'html > body': {\n height: '100%',\n width: '100%',\n backgroundColor: 'transparent',\n },\n};\n\nexport type AppThemeProviderProps = {\n children: React.ReactNode;\n theme?: Theme;\n muiThemeOptions?: ThemeOptions;\n defaultMode?: 'light' | 'dark' | 'system';\n /** Pass `null` to skip localStorage (Playground3 stage iframes). */\n storageManager?: null;\n};\n\n/**\n * CssVarsProvider re-renders on `setMode` so it can flip the color-scheme\n * attribute. Memoize the app tree so that swap stays a CSS-variable change\n * instead of rebuilding tables, editors, and other heavy compounds.\n */\nconst ThemeTree = React.memo(function ThemeTree({ children }: { children: React.ReactNode }) {\n return (\n <AlertProvider>\n <CssBaseline />\n <GlobalStyles styles={globalStyles} />\n {children}\n </AlertProvider>\n );\n});\n\nexport default function ThemeProvider({\n children,\n theme: customTheme,\n muiThemeOptions,\n defaultMode,\n storageManager,\n}: AppThemeProviderProps) {\n const resolvedTheme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n return createAppTheme(muiThemeOptions);\n }, [customTheme, muiThemeOptions]);\n\n return (\n <CacheProvider value={appEmotionCache}>\n {/* Skip 250ms color lerp while color-scheme flips. Button/IconButton\n also drop color transitions for other token changes. */}\n <MuiThemeProvider\n theme={resolvedTheme}\n defaultMode={defaultMode}\n storageManager={storageManager}\n disableTransitionOnChange\n >\n <ThemeTree>{children}</ThemeTree>\n </MuiThemeProvider>\n </CacheProvider>\n );\n}\n","import { createTheme, type ThemeOptions } from '@mui/material/styles';\n\nimport { alertTheme } from '@/compound/Alert';\nimport { appBarTheme } from '../components/elemental/AppBar/src/theme';\nimport { avatarTheme } from '@/ele/Avatar';\nimport { badgeTheme } from '@/ele/Badge';\nimport { \n buttonTheme, \n buttonBaseTheme,\n iconButtonTheme,\n} from '@/ele/Button';\nimport { cardTheme, cardContentTheme } from '@/ele/Card';\nimport { checkboxTheme } from '@/ele/Checkbox';\nimport { chipTheme } from '@/ele/Chip';\nimport { collapseTheme } from '@/ele/Collapse';\nimport { \n dateCalendarTheme, pickersCalendarHeaderTheme,\n multiSectionDigitalClockTheme, pickersDayTheme,\n datePickerTheme, dateTimePickerTheme,\n pickersInputBaseTheme,\n} from '@/ele/DatePicker';\nimport { dividerTheme } from '@/ele/Divider';\nimport { formLabelTheme, formControlLabelTheme, formHelperTextTheme } from '@/ele/Form';\nimport { textFieldTheme, inputBaseTheme } from '@/ele/Input';\nimport {\n listItemTheme,\n listItemIconTheme,\n listItemTextTheme,\n listItemButtonTheme,\n listItemSubheaderTheme,\n} from '@/ele/List';\nimport { menuItemTheme, menuTheme } from '../components/elemental/Menu/src/Menu/theme';\nimport { paperTheme } from '@/ele/Paper';\nimport { linearProgressTheme, circularProgressTheme } from '@/ele/Progress';\nimport { selectTheme } from '@/ele/Select';\nimport { sliderTheme } from '@/ele/Slider';\nimport { switchTheme } from '@/ele/Switch';\nimport { tabTheme, tabsTheme } from '@/ele/Tab';\nimport { toggleButtonGroupTheme, toggleButtonTheme } from '@/ele/ToggleButtonGroup'\nimport { tooltipTheme } from '@/ele/Tooltip';\nimport { typographyTheme } from '@/ele/Typography';\nimport { stepperTheme, stepTheme, stepLabelTheme, stepConnectorTheme, stepIconTheme, stepButtonTheme } from '@/ele/Stepper';\nimport {\n tableTheme,\n tableContainerTheme,\n tableHeadTheme,\n tableCellTheme,\n tablePaginationTheme,\n tableSortLabelTheme,\n} from '@/compound/Table';\n\nimport { muiPalette as darkBlueMuiPalette } from './colors/darkBlue';\nimport { muiPalette as lightBrownMuiPalette } from './colors/lightBrown';\n\n// import './styles/font.css';\n// import './styles/layout.css';\n\nconst baseThemeOptions: ThemeOptions = {\n cssVariables: {\n colorSchemeSelector: '[color-scheme=\"%s\"]',\n },\n colorSchemes: {\n light: lightBrownMuiPalette,\n dark: darkBlueMuiPalette,\n },\n breakpoints: {\n values: {\n xs: 0,\n sm: 600,\n md: 600,\n lg: 1200,\n xl: 1536,\n },\n },\n shape: {\n borderRadius: 8,\n },\n // Customize your theme here if needed\n components: {\n // Let hosts own the page canvas — CssBaseline would otherwise paint\n // body with palette.background.default on every ThemeProvider mount.\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n backgroundColor: 'transparent',\n '@media print': {\n backgroundColor: 'transparent',\n },\n },\n },\n },\n // alert\n MuiAlert: alertTheme,\n // app bar\n MuiAppBar: appBarTheme,\n // avatar\n MuiAvatar: avatarTheme,\n // badge\n MuiBadge: badgeTheme,\n // buttons\n MuiButton: buttonTheme,\n MuiButtonBase: buttonBaseTheme,\n MuiToggleButtonGroup: toggleButtonGroupTheme,\n MuiToggleButton: toggleButtonTheme,\n // card\n MuiCard: cardTheme,\n MuiCardContent: cardContentTheme,\n // checkbox\n MuiCheckbox: checkboxTheme,\n // chips\n MuiChip: chipTheme,\n // collapse\n MuiCollapse: collapseTheme,\n // date picker\n MuiDateCalendar: dateCalendarTheme,\n MuiPickersCalendarHeader: pickersCalendarHeaderTheme,\n MuiMultiSectionDigitalClock: multiSectionDigitalClockTheme,\n MuiPickersDay: pickersDayTheme,\n MuiDatePicker: datePickerTheme,\n MuiDateTimePicker: dateTimePickerTheme,\n MuiPickersInputBase: pickersInputBaseTheme,\n // divider\n MuiDivider: dividerTheme,\n // form\n MuiFormLabel: formLabelTheme,\n MuiFormControlLabel: formControlLabelTheme,\n MuiFormHelperText: formHelperTextTheme,\n // IconButton\n MuiIconButton: iconButtonTheme,\n // input\n MuiTextField: textFieldTheme,\n MuiInputBase: inputBaseTheme,\n // list\n MuiListItem: listItemTheme,\n MuiListItemIcon: listItemIconTheme,\n MuiListItemText: listItemTextTheme,\n MuiListItemButton: listItemButtonTheme,\n MuiListSubheader: listItemSubheaderTheme,\n // menu\n MuiMenuItem: menuItemTheme,\n MuiMenu: menuTheme,\n // paper\n MuiPaper: paperTheme,\n // progress\n MuiLinearProgress: linearProgressTheme,\n MuiCircularProgress: circularProgressTheme,\n // select\n MuiSelect: selectTheme,\n // slider\n MuiSlider: sliderTheme,\n // switch\n MuiSwitch: switchTheme,\n // tab\n MuiTab: tabTheme,\n MuiTabs: tabsTheme,\n // tooltip\n MuiTooltip: tooltipTheme,\n // typography\n MuiTypography: typographyTheme,\n // stepper components\n MuiStepper: stepperTheme,\n MuiStep: stepTheme,\n MuiStepLabel: stepLabelTheme,\n MuiStepConnector: stepConnectorTheme,\n MuiStepIcon: stepIconTheme,\n MuiStepButton: stepButtonTheme,\n // table\n MuiTable: tableTheme,\n MuiTableContainer: tableContainerTheme,\n MuiTableHead: tableHeadTheme,\n MuiTableCell: tableCellTheme,\n MuiTablePagination: tablePaginationTheme,\n MuiTableSortLabel: tableSortLabelTheme,\n },\n};\n\nexport const createAppTheme = (options?: ThemeOptions) => createTheme(baseThemeOptions, options ?? {});\n\nexport const theme = createAppTheme();","\nimport { \n type ColorTheme, \n type ColorSystemOptions \n} from \"./_utils\"\n\nconst themeColor = {\n themeType: \"dark\",\n name: \"darkBlue\",\n\n colorScheme:{\n primary:{\n 1: \"rgba(2, 17, 33, 1)\",\n 2: \"rgba(20, 40, 65, 1)\",\n 3: \"rgba(40, 80, 110, 1)\",\n 4: \"rgba(65, 110, 140, 1)\",\n 5: \"rgba(90, 140, 170, 1)\",\n 6: \"rgba(115, 170, 200, 1)\",\n main: 5,\n },\n secondary:{\n 1: \"rgba(250, 250, 255, 1)\",\n 2: \"rgba(245, 245, 255, 1)\",\n 3: \"rgba(200, 235, 240, 1)\",\n 4: \"rgba(165, 220, 225, 1)\",\n 5: \"rgba(125, 200, 210, 1)\",\n 6: \"rgba(20, 215, 215, 1)\",\n main: 5,\n },\n\n error: {\n text: \"rgba(255, 0, 100, 1)\",\n background: \"rgba(35, 0, 10, 1)\",\n },\n warning: {\n text: \"rgba(230, 190, 125, 1)\",\n background: \"rgba(45, 25, 1, 1)\",\n },\n info: {\n text:\"rgba(100, 180, 255, 1)\",\n background: \"rgba(10, 30, 55, 1)\",\n },\n success: {\n text: \"rgba(100, 255, 150, 1)\",\n background: \"rgba(10, 50, 30, 1)\",\n },\n system: {\n text: \"rgba(45, 212, 191, 1)\",\n background: \"rgba(0, 40, 35, 1)\",\n },\n insight: {\n text: \"rgba(167, 139, 250, 1)\",\n background: \"rgba(30, 15, 55, 1)\",\n },\n\n focus: \"rgba(255, 47, 122, 0.42)\",\n disabled: \"rgba(91, 94, 97, 1)\",\n background: {\n default: \"rgb(29, 29, 29, 1)\",\n disabled: \"rgba(43, 43, 43, 0.3)\",\n },\n text: {\n primary: \"rgba(240, 240, 255, 1)\",\n secondary: \"rgba(180, 200, 220, 1)\",\n subscript: \"rgba(137, 137, 150, 1)\",\n href: \"rgba(255, 0, 153, 1)\",\n },\n },\n \n\n} as const satisfies ColorTheme\n\nexport const muiPalette = {\n palette: {\n mode: \"dark\",\n primary: {\n dark: themeColor.colorScheme.primary[1],\n main: themeColor.colorScheme.primary[themeColor.colorScheme.primary.main],\n light: themeColor.colorScheme.primary[6],\n },\n secondary: {\n dark: themeColor.colorScheme.secondary[6],\n main: themeColor.colorScheme.secondary[themeColor.colorScheme.secondary.main],\n light: themeColor.colorScheme.secondary[1],\n },\n error: {\n main: themeColor.colorScheme.error.text,\n },\n warning: {\n main: themeColor.colorScheme.warning.text,\n },\n info: {\n main: themeColor.colorScheme.info.text,\n },\n success: {\n main: themeColor.colorScheme.success.text,\n },\n system: {\n main: themeColor.colorScheme.system.text,\n light: \"rgba(80, 230, 210, 1)\",\n dark: \"rgba(20, 160, 145, 1)\",\n contrastText: \"rgba(0, 0, 0, 0.87)\",\n },\n insight: {\n main: themeColor.colorScheme.insight.text,\n light: \"rgba(190, 170, 255, 1)\",\n dark: \"rgba(130, 100, 220, 1)\",\n contrastText: \"rgba(0, 0, 0, 0.87)\",\n },\n background: {\n default: themeColor.colorScheme.background.default,\n },\n text: {\n primary: themeColor.colorScheme.text.primary,\n secondary: themeColor.colorScheme.text.secondary,\n disabled: themeColor.colorScheme.disabled,\n },\n action: {\n disabledBackground: themeColor.colorScheme.background.disabled,\n },\n\n \"secondary-transparent-1\": `color-mix(in lab, ${themeColor.colorScheme.primary[5]}, transparent 35%)`,\n\n \"focus-1\": themeColor.colorScheme.focus,\n \"focus-1-hover\": \"rgba(166, 4, 67, .2)\",\n \"focus-soft-1\": `color-mix(in lab, var(--mui-palette-secondary-main), transparent 88%)`,\n\n \"primary-emphasis\": `color-mix(in lab, ${themeColor.colorScheme.primary[6]}, ${themeColor.colorScheme.secondary[5]} 35%)`,\n \"primary-contrast\": themeColor.colorScheme.background.default,\n\n \"success-background\": themeColor.colorScheme.success.background,\n \"info-background\": themeColor.colorScheme.info.background,\n \"error-background\": themeColor.colorScheme.error.background,\n \"warning-background\": themeColor.colorScheme.warning.background,\n \"system-background\": themeColor.colorScheme.system.background,\n \"insight-background\": themeColor.colorScheme.insight.background,\n\n Alert: {\n // Mirror MUI dark Alert roles: Color = lightened text, FilledBg = dark, IconColor = main.\n systemColor: `color-mix(in srgb, ${themeColor.colorScheme.system.text}, #fff 55%)`,\n insightColor: `color-mix(in srgb, ${themeColor.colorScheme.insight.text}, #fff 55%)`,\n systemFilledBg: \"rgba(20, 160, 145, 1)\",\n insightFilledBg: \"rgba(130, 100, 220, 1)\",\n systemFilledColor: \"rgba(0, 0, 0, 0.87)\",\n insightFilledColor: \"rgba(0, 0, 0, 0.87)\",\n systemStandardBg: themeColor.colorScheme.system.background,\n insightStandardBg: themeColor.colorScheme.insight.background,\n systemIconColor: themeColor.colorScheme.system.text,\n insightIconColor: themeColor.colorScheme.insight.text,\n },\n \n \"border-1\": \"rgba(102, 102, 102, 0.5)\",\n \"border-hover-1\": \"rgba(45, 98, 145, 0.47)\",\n \"border-disabled\": \"rgba(201, 201, 201, 0.2)\",\n \"shadow-border-1\": `inset 0 0 0px 2px var(--mui-palette-border-1)`,\n \"shadow-outset-1\": `0px 1px 2px 0px var(--mui-palette-border-1),\n 1px 2px 4px 0px var(--mui-palette-border-1),\n 2px 4px 8px 0px var(--mui-palette-border-1),\n 2px 4px 16px 0px var(--mui-palette-border-1)`,\n\n \"background-hover-1\": \"color-mix(in lab, transparent , var(--mui-palette-secondary-dark) 10%)\",\n \"background-hover-2\": \"color-mix(in lab, var(--mui-palette-primary-dark), var(--mui-palette-secondary-dark) 50%)\",\n \"background-disabled\": themeColor.colorScheme.background.disabled,\n \"background-grey-1\": \"rgba(75, 75, 75, 0.72)\",\n \"container-bg-1\": \"color-mix(in lab, var(--mui-palette-background-default), var(--mui-palette-background-grey-1) 80%)\",\n \"container-bg-primary\": themeColor.colorScheme.primary[1],\n \"container-bg-secondary\": `rgba(0, 0, 0, .314)`,\n\n \"text-subscript\": `color-mix(in lab, ${themeColor.colorScheme.text.subscript}, var(--mui-palette-primary-light) 50%)`, \n \"text-href\": `${themeColor.colorScheme.text.href}`,\n // \"text-disabled\"\n \"text-hover\": themeColor.colorScheme.secondary[6],\n \"text-grey-1\": \"rgba(150, 150, 150, 1)\",\n\n \"blink-golden\": \"rgba(248, 161, 0, 1)\",\n \"blink-secondary\": \"color-mix(in lab, var(--mui-palette-secondary-main), #414141a6 50%)\",\n \"blink-shiny\": \"rgb(45, 210, 216)\",\n\n \"transparent-primary-light\": `color-mix(in lab, ${themeColor.colorScheme.primary[6]}, transparent 45%)`,\n \"transparent-secondary-light\": `color-mix(in lab, ${themeColor.colorScheme.secondary[6]}, transparent 45%)`,\n },\n} as const satisfies ColorSystemOptions","\nimport { \n type ColorTheme, \n type ColorSystemOptions \n} from \"./_utils\"\n\nexport const themeColor = {\n themeType: \"light\",\n name: \"lightBrown\",\n\n colorScheme:{\n primary:{\n 1: \"rgba(255, 255, 255, 1)\",\n 2: \"rgba(255, 255, 220, 1)\",\n 3: \"rgba(255, 245, 215, 1)\",\n 4: \"rgba(255, 241, 211,1)\",\n 5: \"rgba(180, 136, 74, 1)\",\n 6: \"rgba(168, 124, 66, 1)\",\n main: 5,\n },\n secondary:{\n 1: \"rgba(35, 10, 25, 1)\",\n 2: \"rgba(45, 20, 30, 1)\",\n 3: \"rgba(75, 20, 30, 1)\",\n 4: \"rgba(105, 45, 40, 1)\",\n 5: \"rgba(130, 60, 40, 1)\",\n 6: \"rgba(165, 105, 65, 1)\",\n main: 4,\n },\n\n error: {\n text: \"rgba(255, 45, 120, 1)\",\n background: \"rgba(255, 220, 230, 1)\",\n },\n warning: {\n text: \"rgba(240, 169, 56, 1)\",\n background: \"rgba(255, 241, 211, 1)\",\n },\n info: {\n text: \"rgba(100, 180, 255, 1)\",\n background: \"rgba(237, 252, 255, 1)\",\n },\n success: {\n text: \"rgba(49, 161, 85, 1)\",\n background: \"rgba(237, 255, 238, 1)\",\n },\n system: {\n text: \"rgba(13, 148, 136, 1)\",\n background: \"rgba(204, 251, 241, 1)\",\n },\n insight: {\n text: \"rgba(124, 58, 237, 1)\",\n background: \"rgba(237, 233, 254, 1)\",\n },\n\n focus: \"rgba(255, 47, 122, 0.31)\",\n disabled: \"rgba(196, 191, 187, 1)\",\n background: {\n default: \"rgba(255, 255, 255, 1)\",\n disabled: \"rgba(150, 150, 150, 0.12)\",\n },\n text: {\n primary: \"rgba(35, 10, 25, 1)\",\n secondary: \"rgba(194, 178, 167, 1)\",\n subscript: \"rgba(92, 92, 92, 1)\",\n href: \"rgba(255, 0, 153, 1)\",\n },\n },\n\n} as const satisfies ColorTheme\n\nexport const muiPalette = {\n palette: {\n mode: \"light\",\n primary: {\n dark: themeColor.colorScheme.primary[6],\n main: themeColor.colorScheme.primary[themeColor.colorScheme.primary.main],\n light: themeColor.colorScheme.primary[1],\n },\n secondary: {\n dark: themeColor.colorScheme.secondary[3],\n main: themeColor.colorScheme.secondary[themeColor.colorScheme.secondary.main],\n light: themeColor.colorScheme.secondary[6],\n },\n error: {\n main: themeColor.colorScheme.error.text,\n },\n warning: {\n main: themeColor.colorScheme.warning.text,\n },\n info: {\n main: themeColor.colorScheme.info.text,\n },\n success: {\n main: themeColor.colorScheme.success.text,\n },\n system: {\n main: themeColor.colorScheme.system.text,\n light: \"rgba(45, 180, 168, 1)\",\n dark: \"rgba(10, 120, 110, 1)\",\n contrastText: \"rgba(255, 255, 255, 1)\",\n },\n insight: {\n main: themeColor.colorScheme.insight.text,\n light: \"rgba(148, 90, 245, 1)\",\n dark: \"rgba(100, 40, 200, 1)\",\n contrastText: \"rgba(255, 255, 255, 1)\",\n },\n background: {\n default: themeColor.colorScheme.background.default,\n },\n text: {\n primary: themeColor.colorScheme.text.primary,\n secondary: themeColor.colorScheme.text.secondary,\n disabled: themeColor.colorScheme.disabled,\n },\n action: {\n disabledBackground: themeColor.colorScheme.background.disabled,\n },\n\n \"secondary-transparent-1\": `color-mix(in lab, ${themeColor.colorScheme.secondary[6]}, transparent 65%)`,\n\n \"focus-1\": themeColor.colorScheme.focus,\n \"focus-1-hover\": \"rgba(255, 175, 204, .38)\",\n \"focus-soft-1\": 'color-mix(in lab, var(--mui-palette-secondary-dark), transparent 90%)',\n\n \"primary-emphasis\": `color-mix(in lab, ${themeColor.colorScheme.secondary[4]}, ${themeColor.colorScheme.primary[6]} 28%)`,\n \"primary-contrast\": themeColor.colorScheme.primary[1],\n\n \"success-background\": themeColor.colorScheme.success.background,\n \"info-background\": themeColor.colorScheme.info.background,\n \"error-background\": themeColor.colorScheme.error.background,\n \"warning-background\": themeColor.colorScheme.warning.background,\n \"system-background\": themeColor.colorScheme.system.background,\n \"insight-background\": themeColor.colorScheme.insight.background,\n\n Alert: {\n // Mirror MUI Alert token roles: Color (standard text), FilledBg, IconColor, StandardBg.\n systemColor: `color-mix(in srgb, ${themeColor.colorScheme.system.text}, #000 40%)`,\n insightColor: `color-mix(in srgb, ${themeColor.colorScheme.insight.text}, #000 40%)`,\n systemFilledBg: themeColor.colorScheme.system.text,\n insightFilledBg: themeColor.colorScheme.insight.text,\n systemFilledColor: \"rgba(255, 255, 255, 1)\",\n insightFilledColor: \"rgba(255, 255, 255, 1)\",\n systemStandardBg: themeColor.colorScheme.system.background,\n insightStandardBg: themeColor.colorScheme.insight.background,\n systemIconColor: themeColor.colorScheme.system.text,\n insightIconColor: themeColor.colorScheme.insight.text,\n },\n \n \"border-1\": \"rgba(201, 201, 201, 0.5)\",\n \"border-hover-1\": \"rgba(46, 18, 30, 0.47)\",\n \"border-disabled\": \"rgba(138, 138, 138, 0.19)\",\n \"shadow-border-1\": `inset 0 0 0px 2px var(--mui-palette-border-1)`,\n \"shadow-outset-1\": `0px 1px 2px 0px var(--mui-palette-border-1),\n 1px 2px 4px 0px var(--mui-palette-border-1),\n 2px 4px 8px 0px var(--mui-palette-border-1),\n 2px 4px 16px 0px var(--mui-palette-border-1)`,\n\n \"background-hover-1\": \"color-mix(in lab, transparent , var(--mui-palette-secondary-dark) 10%)\",\n \"background-hover-2\": \"color-mix(in lab, var(--mui-palette-primary-light) , var(--mui-palette-secondary-dark) 10%)\",\n \"background-disabled\": themeColor.colorScheme.background.disabled,\n \"background-grey-1\": \"rgba(55, 55, 55, 0.20)\",\n \"container-bg-1\": \"color-mix(in lab, var(--mui-palette-background-default), transparent 20%)\",\n // legacy helpers for chat container backgrounds\n \"container-bg-primary\": themeColor.colorScheme.primary[4],\n \"container-bg-secondary\": 'rgba(255, 249, 241, .525)',\n\n \"text-subscript\": `color-mix(in lab, ${themeColor.colorScheme.text.subscript}, var(--mui-palette-primary-main) 50%)`, \n \"text-href\": `${themeColor.colorScheme.text.href}`, // \"text-disabled\"\n \"text-hover\": \"rgba(36, 9, 24, 1)\",\n \"text-grey-1\": \"color-mix(in lab, var(--mui-palette-secondary-dark), rgba(120, 120, 120, 1) 80%)\",\n\n \"blink-golden\": \"rgba(248, 161, 0, 1)\",\n \"blink-secondary\": \"color-mix(in lab, var(--mui-palette-secondary-main), #e4e4e4a6 50%)\",\n \"blink-shiny\": \"rgb(250, 60, 177)\",\n\n \"transparent-primary-light\": `color-mix(in lab, ${themeColor.colorScheme.primary[6]}, transparent 45%)`,\n \"transparent-secondary-light\": `color-mix(in lab, ${themeColor.colorScheme.secondary[6]}, transparent 45%)`,\n },\n} as const satisfies ColorSystemOptions","import React from 'react';\nimport { useColorScheme } from '@mui/material/styles';\n\nimport { IconButton } from '@/ele/Button'\nimport { Skeleton } from '@/ele/Skeleton'\nimport { Tooltip } from '@/ele/Tooltip'\nimport { MoonIcon, SunIcon } from '@/icons/MuiIcon'\n\nexport type ToggleThemeButtonRenderMode = 'auto' | 'client' | 'server';\n\nexport interface ToggleThemeButtonProps {\n forceRenderMode?: Exclude<ToggleThemeButtonRenderMode, 'auto'>;\n}\n\nfunction resolveRenderMode(forceRenderMode?: ToggleThemeButtonProps['forceRenderMode']): ToggleThemeButtonRenderMode {\n if (forceRenderMode) {\n return forceRenderMode;\n }\n\n return typeof window === 'undefined' ? 'server' : 'client';\n}\n\nfunction getCurrentMode(mode: ReturnType<typeof useColorScheme>['mode']) {\n if (mode !== 'system' && mode !== undefined) {\n return mode;\n }\n\n if (typeof window === 'undefined') {\n return 'light';\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n}\n\nfunction applyColorScheme(nextMode: 'light' | 'dark') {\n if (typeof document === 'undefined') {\n return;\n }\n document.documentElement.setAttribute('color-scheme', nextMode);\n}\n\nfunction commitMode(setMode: (mode: 'light' | 'dark') => void, nextMode: 'light' | 'dark') {\n const commit = () => setMode(nextMode);\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => {\n requestAnimationFrame(commit);\n });\n return;\n }\n setTimeout(commit, 0);\n}\n\nexport default function ToggleButton({ forceRenderMode }: ToggleThemeButtonProps) {\n const { mode, setMode } = useColorScheme();\n const renderMode = resolveRenderMode(forceRenderMode);\n const resolvedMode = getCurrentMode(mode);\n const [displayedMode, setDisplayedMode] = React.useState(resolvedMode);\n\n React.useEffect(() => {\n setDisplayedMode(resolvedMode);\n }, [resolvedMode]);\n\n if (renderMode === 'server') {\n return <Skeleton variant=\"rounded\" width={34} height={34} />;\n }\n\n const nextMode = displayedMode === 'dark' ? 'light' : 'dark';\n const label = `Switch to ${nextMode} mode`;\n\n function toggle() {\n setDisplayedMode(nextMode);\n applyColorScheme(nextMode);\n commitMode(setMode, nextMode);\n }\n\n return (\n <Tooltip title={label}>\n <IconButton\n aria-label={label}\n onClick={toggle}\n color=\"primary\"\n size=\"medium\"\n sx={{\n '--button-color': 'var(--mui-palette-primary-emphasis)',\n '--button-hover-border-color': 'var(--mui-palette-primary-emphasis)',\n '&:active': { scale: '1' },\n '&:active svg': { scale: '1' },\n }}\n >\n {displayedMode === 'dark' ? <SunIcon /> : <MoonIcon />}\n </IconButton>\n </Tooltip>\n );\n}\n","export const appScrollSurfaceAttribute = 'data-scroll-surface';\n"],"mappings":"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","names":["themeColor","muiPalette","muiPalette","ThemeTree","React","jsx","React","default"]}