@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/useForm.mjs
CHANGED
|
@@ -4,35 +4,37 @@ import {
|
|
|
4
4
|
UseForm,
|
|
5
5
|
useConfiguredForm,
|
|
6
6
|
useForm2
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4P45Z5LR.mjs";
|
|
8
8
|
import "./chunk-MI64T62E.mjs";
|
|
9
9
|
import {
|
|
10
10
|
FIELD_TYPEs
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-V26V2S3W.mjs";
|
|
11
|
+
} from "./chunk-FNSIQ2B7.mjs";
|
|
13
12
|
import "./chunk-T34IULP5.mjs";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-WJZ3IYET.mjs";
|
|
14
|
+
import "./chunk-BO5CU4ZM.mjs";
|
|
15
|
+
import "./chunk-3O3N6X6D.mjs";
|
|
16
16
|
import "./chunk-EW4DTFH3.mjs";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-RVSMEZE3.mjs";
|
|
18
|
+
import "./chunk-2FK24ZPJ.mjs";
|
|
19
|
+
import "./chunk-KSN33A6I.mjs";
|
|
20
|
+
import "./chunk-PEJL2T2K.mjs";
|
|
21
|
+
import "./chunk-PUREEN2J.mjs";
|
|
22
22
|
import "./chunk-3DQINB57.mjs";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-I5JWS4Z7.mjs";
|
|
24
|
+
import "./chunk-FMGZCOJC.mjs";
|
|
25
25
|
import "./chunk-3VUAM2GY.mjs";
|
|
26
|
+
import "./chunk-T4X375IG.mjs";
|
|
26
27
|
import "./chunk-WYYP3Y34.mjs";
|
|
28
|
+
import "./chunk-VYD3PDBB.mjs";
|
|
27
29
|
import "./chunk-MDAUF7IL.mjs";
|
|
28
30
|
import "./chunk-UMJ5SCIQ.mjs";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-ZVFYOXDE.mjs";
|
|
32
|
+
import "./chunk-D4XPNSSI.mjs";
|
|
31
33
|
import "./chunk-4Q54P737.mjs";
|
|
32
34
|
import "./chunk-OP6LKXPA.mjs";
|
|
33
|
-
import "./chunk-ZVFYOXDE.mjs";
|
|
34
35
|
import "./chunk-4RPFRNXG.mjs";
|
|
35
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-PNSJC6PC.mjs";
|
|
37
|
+
import "./chunk-AFLEG5ZC.mjs";
|
|
36
38
|
import "./chunk-FJ6ZGZIA.mjs";
|
|
37
39
|
export {
|
|
38
40
|
FIELD_TYPEs,
|
package/dist/useSearch.mjs
CHANGED
|
@@ -8,25 +8,26 @@ import {
|
|
|
8
8
|
UseSearchLayout,
|
|
9
9
|
useSearch,
|
|
10
10
|
useSearchContext
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-TDRA5EZI.mjs";
|
|
11
|
+
} from "./chunk-6B6I27TT.mjs";
|
|
12
|
+
import "./chunk-SMD7OEUW.mjs";
|
|
13
|
+
import "./chunk-PL55YKT4.mjs";
|
|
14
|
+
import "./chunk-PEJL2T2K.mjs";
|
|
15
|
+
import "./chunk-PUREEN2J.mjs";
|
|
17
16
|
import "./chunk-3DQINB57.mjs";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-I5JWS4Z7.mjs";
|
|
18
|
+
import "./chunk-FMGZCOJC.mjs";
|
|
20
19
|
import "./chunk-3VUAM2GY.mjs";
|
|
20
|
+
import "./chunk-T4X375IG.mjs";
|
|
21
21
|
import "./chunk-WYYP3Y34.mjs";
|
|
22
|
+
import "./chunk-VYD3PDBB.mjs";
|
|
22
23
|
import "./chunk-MDAUF7IL.mjs";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-ZVFYOXDE.mjs";
|
|
25
|
+
import "./chunk-D4XPNSSI.mjs";
|
|
25
26
|
import "./chunk-4Q54P737.mjs";
|
|
26
27
|
import "./chunk-OP6LKXPA.mjs";
|
|
27
|
-
import "./chunk-ZVFYOXDE.mjs";
|
|
28
28
|
import "./chunk-4RPFRNXG.mjs";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-PNSJC6PC.mjs";
|
|
30
|
+
import "./chunk-AFLEG5ZC.mjs";
|
|
30
31
|
import "./chunk-FJ6ZGZIA.mjs";
|
|
31
32
|
export {
|
|
32
33
|
ScopeSuggestions,
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Var,
|
|
3
3
|
VarField
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-VYD3PDBB.mjs";
|
|
4
|
+
} from "./chunk-FBLSJQWK.mjs";
|
|
5
|
+
import "./chunk-SMD7OEUW.mjs";
|
|
6
|
+
import "./chunk-PL55YKT4.mjs";
|
|
8
7
|
import "./chunk-3DQINB57.mjs";
|
|
9
8
|
import "./chunk-3VUAM2GY.mjs";
|
|
9
|
+
import "./chunk-VYD3PDBB.mjs";
|
|
10
10
|
import "./chunk-MDAUF7IL.mjs";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-ZVFYOXDE.mjs";
|
|
12
|
+
import "./chunk-D4XPNSSI.mjs";
|
|
12
13
|
import "./chunk-4Q54P737.mjs";
|
|
13
14
|
import "./chunk-OP6LKXPA.mjs";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-PNSJC6PC.mjs";
|
|
16
|
+
import "./chunk-AFLEG5ZC.mjs";
|
|
16
17
|
import "./chunk-FJ6ZGZIA.mjs";
|
|
17
18
|
export {
|
|
18
19
|
Var,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@startdownnotez404/ui",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"repository": "https://github.com/startdownnotez404/ui.git",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"prebuild-storybook": "npx eslint \"stories/**/*.{js,ts,jsx,tsx}\"",
|
|
59
59
|
"test": "vitest run --config vitest.config.ts",
|
|
60
60
|
"prestorybook": "node ./scripts/generateDoodlePattern.mjs",
|
|
61
|
-
"storybook": "storybook dev -p 6006
|
|
61
|
+
"storybook": "storybook dev -p 6006 -h 0.0.0.0 --no-open",
|
|
62
62
|
"lint": "npx eslint \"{src,stories}/**/*.{js,ts,jsx,tsx}\" && echo \"ESLint passed \u2705\" || (echo \"ESLint found problems\" && exit 1)",
|
|
63
63
|
"build-storybook": "NODE_OPTIONS=--max-old-space-size=6144 storybook build",
|
|
64
64
|
"run-storybook": "storybook run -p 6006"
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"marked-footnote": "^1.4.0",
|
|
135
135
|
"marked-highlight": "^2.2.3",
|
|
136
136
|
"notistack": "^3.0.2",
|
|
137
|
-
"react-
|
|
137
|
+
"react-file-icon": "^1.6.0",
|
|
138
138
|
"react-hook-form": "^7.71.0",
|
|
139
139
|
"react-image-crop": "^11.0.10",
|
|
140
140
|
"react-phone-number-input": "^3.4.14",
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GitHubPicker
|
|
3
|
-
} from "./chunk-SGCUDWO3.mjs";
|
|
4
|
-
import {
|
|
5
|
-
Option
|
|
6
|
-
} from "./chunk-OJV6V7YZ.mjs";
|
|
7
|
-
import {
|
|
8
|
-
FieldHelperText
|
|
9
|
-
} from "./chunk-MI64T62E.mjs";
|
|
10
|
-
import {
|
|
11
|
-
Explanation_default,
|
|
12
|
-
getFieldExplanation,
|
|
13
|
-
mergeFieldSx
|
|
14
|
-
} from "./chunk-UTVSYS6S.mjs";
|
|
15
|
-
import {
|
|
16
|
-
MuiFormLabel,
|
|
17
|
-
default as default3
|
|
18
|
-
} from "./chunk-T4X375IG.mjs";
|
|
19
|
-
import "./chunk-56TI2ZBT.mjs";
|
|
20
|
-
import "./chunk-MDAUF7IL.mjs";
|
|
21
|
-
import "./chunk-QFF3HTHL.mjs";
|
|
22
|
-
import "./chunk-JIU5GVM7.mjs";
|
|
23
|
-
import "./chunk-4Q54P737.mjs";
|
|
24
|
-
import "./chunk-OP6LKXPA.mjs";
|
|
25
|
-
import "./chunk-ZVFYOXDE.mjs";
|
|
26
|
-
import "./chunk-4RPFRNXG.mjs";
|
|
27
|
-
import {
|
|
28
|
-
default as default2
|
|
29
|
-
} from "./chunk-S6EZVRZC.mjs";
|
|
30
|
-
import "./chunk-FJ6ZGZIA.mjs";
|
|
31
|
-
|
|
32
|
-
// src/components/compound/UseForm/src/Fields/AutocompleteField.tsx
|
|
33
|
-
import React from "react";
|
|
34
|
-
import { Controller, useFormContext } from "react-hook-form";
|
|
35
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
36
|
-
var EMPTY_OPTIONS = [];
|
|
37
|
-
function toOptionClass(option) {
|
|
38
|
-
return option instanceof Option ? option : new Option(option);
|
|
39
|
-
}
|
|
40
|
-
var AutocompleteField = ({ field }) => {
|
|
41
|
-
const acSlot = field.slotProps;
|
|
42
|
-
if (acSlot?.useOptions) {
|
|
43
|
-
return /* @__PURE__ */ jsx(AutocompleteFieldWithOptions, { field, useOptions: acSlot.useOptions });
|
|
44
|
-
}
|
|
45
|
-
return /* @__PURE__ */ jsx(AutocompleteFieldView, { field, options: acSlot?.options ?? EMPTY_OPTIONS });
|
|
46
|
-
};
|
|
47
|
-
var AutocompleteFieldWithOptions = ({
|
|
48
|
-
field,
|
|
49
|
-
useOptions
|
|
50
|
-
}) => {
|
|
51
|
-
const { options = EMPTY_OPTIONS } = useOptions();
|
|
52
|
-
return /* @__PURE__ */ jsx(AutocompleteFieldView, { field, options });
|
|
53
|
-
};
|
|
54
|
-
var AutocompleteFieldView = ({
|
|
55
|
-
field,
|
|
56
|
-
options
|
|
57
|
-
}) => {
|
|
58
|
-
const { control, getValues } = useFormContext();
|
|
59
|
-
const {
|
|
60
|
-
name,
|
|
61
|
-
label,
|
|
62
|
-
required,
|
|
63
|
-
disabled,
|
|
64
|
-
sx,
|
|
65
|
-
size,
|
|
66
|
-
slotProps,
|
|
67
|
-
errorMsg,
|
|
68
|
-
defaultValue
|
|
69
|
-
} = field;
|
|
70
|
-
const acSlot = slotProps;
|
|
71
|
-
const mergedOptions = React.useMemo(
|
|
72
|
-
() => options.map(toOptionClass),
|
|
73
|
-
[options]
|
|
74
|
-
);
|
|
75
|
-
return /* @__PURE__ */ jsx(
|
|
76
|
-
Controller,
|
|
77
|
-
{
|
|
78
|
-
control,
|
|
79
|
-
name,
|
|
80
|
-
defaultValue,
|
|
81
|
-
render: ({ field: { onChange: controllerOnChange, value }, fieldState: { error } }) => /* @__PURE__ */ jsx(
|
|
82
|
-
AutocompletePicker,
|
|
83
|
-
{
|
|
84
|
-
value,
|
|
85
|
-
controllerOnChange,
|
|
86
|
-
mergedOptions,
|
|
87
|
-
acSlot,
|
|
88
|
-
disabled,
|
|
89
|
-
required,
|
|
90
|
-
error,
|
|
91
|
-
errorMsg,
|
|
92
|
-
helperText: field.helperText,
|
|
93
|
-
label,
|
|
94
|
-
size,
|
|
95
|
-
sx,
|
|
96
|
-
explanation: getFieldExplanation(field),
|
|
97
|
-
onFieldChange: (next) => {
|
|
98
|
-
field.onChange?.(next, getValues());
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
)
|
|
102
|
-
}
|
|
103
|
-
);
|
|
104
|
-
};
|
|
105
|
-
function AutocompletePicker({
|
|
106
|
-
value,
|
|
107
|
-
controllerOnChange,
|
|
108
|
-
mergedOptions,
|
|
109
|
-
acSlot,
|
|
110
|
-
disabled,
|
|
111
|
-
required,
|
|
112
|
-
error,
|
|
113
|
-
errorMsg,
|
|
114
|
-
helperText,
|
|
115
|
-
label,
|
|
116
|
-
size,
|
|
117
|
-
sx,
|
|
118
|
-
explanation,
|
|
119
|
-
onFieldChange
|
|
120
|
-
}) {
|
|
121
|
-
const [selectedIds, setSelectedIds] = React.useState(
|
|
122
|
-
Array.isArray(value) ? value : value ? [value] : []
|
|
123
|
-
);
|
|
124
|
-
React.useEffect(() => {
|
|
125
|
-
const next = Array.isArray(value) ? value : value ? [value] : [];
|
|
126
|
-
setSelectedIds(next);
|
|
127
|
-
}, [value]);
|
|
128
|
-
return /* @__PURE__ */ jsxs(
|
|
129
|
-
default3,
|
|
130
|
-
{
|
|
131
|
-
disabled,
|
|
132
|
-
required,
|
|
133
|
-
error: !!error,
|
|
134
|
-
fullWidth: true,
|
|
135
|
-
size: "small",
|
|
136
|
-
sx: mergeFieldSx(size, sx),
|
|
137
|
-
children: [
|
|
138
|
-
/* @__PURE__ */ jsxs(default2, { sx: { display: "flex", alignItems: "center", justifyContent: "flex-start" }, children: [
|
|
139
|
-
/* @__PURE__ */ jsx(MuiFormLabel, { component: "legend", children: label }),
|
|
140
|
-
/* @__PURE__ */ jsx(Explanation_default, { explanation })
|
|
141
|
-
] }),
|
|
142
|
-
/* @__PURE__ */ jsx(default2, { sx: { py: 1 }, children: /* @__PURE__ */ jsx(
|
|
143
|
-
GitHubPicker,
|
|
144
|
-
{
|
|
145
|
-
options: mergedOptions,
|
|
146
|
-
variant: acSlot?.variant,
|
|
147
|
-
color: acSlot?.color,
|
|
148
|
-
multiple: acSlot?.multiple ?? true,
|
|
149
|
-
selectedIdProps: [selectedIds, setSelectedIds],
|
|
150
|
-
onChange: (ids) => {
|
|
151
|
-
if (acSlot?.multiple) {
|
|
152
|
-
controllerOnChange(ids);
|
|
153
|
-
onFieldChange(ids);
|
|
154
|
-
} else {
|
|
155
|
-
const single = Array.isArray(ids) ? ids[0] ?? "" : ids ?? "";
|
|
156
|
-
controllerOnChange(single);
|
|
157
|
-
onFieldChange(single);
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
onDelete: (id) => {
|
|
161
|
-
const next = (selectedIds || []).filter((s) => s !== id);
|
|
162
|
-
if (acSlot?.multiple ?? true) {
|
|
163
|
-
controllerOnChange(next);
|
|
164
|
-
onFieldChange(next);
|
|
165
|
-
} else {
|
|
166
|
-
controllerOnChange("");
|
|
167
|
-
onFieldChange("");
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
error: !!error
|
|
171
|
-
}
|
|
172
|
-
) }),
|
|
173
|
-
/* @__PURE__ */ jsx(FieldHelperText, { error, errorMsg, helpers: [helperText] })
|
|
174
|
-
]
|
|
175
|
-
}
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
export {
|
|
179
|
-
AutocompleteField
|
|
180
|
-
};
|
|
181
|
-
//# sourceMappingURL=AutocompleteField-ZKNU2IRR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/compound/UseForm/src/Fields/AutocompleteField.tsx"],"sourcesContent":["import React from 'react';\nimport { Controller, useFormContext, type FieldError } from 'react-hook-form';\nimport { Box } from '@/ele/Box';\nimport { FormLabel, FormControl } from '@/ele/Form';\nimport { FieldHelperText } from '../_utils/helperText';\nimport { GitHubPicker, OptionClass, type OptionParams } from '@/ele/Autocomplete';\nimport { FieldConfig, FormTypeMap, InferFormDataType } from '../_utils';\nimport { getFieldExplanation, mergeFieldSx } from '../_utils/helpers';\nimport Explanation from './Explanation';\nimport { FIELD_TYPEs } from '../_utils/constants';\nimport type { AutocompleteSlotProps } from '../_utils/slotProps';\n\ninterface AutocompleteFieldProps<T extends FormTypeMap = FormTypeMap> {\n field: Extract<FieldConfig<T>, { type: typeof FIELD_TYPEs.autocomplete }>;\n}\n\ntype AutocompleteUseOptions = NonNullable<AutocompleteSlotProps['useOptions']>;\n\nconst EMPTY_OPTIONS: OptionParams[] = [];\n\nfunction toOptionClass(option: OptionParams | OptionClass): OptionClass {\n return option instanceof OptionClass ? option : new OptionClass(option as OptionParams);\n}\n\nexport const AutocompleteField = <T extends FormTypeMap = FormTypeMap>({ field }: AutocompleteFieldProps<T>) => {\n const acSlot = field.slotProps as AutocompleteSlotProps | undefined;\n if (acSlot?.useOptions) {\n return <AutocompleteFieldWithOptions field={field} useOptions={acSlot.useOptions} />;\n }\n return <AutocompleteFieldView field={field} options={acSlot?.options ?? EMPTY_OPTIONS} />;\n};\n\nconst AutocompleteFieldWithOptions = <T extends FormTypeMap>({\n field,\n useOptions,\n}: AutocompleteFieldProps<T> & { useOptions: AutocompleteUseOptions }) => {\n const { options = EMPTY_OPTIONS } = useOptions();\n return <AutocompleteFieldView field={field} options={options} />;\n};\n\nconst AutocompleteFieldView = <T extends FormTypeMap>({\n field,\n options,\n}: AutocompleteFieldProps<T> & { options: OptionParams[] }) => {\n const { control, getValues } = useFormContext();\n const {\n name,\n label,\n required,\n disabled,\n sx,\n size,\n slotProps,\n errorMsg,\n defaultValue,\n } = field;\n\n const acSlot = slotProps as AutocompleteSlotProps | undefined;\n const mergedOptions = React.useMemo(\n () => options.map(toOptionClass),\n [options],\n );\n\n return (\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field: { onChange: controllerOnChange, value }, fieldState: { error } }) => (\n <AutocompletePicker\n value={value}\n controllerOnChange={controllerOnChange}\n mergedOptions={mergedOptions}\n acSlot={acSlot}\n disabled={disabled}\n required={required}\n error={error}\n errorMsg={errorMsg}\n helperText={field.helperText}\n label={label}\n size={size}\n sx={sx}\n explanation={getFieldExplanation(field)}\n onFieldChange={(next) => {\n field.onChange?.(next, getValues() as InferFormDataType<T>);\n }}\n />\n )}\n />\n );\n};\n\ntype AutocompletePickerProps = {\n value: unknown;\n controllerOnChange: (value: unknown) => void;\n mergedOptions: OptionClass[];\n acSlot: AutocompleteSlotProps | undefined;\n disabled?: boolean;\n required?: boolean;\n error: FieldError | undefined;\n errorMsg?: string;\n helperText?: string;\n label?: string;\n size?: { width?: number | string; height?: number | string };\n sx?: Record<string, unknown>;\n explanation?: React.ComponentProps<typeof Explanation>['explanation'];\n onFieldChange: (next: unknown) => void;\n};\n\nfunction AutocompletePicker({\n value,\n controllerOnChange,\n mergedOptions,\n acSlot,\n disabled,\n required,\n error,\n errorMsg,\n helperText,\n label,\n size,\n sx,\n explanation,\n onFieldChange,\n}: AutocompletePickerProps) {\n const [selectedIds, setSelectedIds] = React.useState<string[]>(\n Array.isArray(value) ? value : (value ? [value as string] : []),\n );\n\n React.useEffect(() => {\n const next = Array.isArray(value) ? value : (value ? [value as string] : []);\n setSelectedIds(next as string[]);\n }, [value]);\n\n return (\n <FormControl\n disabled={disabled}\n required={required}\n error={!!error}\n fullWidth\n size=\"small\"\n sx={mergeFieldSx(size, sx)}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>\n <FormLabel component=\"legend\">{label}</FormLabel>\n <Explanation explanation={explanation} />\n </Box>\n <Box sx={{ py: 1 }}>\n <GitHubPicker\n options={mergedOptions}\n variant={acSlot?.variant}\n color={acSlot?.color}\n multiple={acSlot?.multiple ?? true}\n selectedIdProps={[selectedIds, setSelectedIds]}\n onChange={(ids) => {\n if (acSlot?.multiple) {\n controllerOnChange(ids);\n onFieldChange(ids);\n } else {\n const single = Array.isArray(ids) ? ids[0] ?? '' : ids ?? '';\n controllerOnChange(single);\n onFieldChange(single);\n }\n }}\n onDelete={(id: string) => {\n const next = (selectedIds || []).filter((s) => s !== id);\n if (acSlot?.multiple ?? true) {\n controllerOnChange(next);\n onFieldChange(next);\n } else {\n controllerOnChange('');\n onFieldChange('');\n }\n }}\n error={!!error}\n />\n </Box>\n <FieldHelperText error={error} errorMsg={errorMsg} helpers={[helperText]} />\n </FormControl>\n );\n}\n"],"mappings":"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","names":["default"]}
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Cropper_default
|
|
3
|
-
} from "./chunk-RXBQ7KXF.mjs";
|
|
4
|
-
import {
|
|
5
|
-
AvatarButton
|
|
6
|
-
} from "./chunk-Y74ALKBL.mjs";
|
|
7
|
-
import "./chunk-27KYFU7R.mjs";
|
|
8
|
-
import {
|
|
9
|
-
FieldHelperText
|
|
10
|
-
} from "./chunk-MI64T62E.mjs";
|
|
11
|
-
import {
|
|
12
|
-
Explanation_default,
|
|
13
|
-
getFieldExplanation,
|
|
14
|
-
mergeFieldSx
|
|
15
|
-
} from "./chunk-UTVSYS6S.mjs";
|
|
16
|
-
import "./chunk-EW4DTFH3.mjs";
|
|
17
|
-
import {
|
|
18
|
-
MuiModal
|
|
19
|
-
} from "./chunk-UDREPVEY.mjs";
|
|
20
|
-
import {
|
|
21
|
-
CLASSNAMEs
|
|
22
|
-
} from "./chunk-CWFWRZWU.mjs";
|
|
23
|
-
import "./chunk-HR3A4H4E.mjs";
|
|
24
|
-
import "./chunk-TDRA5EZI.mjs";
|
|
25
|
-
import "./chunk-3DQINB57.mjs";
|
|
26
|
-
import "./chunk-BGB7JHIU.mjs";
|
|
27
|
-
import {
|
|
28
|
-
MuiFormLabel,
|
|
29
|
-
default as default5
|
|
30
|
-
} from "./chunk-T4X375IG.mjs";
|
|
31
|
-
import "./chunk-3VUAM2GY.mjs";
|
|
32
|
-
import "./chunk-56TI2ZBT.mjs";
|
|
33
|
-
import "./chunk-MDAUF7IL.mjs";
|
|
34
|
-
import "./chunk-UMJ5SCIQ.mjs";
|
|
35
|
-
import "./chunk-I5JWS4Z7.mjs";
|
|
36
|
-
import "./chunk-XIMFP6RB.mjs";
|
|
37
|
-
import {
|
|
38
|
-
PreviewableFile
|
|
39
|
-
} from "./chunk-AAH2O24U.mjs";
|
|
40
|
-
import "./chunk-JIU5GVM7.mjs";
|
|
41
|
-
import "./chunk-4Q54P737.mjs";
|
|
42
|
-
import "./chunk-OP6LKXPA.mjs";
|
|
43
|
-
import {
|
|
44
|
-
default79 as default4
|
|
45
|
-
} from "./chunk-ZVFYOXDE.mjs";
|
|
46
|
-
import "./chunk-4RPFRNXG.mjs";
|
|
47
|
-
import {
|
|
48
|
-
default as default2,
|
|
49
|
-
default2 as default3
|
|
50
|
-
} from "./chunk-S6EZVRZC.mjs";
|
|
51
|
-
import "./chunk-FJ6ZGZIA.mjs";
|
|
52
|
-
|
|
53
|
-
// src/components/compound/UseForm/src/Fields/AvatarField.tsx
|
|
54
|
-
import React from "react";
|
|
55
|
-
import { Controller, useFormContext, useWatch } from "react-hook-form";
|
|
56
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
57
|
-
var AVATAR_CROP_CONFIG = { width: 200, unit: "px" };
|
|
58
|
-
var AvatarCropPreview = React.forwardRef((_, ref) => {
|
|
59
|
-
return /* @__PURE__ */ jsx(
|
|
60
|
-
"canvas",
|
|
61
|
-
{
|
|
62
|
-
ref,
|
|
63
|
-
width: 200,
|
|
64
|
-
height: 200,
|
|
65
|
-
style: {
|
|
66
|
-
width: 200,
|
|
67
|
-
height: 200,
|
|
68
|
-
maxWidth: "100%",
|
|
69
|
-
maxHeight: "100%",
|
|
70
|
-
border: "1px dashed grey",
|
|
71
|
-
borderRadius: "50%",
|
|
72
|
-
objectFit: "contain",
|
|
73
|
-
backgroundColor: "transparent"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
);
|
|
77
|
-
});
|
|
78
|
-
AvatarCropPreview.displayName = "AvatarCropPreview";
|
|
79
|
-
function acceptToInputAccept(accept) {
|
|
80
|
-
if (!accept) return "image/*";
|
|
81
|
-
if (typeof accept === "string") return accept;
|
|
82
|
-
const parts = [];
|
|
83
|
-
Object.entries(accept).forEach(([mime, exts]) => {
|
|
84
|
-
parts.push(mime);
|
|
85
|
-
if (Array.isArray(exts)) parts.push(...exts);
|
|
86
|
-
});
|
|
87
|
-
return parts.length ? parts.join(",") : "image/*";
|
|
88
|
-
}
|
|
89
|
-
var AvatarField = ({ field }) => {
|
|
90
|
-
const watchKey = field.slotProps?.watchAvatarNameKey;
|
|
91
|
-
if (watchKey) {
|
|
92
|
-
return /* @__PURE__ */ jsx(AvatarFieldWithNameWatch, { field, watchKey });
|
|
93
|
-
}
|
|
94
|
-
return /* @__PURE__ */ jsx(AvatarFieldView, { field, watchedName: void 0 });
|
|
95
|
-
};
|
|
96
|
-
var AvatarFieldWithNameWatch = ({
|
|
97
|
-
field,
|
|
98
|
-
watchKey
|
|
99
|
-
}) => {
|
|
100
|
-
const { control } = useFormContext();
|
|
101
|
-
const watchedName = useWatch({
|
|
102
|
-
control,
|
|
103
|
-
name: watchKey
|
|
104
|
-
});
|
|
105
|
-
return /* @__PURE__ */ jsx(AvatarFieldView, { field, watchedName });
|
|
106
|
-
};
|
|
107
|
-
var AvatarFieldView = ({
|
|
108
|
-
field,
|
|
109
|
-
watchedName
|
|
110
|
-
}) => {
|
|
111
|
-
const { control, getValues, setValue } = useFormContext();
|
|
112
|
-
const {
|
|
113
|
-
name,
|
|
114
|
-
label,
|
|
115
|
-
required,
|
|
116
|
-
disabled,
|
|
117
|
-
sx,
|
|
118
|
-
size,
|
|
119
|
-
slotProps,
|
|
120
|
-
errorMsg,
|
|
121
|
-
defaultValue
|
|
122
|
-
} = field;
|
|
123
|
-
const avatarSlot = slotProps;
|
|
124
|
-
const [editorOpen, setEditorOpen] = React.useState(false);
|
|
125
|
-
const [editorFiles, setEditorFiles] = React.useState([]);
|
|
126
|
-
const initialFileRef = React.useRef(null);
|
|
127
|
-
const transientBlobUrlsRef = React.useRef([]);
|
|
128
|
-
const inputAccept = acceptToInputAccept(avatarSlot?.accept);
|
|
129
|
-
const backgroundIcon = (typeof avatarSlot?.useBackgroundIcon === "function" ? avatarSlot?.useBackgroundIcon() : null) || avatarSlot?.backgroundIcon;
|
|
130
|
-
const displayNameRaw = (avatarSlot?.watchAvatarNameKey ? watchedName : void 0) ?? avatarSlot?.avatarName ?? avatarSlot?.name ?? "";
|
|
131
|
-
const displayName = String(displayNameRaw ?? "").trim() || void 0;
|
|
132
|
-
return /* @__PURE__ */ jsx(
|
|
133
|
-
Controller,
|
|
134
|
-
{
|
|
135
|
-
control,
|
|
136
|
-
name,
|
|
137
|
-
defaultValue: defaultValue ?? null,
|
|
138
|
-
render: ({ field: { onChange, value }, fieldState: { error } }) => {
|
|
139
|
-
const fileValue = value ?? null;
|
|
140
|
-
const src = fileValue?.url || fileValue?.blobUrl || "";
|
|
141
|
-
const openEditor = () => {
|
|
142
|
-
initialFileRef.current = fileValue;
|
|
143
|
-
setEditorFiles(fileValue ? [fileValue] : []);
|
|
144
|
-
setEditorOpen(true);
|
|
145
|
-
};
|
|
146
|
-
const closeEditor = () => {
|
|
147
|
-
setEditorOpen(false);
|
|
148
|
-
const init = initialFileRef.current;
|
|
149
|
-
setEditorFiles(init ? [init] : []);
|
|
150
|
-
transientBlobUrlsRef.current.forEach((u) => {
|
|
151
|
-
try {
|
|
152
|
-
URL.revokeObjectURL(u);
|
|
153
|
-
} catch {
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
transientBlobUrlsRef.current = [];
|
|
157
|
-
};
|
|
158
|
-
const handleSave = async (url) => {
|
|
159
|
-
const next = url ? await new PreviewableFile({ url }).downloadFile() : null;
|
|
160
|
-
if (url) {
|
|
161
|
-
try {
|
|
162
|
-
URL.revokeObjectURL(url);
|
|
163
|
-
} catch {
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
onChange(next);
|
|
167
|
-
try {
|
|
168
|
-
setValue(String(name), next, { shouldDirty: true, shouldTouch: true });
|
|
169
|
-
} catch {
|
|
170
|
-
}
|
|
171
|
-
;
|
|
172
|
-
field.onChange?.(next, getValues());
|
|
173
|
-
initialFileRef.current = next;
|
|
174
|
-
setEditorFiles(next ? [next] : []);
|
|
175
|
-
setEditorOpen(false);
|
|
176
|
-
};
|
|
177
|
-
const onFileSelectFromSelector = (file) => {
|
|
178
|
-
if (!file) {
|
|
179
|
-
setEditorFiles([]);
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
const blobUrl = URL.createObjectURL(file);
|
|
183
|
-
transientBlobUrlsRef.current.push(blobUrl);
|
|
184
|
-
const next = new PreviewableFile({
|
|
185
|
-
path: file.name,
|
|
186
|
-
blobUrl,
|
|
187
|
-
filename: file.name,
|
|
188
|
-
mimeType: file.type,
|
|
189
|
-
size: file.size,
|
|
190
|
-
fileType: file.type.startsWith("image/") ? "image" : "other"
|
|
191
|
-
});
|
|
192
|
-
setEditorFiles([next]);
|
|
193
|
-
};
|
|
194
|
-
return /* @__PURE__ */ jsxs(
|
|
195
|
-
default5,
|
|
196
|
-
{
|
|
197
|
-
className: CLASSNAMEs.compound.useForm.avatarField,
|
|
198
|
-
disabled,
|
|
199
|
-
required,
|
|
200
|
-
error: !!error,
|
|
201
|
-
fullWidth: true,
|
|
202
|
-
size: "small",
|
|
203
|
-
sx: mergeFieldSx(size, sx),
|
|
204
|
-
children: [
|
|
205
|
-
/* @__PURE__ */ jsxs(default3, { direction: "column", alignItems: "center", justifyContent: "center", gap: 0.5, children: [
|
|
206
|
-
/* @__PURE__ */ jsxs(default2, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1 }, children: [
|
|
207
|
-
/* @__PURE__ */ jsx(MuiFormLabel, { component: "legend", children: label }),
|
|
208
|
-
/* @__PURE__ */ jsx(Explanation_default, { explanation: getFieldExplanation(field) })
|
|
209
|
-
] }),
|
|
210
|
-
/* @__PURE__ */ jsx(default2, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: /* @__PURE__ */ jsx(default2, { sx: { cursor: disabled ? "not-allowed" : "pointer" }, children: /* @__PURE__ */ jsx(
|
|
211
|
-
AvatarButton,
|
|
212
|
-
{
|
|
213
|
-
onClick: disabled ? void 0 : openEditor,
|
|
214
|
-
size: avatarSlot?.size,
|
|
215
|
-
dim: avatarSlot?.dim,
|
|
216
|
-
name: displayName,
|
|
217
|
-
src,
|
|
218
|
-
backgroundIcon: src ? void 0 : backgroundIcon,
|
|
219
|
-
icon: /* @__PURE__ */ jsx(default4, { fontSize: "small" }),
|
|
220
|
-
"aria-label": label || "Avatar"
|
|
221
|
-
}
|
|
222
|
-
) }) }),
|
|
223
|
-
/* @__PURE__ */ jsx(FieldHelperText, { error, errorMsg, helpers: [field.helperText] })
|
|
224
|
-
] }),
|
|
225
|
-
editorOpen ? /* @__PURE__ */ jsx(
|
|
226
|
-
MuiModal,
|
|
227
|
-
{
|
|
228
|
-
className: CLASSNAMEs.elemental.modal,
|
|
229
|
-
openProps: [editorOpen, setEditorOpen],
|
|
230
|
-
onClose: closeEditor,
|
|
231
|
-
title: label || "Avatar",
|
|
232
|
-
size: { w: "70vw", h: "80vh" },
|
|
233
|
-
children: /* @__PURE__ */ jsx(
|
|
234
|
-
default2,
|
|
235
|
-
{
|
|
236
|
-
sx: {
|
|
237
|
-
display: "flex",
|
|
238
|
-
flexDirection: "column",
|
|
239
|
-
height: "100%",
|
|
240
|
-
gap: 2,
|
|
241
|
-
overflow: "hidden"
|
|
242
|
-
},
|
|
243
|
-
children: /* @__PURE__ */ jsx(default2, { sx: { flex: "1 1 auto", minHeight: 0 }, children: /* @__PURE__ */ jsx(
|
|
244
|
-
Cropper_default,
|
|
245
|
-
{
|
|
246
|
-
setImgNull: () => setEditorFiles([]),
|
|
247
|
-
blobUrl: editorFiles?.[0]?.blobUrl || "",
|
|
248
|
-
onSave: handleSave,
|
|
249
|
-
onClear: () => handleSave(""),
|
|
250
|
-
circularCrop: true,
|
|
251
|
-
defaultRatio: 1,
|
|
252
|
-
resizeCropEnabled: true,
|
|
253
|
-
cropConfig: AVATAR_CROP_CONFIG,
|
|
254
|
-
PreviewRenderer: AvatarCropPreview,
|
|
255
|
-
showFileSelector: true,
|
|
256
|
-
fileSelectorAccept: inputAccept,
|
|
257
|
-
fileSelectorButtonLabel: "Select Image",
|
|
258
|
-
onFileSelect: onFileSelectFromSelector
|
|
259
|
-
}
|
|
260
|
-
) })
|
|
261
|
-
}
|
|
262
|
-
)
|
|
263
|
-
}
|
|
264
|
-
) : null
|
|
265
|
-
]
|
|
266
|
-
}
|
|
267
|
-
);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
);
|
|
271
|
-
};
|
|
272
|
-
export {
|
|
273
|
-
AvatarField
|
|
274
|
-
};
|
|
275
|
-
//# sourceMappingURL=AvatarField-SAODT3CZ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/compound/UseForm/src/Fields/AvatarField.tsx"],"sourcesContent":["import React from 'react';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { Box, Stack } from '@/ele/Box';\nimport { FormControl, FormLabel } from '@/ele/Form';\nimport { EditIcon } from '@/icons/MuiIcon';\n\nimport { FieldHelperText } from '../_utils/helperText';\nimport { AvatarButton } from '@/ele/Avatar';\nimport { MuiModal } from '@/ele/Modal';\nimport { Cropper } from '@/ele/Image';\n\nimport PreviewableFile from '@/_utils/classes/PreviewableFile';\nimport { FieldConfig, FormTypeMap, InferFormDataType } from '../_utils';\nimport { FIELD_TYPEs } from '../_utils/constants';\nimport type { AvatarSlotProps } from '../_utils/slotProps';\nimport Explanation from './Explanation';\nimport { CLASSNAMEs } from '@/_utils/_const/classNames';\nimport { getFieldExplanation, mergeFieldSx } from '../_utils/helpers';\n\ninterface AvatarFieldProps<T extends FormTypeMap = FormTypeMap> {\n field: Extract<FieldConfig<T>, { type: typeof FIELD_TYPEs.avatar }>;\n}\n\nconst AVATAR_CROP_CONFIG = { width: 200, unit: 'px' } as const;\n\nconst AvatarCropPreview = React.forwardRef<HTMLCanvasElement>((_, ref) => {\n return (\n <canvas\n ref={ref}\n width={200}\n height={200}\n style={{\n width: 200,\n height: 200,\n maxWidth: '100%',\n maxHeight: '100%',\n border: '1px dashed grey',\n borderRadius: '50%',\n objectFit: 'contain',\n backgroundColor: 'transparent',\n }}\n />\n );\n});\n\nAvatarCropPreview.displayName = 'AvatarCropPreview';\n\nfunction acceptToInputAccept(accept: AvatarSlotProps['accept']): string {\n if (!accept) return 'image/*';\n if (typeof accept === 'string') return accept;\n\n const parts: string[] = [];\n Object.entries(accept).forEach(([mime, exts]) => {\n parts.push(mime);\n if (Array.isArray(exts)) parts.push(...exts);\n });\n return parts.length ? parts.join(',') : 'image/*';\n}\n\nexport const AvatarField = <T extends FormTypeMap = FormTypeMap>({ field }: AvatarFieldProps<T>) => {\n const watchKey = (field.slotProps as AvatarSlotProps | undefined)?.watchAvatarNameKey;\n if (watchKey) {\n return <AvatarFieldWithNameWatch field={field} watchKey={watchKey} />;\n }\n return <AvatarFieldView field={field} watchedName={undefined} />;\n};\n\nconst AvatarFieldWithNameWatch = <T extends FormTypeMap>({\n field,\n watchKey,\n}: AvatarFieldProps<T> & { watchKey: string }) => {\n const { control } = useFormContext();\n const watchedName = useWatch({\n control,\n name: watchKey as never,\n });\n return <AvatarFieldView field={field} watchedName={watchedName} />;\n};\n\nconst AvatarFieldView = <T extends FormTypeMap>({\n field,\n watchedName,\n}: AvatarFieldProps<T> & { watchedName: unknown }) => {\n const { control, getValues, setValue } = useFormContext();\n\n const {\n name,\n label,\n required,\n disabled,\n sx,\n size,\n slotProps,\n errorMsg,\n defaultValue,\n } = field;\n\n const avatarSlot = slotProps as AvatarSlotProps | undefined;\n const [editorOpen, setEditorOpen] = React.useState(false);\n const [editorFiles, setEditorFiles] = React.useState<PreviewableFile[]>([]);\n const initialFileRef = React.useRef<PreviewableFile | null>(null);\n const transientBlobUrlsRef = React.useRef<string[]>([]);\n\n const inputAccept = acceptToInputAccept(avatarSlot?.accept);\n const backgroundIcon = (typeof avatarSlot?.useBackgroundIcon === 'function'\n ? avatarSlot?.useBackgroundIcon()\n : null) || avatarSlot?.backgroundIcon;\n\n const displayNameRaw =\n (avatarSlot?.watchAvatarNameKey ? watchedName : undefined) ??\n avatarSlot?.avatarName ??\n avatarSlot?.name ??\n '';\n const displayName = String(displayNameRaw ?? '').trim() || undefined;\n\n return (\n <Controller\n control={control}\n name={name}\n defaultValue={(defaultValue ?? null) as PreviewableFile | null}\n render={({ field: { onChange, value }, fieldState: { error } }) => {\n const fileValue = (value ?? null) as PreviewableFile | null;\n const src = fileValue?.url || fileValue?.blobUrl || '';\n\n // unified helper text component\n // use FieldHelperText to render slot or validation messages consistently\n\n const openEditor = () => {\n initialFileRef.current = fileValue;\n setEditorFiles(fileValue ? [fileValue] : []);\n setEditorOpen(true);\n };\n\n const closeEditor = () => {\n setEditorOpen(false);\n const init = initialFileRef.current;\n setEditorFiles(init ? [init] : []);\n\t\t\t// revoke any blob urls created during this editor session\n\t\t\ttransientBlobUrlsRef.current.forEach((u) => {\n\t\t\t\ttry { URL.revokeObjectURL(u); } catch { /* ignore */ }\n\t\t\t});\n\t\t\ttransientBlobUrlsRef.current = [];\n };\n\n const handleSave = async (url: string) => {\n const next = url\n ? await new PreviewableFile({ url }).downloadFile()\n : null;\n\t\t\t// url from Cropper is a blob URL we no longer need once downloaded\n\t\t\tif (url) {\n\t\t\t\ttry { URL.revokeObjectURL(url); } catch { /* ignore */ }\n\t\t\t}\n\n onChange(next);\n // ensure react-hook-form value is set directly as well\n try { setValue(String(name), next, { shouldDirty: true, shouldTouch: true }); } catch { /* ignore */ };\n field.onChange?.(next, getValues() as InferFormDataType<T>);\n\n initialFileRef.current = next;\n setEditorFiles(next ? [next] : []);\n setEditorOpen(false);\n };\n\n // onFileSelect handler used by Cropper's built-in selector\n const onFileSelectFromSelector = (file: File | null) => {\n if (!file) {\n setEditorFiles([]);\n return;\n }\n\n const blobUrl = URL.createObjectURL(file);\n transientBlobUrlsRef.current.push(blobUrl);\n\n const next = new PreviewableFile({\n path: file.name,\n blobUrl,\n filename: file.name,\n mimeType: file.type,\n size: file.size,\n fileType: file.type.startsWith('image/') ? 'image' : 'other',\n });\n\n setEditorFiles([next]);\n };\n\n return (\n <FormControl\n className={CLASSNAMEs.compound.useForm.avatarField}\n disabled={disabled}\n required={required}\n error={!!error}\n fullWidth\n size=\"small\"\n sx={mergeFieldSx(size, sx)}\n >\n <Stack direction=\"column\" alignItems=\"center\" justifyContent=\"center\" gap={0.5}>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <FormLabel component=\"legend\">{label}</FormLabel>\n <Explanation explanation={getFieldExplanation(field)} />\n </Box>\n\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, }}>\n <Box sx={{ cursor: disabled ? 'not-allowed' : 'pointer' }}>\n <AvatarButton\n onClick={disabled ? undefined : openEditor}\n size={avatarSlot?.size}\n dim={avatarSlot?.dim}\n name={displayName}\n src={src}\n backgroundIcon={src ? undefined : backgroundIcon}\n icon={<EditIcon fontSize=\"small\" />}\n aria-label={label || 'Avatar'}\n />\n </Box>\n </Box>\n\n <FieldHelperText error={error} errorMsg={errorMsg} helpers={[field.helperText]} />\n </Stack>\n\n {editorOpen ? (\n <MuiModal\n className={CLASSNAMEs.elemental.modal}\n openProps={[editorOpen, setEditorOpen]}\n onClose={closeEditor}\n title={label || 'Avatar'}\n size={{ w: '70vw', h: '80vh' }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n gap: 2,\n overflow: 'hidden',\n }}>\n <Box sx={{ flex: '1 1 auto', minHeight: 0 }}>\n <Cropper\n setImgNull={() => setEditorFiles([])}\n blobUrl={editorFiles?.[0]?.blobUrl || ''}\n onSave={handleSave}\n onClear={() => handleSave('')}\n circularCrop\n defaultRatio={1}\n resizeCropEnabled\n cropConfig={AVATAR_CROP_CONFIG}\n PreviewRenderer={AvatarCropPreview}\n showFileSelector\n fileSelectorAccept={inputAccept}\n fileSelectorButtonLabel=\"Select Image\"\n onFileSelect={onFileSelectFromSelector}\n />\n </Box>\n </Box>\n </MuiModal>\n ) : null}\n\n \n </FormControl>\n );\n }}\n />\n );\n};\n"],"mappings":"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","names":["default"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/compound/UseForm/src/Fields/DateField.tsx"],"sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\nimport dayjs from 'dayjs'\nimport { Box } from '@/ele/Box';\nimport { MuiXDatePicker } from '@/ele/DatePicker';\nimport { FieldConfig, FormTypeMap, InferFormDataType } from '../_utils';\nimport { FIELD_TYPEs } from '../_utils/constants';\nimport Explanation from './Explanation';\nimport { getFieldExplanation, mergeFieldSx } from '../_utils/helpers';\nimport { mergeSx } from '@/_utils/_func';\n\ninterface DateFieldProps<T extends FormTypeMap = FormTypeMap> {\n field: Extract<FieldConfig<T>, { type: typeof FIELD_TYPEs.date }>;\n}\n\nexport const DateField = <T extends FormTypeMap = FormTypeMap>({ field }: DateFieldProps<T>) => {\n const { control, getValues } = useFormContext();\n const {\n name,\n label,\n sx,\n size,\n slotProps,\n errorMsg,\n defaultValue,\n } = field;\n\n const defaultVal = defaultValue as string | Date | undefined;\n\n return (\n <Controller\n control={control}\n name={name}\n defaultValue={defaultVal ?? null}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <Box sx={mergeSx({ display: 'flex', alignItems: 'flex-start', gap: 1 }, mergeFieldSx(size, sx))}>\n <MuiXDatePicker\n {...slotProps}\n label={label}\n value={value ? dayjs(value) : null}\n onChange={(d) => {\n if (!d) {\n onChange(null);\n field.onChange?.(null, getValues() as InferFormDataType<T>);\n return;\n }\n const maybeDate = typeof d.toDate === 'function' ? d.toDate() : (d);\n onChange(maybeDate as Date);\n field.onChange?.(maybeDate as Date, getValues() as InferFormDataType<T>);\n }}\n\n slotProps={{\n ...(slotProps?.slotProps),\n textField: {\n ...(slotProps?.slotProps?.textField),\n error: !!error,\n helperText: error ? (errorMsg || error.message) : undefined,\n },\n openPickerIcon: {\n sx: { fontSize: '1.25rem' }\n }\n }}\n />\n <Explanation alignToInput explanation={getFieldExplanation(field)} />\n </Box>\n )}\n />\n );\n};\n\nexport default DateField;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,sBAAsB;AAC3C,OAAO,WAAW;AAiCV,SACE,KADF;AApBD,IAAM,YAAY,CAAsC,EAAE,MAAM,MAAyB;AAC9F,QAAM,EAAE,SAAS,UAAU,IAAI,eAAe;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,aAAa;AAEnB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,cAAc,cAAc;AAAA,MAC5B,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,MAAM,GAAG,YAAY,EAAE,MAAM,EAAE,MAC3D,qBAACA,UAAA,EAAI,IAAI,QAAQ,EAAE,SAAS,QAAQ,YAAY,cAAc,KAAK,EAAE,GAAG,aAAa,MAAM,EAAE,CAAC,GAC5F;AAAA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACJ;AAAA,YACA,OAAO,QAAQ,MAAM,KAAK,IAAI;AAAA,YAC9B,UAAU,CAAC,MAAM;AACf,kBAAI,CAAC,GAAG;AACN,yBAAS,IAAI;AACb,sBAAM,WAAW,MAAM,UAAU,CAAyB;AAC1D;AAAA,cACF;AACA,oBAAM,YAAY,OAAO,EAAE,WAAW,aAAa,EAAE,OAAO,IAAK;AACjE,uBAAS,SAAiB;AAC1B,oBAAM,WAAW,WAAmB,UAAU,CAAyB;AAAA,YACzE;AAAA,YAEA,WAAW;AAAA,cACT,GAAI,WAAW;AAAA,cACf,WAAW;AAAA,gBACT,GAAI,WAAW,WAAW;AAAA,gBAC1B,OAAO,CAAC,CAAC;AAAA,gBACT,YAAY,QAAS,YAAY,MAAM,UAAW;AAAA,cACpD;AAAA,cACA,gBAAgB;AAAA,gBACd,IAAI,EAAE,UAAU,UAAU;AAAA,cAC5B;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,uBAAY,cAAY,MAAC,aAAa,oBAAoB,KAAK,GAAG;AAAA,SACrE;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,oBAAQ;","names":["default"]}
|