@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.
- package/dist/AutocompleteField-653233JU.mjs +203 -0
- package/dist/AutocompleteField-653233JU.mjs.map +1 -0
- package/dist/AvatarField-KFASMVZU.mjs +378 -0
- package/dist/AvatarField-KFASMVZU.mjs.map +1 -0
- package/dist/{DateField-ZYMZFHL4.mjs → DateField-CDJ6W6XF.mjs} +19 -7
- package/dist/DateField-CDJ6W6XF.mjs.map +1 -0
- package/dist/DateRangeField-ZWSFT5KV.mjs +118 -0
- package/dist/DateRangeField-ZWSFT5KV.mjs.map +1 -0
- package/dist/{DateTimeField-TPTJ7YIZ.mjs → DateTimeField-SFAF4I6A.mjs} +36 -11
- package/dist/DateTimeField-SFAF4I6A.mjs.map +1 -0
- package/dist/FileUploadField-TSNCSLXX.mjs +101 -0
- package/dist/FileUploadField-TSNCSLXX.mjs.map +1 -0
- package/dist/{JSONEditorField-TMRWGXVR.mjs → JSONEditorField-3KXC2GOG.mjs} +7 -6
- package/dist/{JSONEditorField-TMRWGXVR.mjs.map → JSONEditorField-3KXC2GOG.mjs.map} +1 -1
- package/dist/{PopperMenu-LJ36RPBW.mjs → PopperMenu-PSHLKIEZ.mjs} +26 -12
- package/dist/{PopperMenu-LJ36RPBW.mjs.map → PopperMenu-PSHLKIEZ.mjs.map} +1 -1
- package/dist/{TelField-LOGRVZ4I.mjs → TelField-FRQT2UBJ.mjs} +8 -7
- package/dist/{TelField-LOGRVZ4I.mjs.map → TelField-FRQT2UBJ.mjs.map} +1 -1
- package/dist/TimeField-XVWXBJID.mjs +94 -0
- package/dist/TimeField-XVWXBJID.mjs.map +1 -0
- package/dist/alert.d.mts +148 -18
- package/dist/alert.d.ts +148 -18
- package/dist/alert.js +698 -254
- package/dist/alert.js.map +1 -1
- package/dist/alert.mjs +46 -10
- package/dist/autocomplete.d.mts +438 -4
- package/dist/autocomplete.d.ts +438 -4
- package/dist/autocomplete.js +632 -21
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.mjs +26 -7
- package/dist/avatar.js +2 -1
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.mjs +12 -11
- package/dist/box.mjs +2 -1
- package/dist/button.mjs +3 -2
- package/dist/chart.mjs +3 -2
- package/dist/checkbox.mjs +3 -2
- package/dist/chunk-2FK24ZPJ.mjs +78 -0
- package/dist/chunk-2FK24ZPJ.mjs.map +1 -0
- package/dist/{chunk-V26V2S3W.mjs → chunk-3O3N6X6D.mjs} +3 -3
- package/dist/{chunk-Y74ALKBL.mjs → chunk-4MSPA7U7.mjs} +11 -9
- package/dist/{chunk-Y74ALKBL.mjs.map → chunk-4MSPA7U7.mjs.map} +1 -1
- package/dist/{chunk-24XDGNJ6.mjs → chunk-4P45Z5LR.mjs} +63 -41
- package/dist/chunk-4P45Z5LR.mjs.map +1 -0
- package/dist/chunk-4SSJY32J.mjs +1182 -0
- package/dist/chunk-4SSJY32J.mjs.map +1 -0
- package/dist/{chunk-XJ2SXC2Q.mjs → chunk-6B6I27TT.mjs} +18 -16
- package/dist/{chunk-XJ2SXC2Q.mjs.map → chunk-6B6I27TT.mjs.map} +1 -1
- package/dist/chunk-6JKMEH2L.mjs +205 -0
- package/dist/chunk-6JKMEH2L.mjs.map +1 -0
- package/dist/{chunk-IN3O4R7Q.mjs → chunk-7O526A2D.mjs} +6 -4
- package/dist/{chunk-IN3O4R7Q.mjs.map → chunk-7O526A2D.mjs.map} +1 -1
- package/dist/chunk-AFLEG5ZC.mjs +28 -0
- package/dist/chunk-AFLEG5ZC.mjs.map +1 -0
- package/dist/{chunk-UGMRJMFZ.mjs → chunk-BO5CU4ZM.mjs} +4 -4
- package/dist/{chunk-JIU5GVM7.mjs → chunk-D4XPNSSI.mjs} +5 -3
- package/dist/{chunk-JIU5GVM7.mjs.map → chunk-D4XPNSSI.mjs.map} +1 -1
- package/dist/chunk-DPIMA5IO.mjs +72 -0
- package/dist/chunk-DPIMA5IO.mjs.map +1 -0
- package/dist/chunk-F2CGFVIZ.mjs +83 -0
- package/dist/chunk-F2CGFVIZ.mjs.map +1 -0
- package/dist/{chunk-R5MKQN6D.mjs → chunk-FBLSJQWK.mjs} +3 -3
- package/dist/{chunk-BGB7JHIU.mjs → chunk-FMGZCOJC.mjs} +5 -3
- package/dist/{chunk-BGB7JHIU.mjs.map → chunk-FMGZCOJC.mjs.map} +1 -1
- package/dist/{chunk-UTVSYS6S.mjs → chunk-FNSIQ2B7.mjs} +18 -6
- package/dist/chunk-FNSIQ2B7.mjs.map +1 -0
- package/dist/{chunk-JWANK42G.mjs → chunk-FUZ2JNTZ.mjs} +3 -3
- package/dist/{chunk-CRYIEYZZ.mjs → chunk-HAJWE62X.mjs} +66 -42
- package/dist/chunk-HAJWE62X.mjs.map +1 -0
- package/dist/{chunk-CWFWRZWU.mjs → chunk-KSN33A6I.mjs} +3 -2
- package/dist/{chunk-CWFWRZWU.mjs.map → chunk-KSN33A6I.mjs.map} +1 -1
- package/dist/chunk-KYTHGFFY.mjs +866 -0
- package/dist/chunk-KYTHGFFY.mjs.map +1 -0
- package/dist/{chunk-QKGCW37O.mjs → chunk-LDFM46LV.mjs} +5 -3
- package/dist/{chunk-QKGCW37O.mjs.map → chunk-LDFM46LV.mjs.map} +1 -1
- package/dist/chunk-LQNDBPHU.mjs +142 -0
- package/dist/chunk-LQNDBPHU.mjs.map +1 -0
- package/dist/{chunk-E3I2VDHZ.mjs → chunk-M2PYXSAF.mjs} +6 -4
- package/dist/{chunk-E3I2VDHZ.mjs.map → chunk-M2PYXSAF.mjs.map} +1 -1
- package/dist/{chunk-DELCADNF.mjs → chunk-ODVKRIVN.mjs} +30 -30
- package/dist/{chunk-HR3A4H4E.mjs → chunk-PEJL2T2K.mjs} +13 -11
- package/dist/{chunk-HR3A4H4E.mjs.map → chunk-PEJL2T2K.mjs.map} +1 -1
- package/dist/{chunk-OGNGPI3M.mjs → chunk-PL55YKT4.mjs} +2 -2
- package/dist/{chunk-S6EZVRZC.mjs → chunk-PNSJC6PC.mjs} +5 -28
- package/dist/chunk-PNSJC6PC.mjs.map +1 -0
- package/dist/{chunk-TDRA5EZI.mjs → chunk-PUREEN2J.mjs} +7 -7
- package/dist/chunk-QFS5CENY.mjs +659 -0
- package/dist/chunk-QFS5CENY.mjs.map +1 -0
- package/dist/chunk-RSN7NH2J.mjs +250 -0
- package/dist/chunk-RSN7NH2J.mjs.map +1 -0
- package/dist/{chunk-UDREPVEY.mjs → chunk-RVSMEZE3.mjs} +12 -78
- package/dist/chunk-RVSMEZE3.mjs.map +1 -0
- package/dist/{chunk-SRWPHN2N.mjs → chunk-S64IYJ6Y.mjs} +2 -2
- package/dist/{chunk-ZG3NQI77.mjs → chunk-SMD7OEUW.mjs} +6 -4
- package/dist/{chunk-ZG3NQI77.mjs.map → chunk-SMD7OEUW.mjs.map} +1 -1
- package/dist/{chunk-NJYNJLT7.mjs → chunk-SWFB3A3G.mjs} +2 -2
- package/dist/{chunk-RXBQ7KXF.mjs → chunk-USXGNKWJ.mjs} +98 -44
- package/dist/chunk-USXGNKWJ.mjs.map +1 -0
- package/dist/{chunk-OJV6V7YZ.mjs → chunk-VL7V52YD.mjs} +27 -20
- package/dist/chunk-VL7V52YD.mjs.map +1 -0
- package/dist/{chunk-2ZZJTBTE.mjs → chunk-WJZ3IYET.mjs} +2 -2
- package/dist/chunk-XAJAMVAG.mjs +1720 -0
- package/dist/chunk-XAJAMVAG.mjs.map +1 -0
- package/dist/chunk-YIJ5QVJ6.mjs +277 -0
- package/dist/chunk-YIJ5QVJ6.mjs.map +1 -0
- package/dist/{chunk-T6AMRENK.mjs → chunk-YRW5NKD7.mjs} +148 -112
- package/dist/chunk-YRW5NKD7.mjs.map +1 -0
- package/dist/chunk-ZMJKG2UI.mjs +71 -0
- package/dist/chunk-ZMJKG2UI.mjs.map +1 -0
- package/dist/confirm.d.mts +48 -0
- package/dist/confirm.d.ts +48 -0
- package/dist/confirm.js +334 -0
- package/dist/confirm.js.map +1 -0
- package/dist/confirm.mjs +20 -0
- package/dist/datePicker.d.mts +256 -14
- package/dist/datePicker.d.ts +256 -14
- package/dist/datePicker.js +1624 -145
- package/dist/datePicker.js.map +1 -1
- package/dist/datePicker.mjs +19 -6
- package/dist/dialog.d.mts +166 -0
- package/dist/dialog.d.ts +166 -0
- package/dist/dialog.js +362 -0
- package/dist/dialog.js.map +1 -0
- package/dist/dialog.mjs +45 -0
- package/dist/emptyState.d.mts +17 -0
- package/dist/emptyState.d.ts +17 -0
- package/dist/emptyState.js +253 -0
- package/dist/emptyState.js.map +1 -0
- package/dist/emptyState.mjs +12 -0
- package/dist/emptyState.mjs.map +1 -0
- package/dist/errorState.d.mts +18 -0
- package/dist/errorState.d.ts +18 -0
- package/dist/{displayFile.js → errorState.js} +107 -156
- package/dist/errorState.js.map +1 -0
- package/dist/errorState.mjs +15 -0
- package/dist/errorState.mjs.map +1 -0
- package/dist/fileUpload.d.mts +197 -0
- package/dist/fileUpload.d.ts +197 -0
- package/dist/fileUpload.js +1483 -0
- package/dist/fileUpload.js.map +1 -0
- package/dist/fileUpload.mjs +65 -0
- package/dist/fileUpload.mjs.map +1 -0
- package/dist/flowMap.mjs +7 -6
- package/dist/flowMap.mjs.map +1 -1
- package/dist/image.js +1195 -429
- package/dist/image.js.map +1 -1
- package/dist/image.mjs +8 -6
- package/dist/index.d.ts +7 -2
- package/dist/index.js +8606 -4087
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +314 -152
- package/dist/inlineError.d.mts +16 -0
- package/dist/inlineError.d.ts +16 -0
- package/dist/inlineError.js +297 -0
- package/dist/inlineError.js.map +1 -0
- package/dist/inlineError.mjs +15 -0
- package/dist/inlineError.mjs.map +1 -0
- package/dist/input.mjs +8 -7
- package/dist/jsonEditor.mjs +3 -2
- package/dist/list.mjs +7 -6
- package/dist/loading.mjs +8 -6
- package/dist/markdown.mjs +7 -6
- package/dist/markdown.mjs.map +1 -1
- package/dist/menu.mjs +9 -8
- package/dist/modal.js +2 -1
- package/dist/modal.js.map +1 -1
- package/dist/modal.mjs +7 -5
- package/dist/process.d.mts +33 -75
- package/dist/process.d.ts +33 -75
- package/dist/process.js +1275 -203
- package/dist/process.js.map +1 -1
- package/dist/process.mjs +12 -9
- package/dist/scrollToLoad.mjs +4 -3
- package/dist/select.mjs +10 -9
- package/dist/skeleton.d.mts +15 -1
- package/dist/skeleton.d.ts +15 -1
- package/dist/skeleton.js +114 -2
- package/dist/skeleton.js.map +1 -1
- package/dist/skeleton.mjs +6 -3
- package/dist/stepper.mjs +4 -3
- package/dist/tab.mjs +10 -9
- package/dist/table.d.mts +269 -85
- package/dist/table.d.ts +269 -85
- package/dist/table.js +5102 -3153
- package/dist/table.js.map +1 -1
- package/dist/table.mjs +21 -19
- package/dist/theme.js +1766 -432
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +32 -25
- package/dist/timeline.mjs +4 -3
- package/dist/toast.d.mts +49 -0
- package/dist/toast.d.ts +49 -0
- package/dist/toast.js +175 -0
- package/dist/toast.js.map +1 -0
- package/dist/toast.mjs +9 -0
- package/dist/toast.mjs.map +1 -0
- package/dist/toggleButtonGroup.mjs +3 -2
- package/dist/useForm.d.mts +270 -86
- package/dist/useForm.d.ts +270 -86
- package/dist/useForm.js +4672 -2727
- package/dist/useForm.js.map +1 -1
- package/dist/useForm.mjs +18 -16
- package/dist/useSearch.mjs +13 -12
- package/dist/variablesRenderer.mjs +8 -7
- package/package.json +3 -3
- package/dist/AutocompleteField-ZKNU2IRR.mjs +0 -181
- package/dist/AutocompleteField-ZKNU2IRR.mjs.map +0 -1
- package/dist/AvatarField-SAODT3CZ.mjs +0 -275
- package/dist/AvatarField-SAODT3CZ.mjs.map +0 -1
- package/dist/DateField-ZYMZFHL4.mjs.map +0 -1
- package/dist/DateTimeField-TPTJ7YIZ.mjs.map +0 -1
- package/dist/FileUploadField-NTMWBJER.mjs +0 -78
- package/dist/FileUploadField-NTMWBJER.mjs.map +0 -1
- package/dist/chunk-24XDGNJ6.mjs.map +0 -1
- package/dist/chunk-27KYFU7R.mjs +0 -30
- package/dist/chunk-27KYFU7R.mjs.map +0 -1
- package/dist/chunk-AAH2O24U.mjs +0 -325
- package/dist/chunk-AAH2O24U.mjs.map +0 -1
- package/dist/chunk-CRYIEYZZ.mjs.map +0 -1
- package/dist/chunk-EEH7HACG.mjs +0 -249
- package/dist/chunk-EEH7HACG.mjs.map +0 -1
- package/dist/chunk-EKPULYPU.mjs +0 -497
- package/dist/chunk-EKPULYPU.mjs.map +0 -1
- package/dist/chunk-OJV6V7YZ.mjs.map +0 -1
- package/dist/chunk-RXBQ7KXF.mjs.map +0 -1
- package/dist/chunk-S6EZVRZC.mjs.map +0 -1
- package/dist/chunk-SGCUDWO3.mjs +0 -396
- package/dist/chunk-SGCUDWO3.mjs.map +0 -1
- package/dist/chunk-T6AMRENK.mjs.map +0 -1
- package/dist/chunk-UDREPVEY.mjs.map +0 -1
- package/dist/chunk-UTVSYS6S.mjs.map +0 -1
- package/dist/chunk-XIMFP6RB.mjs +0 -161
- package/dist/chunk-XIMFP6RB.mjs.map +0 -1
- package/dist/displayFile.d.mts +0 -95
- package/dist/displayFile.d.ts +0 -95
- package/dist/displayFile.js.map +0 -1
- package/dist/displayFile.mjs +0 -19
- package/dist/fileUploader.d.mts +0 -86
- package/dist/fileUploader.d.ts +0 -86
- package/dist/fileUploader.js +0 -722
- package/dist/fileUploader.js.map +0 -1
- package/dist/fileUploader.mjs +0 -16
- /package/dist/{chunk-V26V2S3W.mjs.map → chunk-3O3N6X6D.mjs.map} +0 -0
- /package/dist/{chunk-UGMRJMFZ.mjs.map → chunk-BO5CU4ZM.mjs.map} +0 -0
- /package/dist/{chunk-R5MKQN6D.mjs.map → chunk-FBLSJQWK.mjs.map} +0 -0
- /package/dist/{chunk-JWANK42G.mjs.map → chunk-FUZ2JNTZ.mjs.map} +0 -0
- /package/dist/{chunk-DELCADNF.mjs.map → chunk-ODVKRIVN.mjs.map} +0 -0
- /package/dist/{chunk-OGNGPI3M.mjs.map → chunk-PL55YKT4.mjs.map} +0 -0
- /package/dist/{chunk-TDRA5EZI.mjs.map → chunk-PUREEN2J.mjs.map} +0 -0
- /package/dist/{chunk-SRWPHN2N.mjs.map → chunk-S64IYJ6Y.mjs.map} +0 -0
- /package/dist/{chunk-NJYNJLT7.mjs.map → chunk-SWFB3A3G.mjs.map} +0 -0
- /package/dist/{chunk-2ZZJTBTE.mjs.map → chunk-WJZ3IYET.mjs.map} +0 -0
- /package/dist/{displayFile.mjs.map → confirm.mjs.map} +0 -0
- /package/dist/{fileUploader.mjs.map → dialog.mjs.map} +0 -0
package/dist/chunk-AAH2O24U.mjs
DELETED
|
@@ -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":"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","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"]}
|