@jenesei-software/jenesei-kit-react 1.3.19 → 1.3.21
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/build/area-BG04bpxi.cjs +2 -0
- package/build/area-BG04bpxi.cjs.map +1 -0
- package/build/{area-CD8KKIM0.js → area-D4BoNEmX.js} +2 -2
- package/build/{area-CD8KKIM0.js.map → area-D4BoNEmX.js.map} +1 -1
- package/build/area-occQcGnD.js +19 -0
- package/build/area-occQcGnD.js.map +1 -0
- package/build/area-outside.cjs.js +1 -1
- package/build/area-outside.es.js +1 -1
- package/build/{area-Dup_lUb9.cjs → area-pCo19R2g.cjs} +2 -2
- package/build/{area-Dup_lUb9.cjs.map → area-pCo19R2g.cjs.map} +1 -1
- package/build/area-preview.cjs.js +1 -1
- package/build/area-preview.es.js +1 -1
- package/build/area-scroll.cjs.js +1 -1
- package/build/area-scroll.es.js +3 -2
- package/build/area-scroll.es.js.map +1 -1
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.d.ts +6 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/area-smooth.cjs.js +1 -1
- package/build/area-smooth.es.js +1 -1
- package/build/{area-BWxBop5m.js → area.styles-BSqCfPE4.js} +3 -18
- package/build/area.styles-BSqCfPE4.js.map +1 -0
- package/build/area.styles-BuceLNra.cjs +27 -0
- package/build/area.styles-BuceLNra.cjs.map +1 -0
- package/build/build-info.txt +3 -3
- package/build/{component-GKvpOWlO.cjs → component-5Utdcc2G.cjs} +7 -7
- package/build/{component-GKvpOWlO.cjs.map → component-5Utdcc2G.cjs.map} +1 -1
- package/build/component-86oA9dYz.cjs +2 -0
- package/build/component-86oA9dYz.cjs.map +1 -0
- package/build/{component.styles-0apMzB81.js → component-B--Ljzf8.js} +5 -75
- package/build/component-B--Ljzf8.js.map +1 -0
- package/build/component-Bq9jd15r.cjs +2 -0
- package/build/component-Bq9jd15r.cjs.map +1 -0
- package/build/{component.styles-euSUJAiA.js → component-C3BrgaVs.js} +5 -38
- package/build/component-C3BrgaVs.js.map +1 -0
- package/build/component-C7SV3z2B.js +10 -0
- package/build/component-C7SV3z2B.js.map +1 -0
- package/build/{component.styles-CwTYpBx_.js → component-C9TJVTRc.js} +11 -64
- package/build/component-C9TJVTRc.js.map +1 -0
- package/build/{component-6hRanOkU.cjs → component-CLqcB5mM.cjs} +2 -2
- package/build/{component-6hRanOkU.cjs.map → component-CLqcB5mM.cjs.map} +1 -1
- package/build/{component-B80It4vM.js → component-CS7C3l76.js} +5 -5
- package/build/component-CS7C3l76.js.map +1 -0
- package/build/{component-DpVp9dB1.js → component-CUiqQLEQ.js} +2 -2
- package/build/{component-DpVp9dB1.js.map → component-CUiqQLEQ.js.map} +1 -1
- package/build/{component.styles-AEJ_tw7Y.js → component-CWIsglCv.js} +4 -25
- package/build/component-CWIsglCv.js.map +1 -0
- package/build/component-CZPL9hGj.cjs +2 -0
- package/build/component-CZPL9hGj.cjs.map +1 -0
- package/build/{component-8NOxwZJO.cjs → component-Cc8X-Z80.cjs} +2 -2
- package/build/{component-8NOxwZJO.cjs.map → component-Cc8X-Z80.cjs.map} +1 -1
- package/build/{component.styles-KBaixm0o.js → component-CeZFnxeP.js} +4 -56
- package/build/component-CeZFnxeP.js.map +1 -0
- package/build/component-Cp8VTqb2.js +21 -0
- package/build/component-Cp8VTqb2.js.map +1 -0
- package/build/{component-CKBpm4U4.js → component-CqQpLjWf.js} +2 -3
- package/build/{component-CKBpm4U4.js.map → component-CqQpLjWf.js.map} +1 -1
- package/build/component-DAMiuCOk.js +39 -0
- package/build/component-DAMiuCOk.js.map +1 -0
- package/build/component-DBZIl6Pf.cjs +2 -0
- package/build/component-DBZIl6Pf.cjs.map +1 -0
- package/build/component-DC6wk9OC.cjs +2 -0
- package/build/component-DC6wk9OC.cjs.map +1 -0
- package/build/{component-mzzOCXSx.js → component-DEZX8aBs.js} +2 -2
- package/build/{component-mzzOCXSx.js.map → component-DEZX8aBs.js.map} +1 -1
- package/build/component-DgtdqEgO.cjs +2 -0
- package/build/component-DgtdqEgO.cjs.map +1 -0
- package/build/component-Dt1QKoQc.cjs +2 -0
- package/build/component-Dt1QKoQc.cjs.map +1 -0
- package/build/component-DvuH4WLo.cjs +2 -0
- package/build/component-DvuH4WLo.cjs.map +1 -0
- package/build/{component.styles-C4Bz4OTl.js → component-HpOulBAQ.js} +5 -17
- package/build/component-HpOulBAQ.js.map +1 -0
- package/build/component-O7HvTkOa.js +64 -0
- package/build/component-O7HvTkOa.js.map +1 -0
- package/build/component-PvY4ZuKa.cjs +2 -0
- package/build/component-PvY4ZuKa.cjs.map +1 -0
- package/build/component-SobV8wHk.cjs +2 -0
- package/build/component-SobV8wHk.cjs.map +1 -0
- package/build/component-VZLVznEM.cjs +2 -0
- package/build/component-VZLVznEM.cjs.map +1 -0
- package/build/component-accordion.cjs.js +1 -1
- package/build/component-accordion.d.ts +1 -1
- package/build/component-accordion.es.js +3 -2
- package/build/component-accordion.es.js.map +1 -1
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +4 -3
- package/build/component-button-group.es.js.map +1 -1
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +3 -3
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +8 -7
- package/build/component-checkbox-group.es.js.map +1 -1
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +6 -5
- package/build/component-checkbox.es.js.map +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +15 -14
- package/build/component-date-picker.es.js.map +1 -1
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.d.ts +16 -3
- package/build/component-icon.es.js +6 -5
- package/build/component-image-button.cjs.js +1 -1
- package/build/component-image-button.es.js +1 -1
- package/build/component-image-select.cjs.js +1 -1
- package/build/component-image-select.es.js +8 -7
- package/build/component-image-select.es.js.map +1 -1
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.es.js +5 -4
- package/build/component-image-slider.es.js.map +1 -1
- package/build/component-image.cjs.js +1 -1
- package/build/component-image.es.js +3 -2
- package/build/component-image.es.js.map +1 -1
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +5 -4
- package/build/component-input-otp.es.js.map +1 -1
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.es.js +15 -15
- package/build/component-iyi7lqrB.cjs +2 -0
- package/build/{component-Bj7sLW9s.cjs.map → component-iyi7lqrB.cjs.map} +1 -1
- package/build/component-map.cjs.js +1 -1
- package/build/component-map.es.js +13 -12
- package/build/component-map.es.js.map +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-range.cjs.js +1 -1
- package/build/component-range.es.js +5 -4
- package/build/component-range.es.js.map +1 -1
- package/build/component-ripple.cjs.js +1 -1
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.d.ts +1 -1
- package/build/component-select.es.js +18 -18
- package/build/component-separator.cjs.js +1 -1
- package/build/component-separator.es.js +3 -2
- package/build/component-separator.es.js.map +1 -1
- package/build/component-stack.cjs.js +1 -1
- package/build/component-stack.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.es.js +5 -5
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +4 -3
- package/build/component-toggle.es.js.map +1 -1
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +9 -9
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +6 -6
- package/build/component.components-Cck7T25y.cjs +2 -0
- package/build/component.components-Cck7T25y.cjs.map +1 -0
- package/build/{component.components-C9TkSqTp.js → component.components-NP2aSgyb.js} +8 -43
- package/build/component.components-NP2aSgyb.js.map +1 -0
- package/build/{component.constants-C8li5_tq.js → component.constants-3UuU_a__.js} +3 -3
- package/build/{component.constants-C8li5_tq.js.map → component.constants-3UuU_a__.js.map} +1 -1
- package/build/{component.constants-CnMky3Ym.js → component.constants-B0mODNks.js} +9 -35
- package/build/component.constants-B0mODNks.js.map +1 -0
- package/build/component.constants-CoFHa30V.cjs +2 -0
- package/build/{component.constants-B-ZMDpFv.cjs.map → component.constants-CoFHa30V.cjs.map} +1 -1
- package/build/component.constants-vNAPiC5p.cjs +2 -0
- package/build/component.constants-vNAPiC5p.cjs.map +1 -0
- package/build/component.styles-CD6ZzRrk.cjs +14 -0
- package/build/component.styles-CD6ZzRrk.cjs.map +1 -0
- package/build/{component.styles-BnJjm_ES.js → component.styles-SZ5VuhNG.js} +2 -19
- package/build/component.styles-SZ5VuhNG.js.map +1 -0
- package/build/component.types-BRZsYWlH.cjs +2 -0
- package/build/component.types-BRZsYWlH.cjs.map +1 -0
- package/build/{component.types-BoTWSvjd.js → component.types-Cysm3D4v.js} +5 -214
- package/build/component.types-Cysm3D4v.js.map +1 -0
- package/build/consts.cjs.js +1 -1
- package/build/consts.cjs.js.map +1 -1
- package/build/consts.d.ts +18 -16
- package/build/consts.es.js +28 -26
- package/build/consts.es.js.map +1 -1
- package/build/{context.functions-CQ9GerPb.js → context-B1DS5U6M.js} +3 -33
- package/build/{context.functions-CQ9GerPb.js.map → context-B1DS5U6M.js.map} +1 -1
- package/build/{context.functions-BD15C8_y.js → context-BxU5kwVR.js} +3 -33
- package/build/context-BxU5kwVR.js.map +1 -0
- package/build/{context.hooks-BzMTkJNv.js → context-CU_dgoUl.js} +3 -11
- package/build/context-CU_dgoUl.js.map +1 -0
- package/build/context-Cr9zS5ai.cjs +2 -0
- package/build/context-Cr9zS5ai.cjs.map +1 -0
- package/build/context-_4lcMeym.cjs +2 -0
- package/build/context-_4lcMeym.cjs.map +1 -0
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +18 -17
- package/build/context-app.es.js.map +1 -1
- package/build/context-cookie.cjs.js +1 -1
- package/build/context-cookie.es.js +2 -1
- package/build/context-cookie.es.js.map +1 -1
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.es.js +13 -12
- package/build/context-dialog.es.js.map +1 -1
- package/build/context-geolocation.cjs.js +1 -1
- package/build/context-geolocation.es.js +2 -1
- package/build/context-geolocation.es.js.map +1 -1
- package/build/context-local-storage.cjs.js +1 -1
- package/build/context-local-storage.es.js +2 -1
- package/build/context-local-storage.es.js.map +1 -1
- package/build/context-q6vhN54o.cjs +2 -0
- package/build/{context.functions-ohI9H54j.cjs.map → context-q6vhN54o.cjs.map} +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +18 -17
- package/build/context-sonner.es.js.map +1 -1
- package/build/context.constants-BVl2x1gR.js +8556 -0
- package/build/context.constants-BVl2x1gR.js.map +1 -0
- package/build/context.constants-BgXWD3zz.cjs +32 -0
- package/build/context.constants-BgXWD3zz.cjs.map +1 -0
- package/build/{context.constants-BCpaUfFz.js → context.constants-D-s5XvZX.js} +14 -52
- package/build/context.constants-D-s5XvZX.js.map +1 -0
- package/build/context.constants-YhrMPIvq.cjs +1750 -0
- package/build/context.constants-YhrMPIvq.cjs.map +1 -0
- package/build/context.functions-54_96FIi.js +36 -0
- package/build/context.functions-54_96FIi.js.map +1 -0
- package/build/context.functions-Bk5xMi0w.cjs +2 -0
- package/build/context.functions-Bk5xMi0w.cjs.map +1 -0
- package/build/context.functions-BoRkDnCa.cjs +2 -0
- package/build/context.functions-BoRkDnCa.cjs.map +1 -0
- package/build/context.functions-X5gRRpKi.js +35 -0
- package/build/context.functions-X5gRRpKi.js.map +1 -0
- package/build/context.hooks-99wJ8TBG.cjs +2 -0
- package/build/context.hooks-99wJ8TBG.cjs.map +1 -0
- package/build/context.hooks-B16qxQQY.cjs +2 -0
- package/build/context.hooks-B16qxQQY.cjs.map +1 -0
- package/build/context.hooks-DjwMqRSt.js +13 -0
- package/build/context.hooks-DjwMqRSt.js.map +1 -0
- package/build/context.hooks-Dkb5yK8Z.cjs +2 -0
- package/build/context.hooks-Dkb5yK8Z.cjs.map +1 -0
- package/build/context.hooks-KS9z3sac.js +13 -0
- package/build/context.hooks-KS9z3sac.js.map +1 -0
- package/build/context.hooks-OTo7Znss.cjs +2 -0
- package/build/context.hooks-OTo7Znss.cjs.map +1 -0
- package/build/context.hooks-fo2TeZoK.js +44 -0
- package/build/context.hooks-fo2TeZoK.js.map +1 -0
- package/build/context.hooks-uRILnzQk.js +13 -0
- package/build/context.hooks-uRILnzQk.js.map +1 -0
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +38 -24
- package/build/index.es.js +282 -283
- package/build/index.es.js.map +1 -1
- package/build/style-error.cjs.js +1 -1
- package/build/style-error.es.js +4 -4
- package/build/style-theme.cjs.js +1 -1
- package/build/style-theme.es.js +13 -13
- package/build/types.d.ts +3 -3
- package/build/{use-CnGHh8iL.js → use-BI2JJFUm.js} +8 -9
- package/build/{use-CnGHh8iL.js.map → use-BI2JJFUm.js.map} +1 -1
- package/build/{use-BLwltPMc.cjs → use-CtF6jyms.cjs} +3 -3
- package/build/{use-BLwltPMc.cjs.map → use-CtF6jyms.cjs.map} +1 -1
- package/package.json +1 -1
- package/build/area-BDMDiVi1.js +0 -68
- package/build/area-BDMDiVi1.js.map +0 -1
- package/build/area-BWxBop5m.js.map +0 -1
- package/build/area-Bopd6mWj.cjs +0 -2
- package/build/area-Bopd6mWj.cjs.map +0 -1
- package/build/area-CmCMHnRA.cjs +0 -27
- package/build/area-CmCMHnRA.cjs.map +0 -1
- package/build/area-Cvp3eBBo.js +0 -114
- package/build/area-Cvp3eBBo.js.map +0 -1
- package/build/area-DqLK4RX5.cjs +0 -40
- package/build/area-DqLK4RX5.cjs.map +0 -1
- package/build/component-5o60aes-.cjs +0 -52
- package/build/component-5o60aes-.cjs.map +0 -1
- package/build/component-B80It4vM.js.map +0 -1
- package/build/component-BfppCwz9.cjs +0 -88
- package/build/component-BfppCwz9.cjs.map +0 -1
- package/build/component-Bj7sLW9s.cjs +0 -2
- package/build/component-BxetIWe6.cjs +0 -245
- package/build/component-BxetIWe6.cjs.map +0 -1
- package/build/component-ClnOIQaN.js +0 -66
- package/build/component-ClnOIQaN.js.map +0 -1
- package/build/component-b4tMFkpE.cjs +0 -2
- package/build/component-b4tMFkpE.cjs.map +0 -1
- package/build/component-eqTj4VVc.js +0 -728
- package/build/component-eqTj4VVc.js.map +0 -1
- package/build/component-jPLOz52P.js +0 -186
- package/build/component-jPLOz52P.js.map +0 -1
- package/build/component.components-BZX00SGG.cjs +0 -16
- package/build/component.components-BZX00SGG.cjs.map +0 -1
- package/build/component.components-C9TkSqTp.js.map +0 -1
- package/build/component.constants-B-ZMDpFv.cjs +0 -2
- package/build/component.constants-CnMky3Ym.js.map +0 -1
- package/build/component.constants-Dg6JcWmd.cjs +0 -22
- package/build/component.constants-Dg6JcWmd.cjs.map +0 -1
- package/build/component.styles-0apMzB81.js.map +0 -1
- package/build/component.styles-AEJ_tw7Y.js.map +0 -1
- package/build/component.styles-BO8xaSCQ.cjs +0 -65
- package/build/component.styles-BO8xaSCQ.cjs.map +0 -1
- package/build/component.styles-BVQQkX5c.cjs +0 -57
- package/build/component.styles-BVQQkX5c.cjs.map +0 -1
- package/build/component.styles-BYG4iVCR.cjs +0 -10
- package/build/component.styles-BYG4iVCR.cjs.map +0 -1
- package/build/component.styles-BZ9QLlOU.cjs +0 -39
- package/build/component.styles-BZ9QLlOU.cjs.map +0 -1
- package/build/component.styles-BnJjm_ES.js.map +0 -1
- package/build/component.styles-BviHtzJH.cjs +0 -22
- package/build/component.styles-BviHtzJH.cjs.map +0 -1
- package/build/component.styles-C4Bz4OTl.js.map +0 -1
- package/build/component.styles-C8ONgWei.cjs +0 -47
- package/build/component.styles-C8ONgWei.cjs.map +0 -1
- package/build/component.styles-CHqowxsZ.js +0 -81
- package/build/component.styles-CHqowxsZ.js.map +0 -1
- package/build/component.styles-CLn52hJD.cjs +0 -14
- package/build/component.styles-CLn52hJD.cjs.map +0 -1
- package/build/component.styles-CXyyc0xg.cjs +0 -32
- package/build/component.styles-CXyyc0xg.cjs.map +0 -1
- package/build/component.styles-CtZeOnGH.js +0 -120
- package/build/component.styles-CtZeOnGH.js.map +0 -1
- package/build/component.styles-CwTYpBx_.js.map +0 -1
- package/build/component.styles-CxlbZwr4.cjs +0 -225
- package/build/component.styles-CxlbZwr4.cjs.map +0 -1
- package/build/component.styles-CyCy2ymw.cjs +0 -21
- package/build/component.styles-CyCy2ymw.cjs.map +0 -1
- package/build/component.styles-DWDGLfbF.js +0 -137
- package/build/component.styles-DWDGLfbF.js.map +0 -1
- package/build/component.styles-DqJURuJl.js +0 -1370
- package/build/component.styles-DqJURuJl.js.map +0 -1
- package/build/component.styles-FMHm5NHm.cjs +0 -99
- package/build/component.styles-FMHm5NHm.cjs.map +0 -1
- package/build/component.styles-Hx-MJSWX.cjs +0 -137
- package/build/component.styles-Hx-MJSWX.cjs.map +0 -1
- package/build/component.styles-KBaixm0o.js.map +0 -1
- package/build/component.styles-SZTM0cRW.js +0 -1046
- package/build/component.styles-SZTM0cRW.js.map +0 -1
- package/build/component.styles-_keFf_Qj.cjs +0 -13
- package/build/component.styles-_keFf_Qj.cjs.map +0 -1
- package/build/component.styles-cMafDDpP.js +0 -233
- package/build/component.styles-cMafDDpP.js.map +0 -1
- package/build/component.styles-euSUJAiA.js.map +0 -1
- package/build/component.types-BoTWSvjd.js.map +0 -1
- package/build/component.types-WiRcl02d.cjs +0 -176
- package/build/component.types-WiRcl02d.cjs.map +0 -1
- package/build/context.constants-BCpaUfFz.js.map +0 -1
- package/build/context.constants-BLQ_1jZI.cjs +0 -32
- package/build/context.constants-BLQ_1jZI.cjs.map +0 -1
- package/build/context.constants-Cio0nsYA.js +0 -393
- package/build/context.constants-Cio0nsYA.js.map +0 -1
- package/build/context.constants-y9s5VGN2.cjs +0 -99
- package/build/context.constants-y9s5VGN2.cjs.map +0 -1
- package/build/context.functions-80N-5MqM.cjs +0 -2
- package/build/context.functions-80N-5MqM.cjs.map +0 -1
- package/build/context.functions-BD15C8_y.js.map +0 -1
- package/build/context.functions-ohI9H54j.cjs +0 -2
- package/build/context.hooks-BIIK-2HN.js +0 -527
- package/build/context.hooks-BIIK-2HN.js.map +0 -1
- package/build/context.hooks-BzMTkJNv.js.map +0 -1
- package/build/context.hooks-DNnrgKb0.cjs +0 -72
- package/build/context.hooks-DNnrgKb0.cjs.map +0 -1
- package/build/context.hooks-u408Pxw8.cjs +0 -2
- package/build/context.hooks-u408Pxw8.cjs.map +0 -1
- package/build/floating-ui.react-Byi6bLb1.js +0 -1818
- package/build/floating-ui.react-Byi6bLb1.js.map +0 -1
- package/build/floating-ui.react-DZzvtpim.cjs +0 -2
- package/build/floating-ui.react-DZzvtpim.cjs.map +0 -1
- package/build/style-BzxSHZDV.js +0 -61
- package/build/style-BzxSHZDV.js.map +0 -1
- package/build/style-D8DUzG0C.cjs +0 -32
- package/build/style-D8DUzG0C.cjs.map +0 -1
- package/build/theme.global-BzunMIsv.js +0 -1318
- package/build/theme.global-BzunMIsv.js.map +0 -1
- package/build/theme.global-D67h5YeA.cjs +0 -173
- package/build/theme.global-D67h5YeA.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-BZ9QLlOU.cjs","sources":["../src/components/image-select/component.styles.ts","../src/components/image-select/component.tsx","../src/hooks/use-image-view/use.tsx"],"sourcesContent":["import { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { ImageSelectWrapperProps } from '.';\n\nconst ImageSelectListGenre = css<ImageSelectWrapperProps>`\n ${(props) => css`\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n &:active {\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n }\n &:focus-visible {\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n }\n `};\n`;\n/****************************************** Size *************************************************/\nexport const ImageSelectListSize = css<ImageSelectWrapperProps>`\n ${(props) => ImageSelectListSizeConstructor(KEY_SIZE_DATA[props.$size])};\n`;\nexport const ImageSelectListSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n padding: ${props.padding}px;\n border-radius: ${props.radius}px;\n`;\nexport const ImageSelectSize = css<ImageSelectWrapperProps>`\n ${(props) => ImageSelectSizeConstructor(KEY_SIZE_DATA[props.$size])};\n`;\nexport const ImageSelectSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n gap: ${props.padding - 2}px;\n`;\nexport const ImageSelectWrapper = styled.div<ImageSelectWrapperProps>`\n display: flex;\n flex-direction: column;\n width: 100%;\n ${ImageSelectSize};\n ${addError};\n ${addSX};\n`;\nexport const ImageSelectListWrapper = styled(motion.div)<ImageSelectWrapperProps>`\n border: 2px dashed;\n\n display: flex;\n flex-direction: column;\n width: 100%;\n ${ImageSelectListGenre}\n ${ImageSelectListSize}\n`;\n","import { ImageSupportedFormatsForInput } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={ImageSupportedFormatsForInput}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n","import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n"],"names":["ImageSelectListGenre","css","props","theme","colors","imageSelect","$genre","background","rest","color","ImageSelectListSize","ImageSelectListSizeConstructor","KEY_SIZE_DATA","$size","padding","radius","ImageSelectSize","ImageSelectSizeConstructor","ImageSelectWrapper","styled","div","addError","addSX","ImageSelectListWrapper","motion","onChange","size","useMemo","images","setImages","useState","isDraggingOver","setIsDraggingOver","refInput","useRef","useTheme","handleOnSave","useCallback","files","prev","newImages","map","file","idx","index","length","finalImages","openFileDialog","_a","current","click","handleAddFiles","handleAddFilesCrop","useImageCrop","onSave","locale","dialog","button","genre","propsButton","default","buttonDelete","delete","imageSettings","maxSize","maxCount","aspect","handleAdd","br","add","useDialog","propsDialog","borderRadius","image","content","params","remove","jsxs","Stack","sx","position","overflow","aspectRatio","width","maxWidth","height","tablet","children","jsx","Image","sxStack","alignItems","justifyContent","backgroundColor","palette","black10","pointerEvents","isShowBeforeImage","sxImage","objectFit","alt","imageSrc","src","componentFallback","Typography","variant","imageFallback","Button","bottom","right","icons","type","name","isWidthAsHeight","isHiddenBorder","isRadius","onClick","useImageView","useEffect","Fragment","id","$sx","$error","error","onDrop","e","preventDefault","dataTransfer","handleDrop","onDragOver","onDragEnter","onDragLeave","animate","borderColor","border","hover","transition","duration","layout","ease","style","display","flexWrap","gap","img","url","userSelect","flexGrow","isContain","top","handleDelete","filter","textAlign","cursor","dragAndDrop","ref","accept","ImageSupportedFormatsForInput","multiple","target","buttonAdd","defaultImages","buttonReset","ErrorMessage","font","weight","family"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-BnJjm_ES.js","sources":["../src/components/separator/component.tsx","../src/components/separator/component.styles.tsx"],"sourcesContent":["import { IThemePaletteKeys } from '@local/theme/theme.interface';\n\nimport { FC } from 'react';\n\nimport { SeparatorProps, SeparatorWrapper } from '.';\n\nexport const Separator: FC<SeparatorProps> = (props) => {\n const color: IThemePaletteKeys = props.color || 'grayMonica';\n return (\n <SeparatorWrapper\n role='separator'\n aria-orientation={props.type}\n $radius={props.radius}\n $color={color}\n $sx={props.sx}\n $type={props.type}\n $thickness={props.thickness}\n />\n );\n};\n","import { addSX } from '@local/styles/sx';\n\nimport styled from 'styled-components';\n\nimport { SeparatorWrapperProps } from '.';\n\nconst DEFAULT_SEPARATOR_SIZE = '1px';\n\nexport const SeparatorWrapper = styled.div<SeparatorWrapperProps>`\n flex-grow: 1;\n flex-shrink: 1;\n\n width: ${(props) => (props.$type === 'horizontal' ? 'auto' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n max-width: ${(props) => (props.$type === 'horizontal' ? '100%' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n height: ${(props) => (props.$type === 'vertical' ? 'auto' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n max-height: ${(props) => (props.$type === 'vertical' ? '100%' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n\n background: ${(props) => props.$color && props.theme.palette[props.$color]};\n border-radius: ${(props) => props.$radius || '0px'};\n ${addSX};\n`;\n"],"names":["jsx"],"mappings":";;;AAMO,MAAM,YAAgC,CAAC,UAAU;AACtD,QAAM,QAA2B,MAAM,SAAS;AAChD,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,oBAAkB,MAAM;AAAA,MACxB,SAAS,MAAM;AAAA,MACf,QAAQ;AAAA,MACR,KAAK,MAAM;AAAA,MACX,OAAO,MAAM;AAAA,MACb,YAAY,MAAM;AAAA,IAAA;AAAA,EAAA;AAGxB;ACbA,MAAM,yBAAyB;AAExB,MAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA;AAAA,WAI5B,CAAC,UAAW,MAAM,UAAU,eAAe,SAAS,MAAM,cAAc,sBAAuB;AAAA,eAC3F,CAAC,UAAW,MAAM,UAAU,eAAe,SAAS,MAAM,cAAc,sBAAuB;AAAA,YAClG,CAAC,UAAW,MAAM,UAAU,aAAa,SAAS,MAAM,cAAc,sBAAuB;AAAA,gBACzF,CAAC,UAAW,MAAM,UAAU,aAAa,SAAS,MAAM,cAAc,sBAAuB;AAAA;AAAA,gBAE7F,CAAC,UAAU,MAAM,UAAU,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC;AAAA,mBACzD,CAAC,UAAU,MAAM,WAAW,KAAK;AAAA,IAChD,KAAK;AAAA;"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("react"),o=require("styled-components"),r=require("./style-Df37KnoJ.cjs"),n=require("./style-fRZ6xrVp.cjs"),s=require("./theme.global-D67h5YeA.cjs"),i=r=>{const n=o.useTheme(),s=t.useMemo(()=>n.icon.getIconId({type:r.type,name:r.name}),[r.name,r.type,n.icon.getIconId]);return a(t.useMemo(()=>n.icon.getSpriteUrl({type:r.type}),[r.type,n.icon.getSpriteUrl]))?e.jsxRuntimeExports.jsx(d,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",$size:r.size,$turn:r.turn,$order:r.order,$color:r.color||void 0,$sx:r.sx,className:r.className,onClick:r.onClick,tabIndex:r.tabIndex,children:e.jsxRuntimeExports.jsx("use",{href:s})}):null};const c=new Map;function a(e){const[o,r]=t.useState(c.has(e));return t.useEffect(()=>{var t;if(o)return;let n=!0;if(!c.has(e)){const t=(async()=>{const t=await fetch(e);if(!t.ok)throw new Error(`Failed to load sprite: ${e}`);const o=await t.text(),r=document.createElement("div");r.style.display="none",r.innerHTML=o,document.body.prepend(r)})();c.set(e,t)}return null==(t=c.get(e))||t.then(()=>{n&&r(!0)}),()=>{n=!1}},[e,o]),o}const d=o.svg`
|
|
2
|
-
color: ${e=>e.$color?e.theme.palette[e.$color]:"inherit"};
|
|
3
|
-
|
|
4
|
-
${e=>o.css`
|
|
5
|
-
height: ${"100%"!==e.$size?`${s.KEY_SIZE_DATA[e.$size].heightIcon}px`:"100%"};
|
|
6
|
-
min-height: ${"100%"!==e.$size?`${s.KEY_SIZE_DATA[e.$size].heightIcon}px`:"100%"};
|
|
7
|
-
|
|
8
|
-
width: ${"100%"!==e.$size?`${s.KEY_SIZE_DATA[e.$size].heightIcon}px`:"100%"};
|
|
9
|
-
min-width: ${"100%"!==e.$size?`${s.KEY_SIZE_DATA[e.$size].heightIcon}px`:"100%"};
|
|
10
|
-
|
|
11
|
-
transform: rotate(${e.$turn||0}deg);
|
|
12
|
-
`}
|
|
13
|
-
${e=>void 0!==e.$order&&o.css`
|
|
14
|
-
order: ${e.$order};
|
|
15
|
-
`};
|
|
16
|
-
${r.addColorTransition};
|
|
17
|
-
& path {
|
|
18
|
-
${r.addColorTransition};
|
|
19
|
-
}
|
|
20
|
-
${n.addSX};
|
|
21
|
-
`;exports.Icon=i,exports.StyledSVG=d,exports.getIconComponents=function(t){var o,r;return null==(r=null==(o=t.icons??[])?void 0:o.filter(e=>!e.isHidden))?void 0:r.map((o,r)=>e.jsxRuntimeExports.jsx(i,{size:(null==o?void 0:o.size)??t.size,...o},`${o.type}-${o.name}-${r}`))},exports.useInjectSprites=function(e){t.useEffect(()=>{const t=[];return e.forEach(async e=>{try{const o=await fetch(e);if(!o.ok)return void console.error(`Failed to load sprite: ${e}`);const r=await o.text(),n=document.createElement("div");n.style.display="none",n.innerHTML=r,document.body.prepend(n),t.push(n)}catch(o){console.error(`Error loading sprite ${e}`,o)}}),()=>{t.forEach(e=>e.remove())}},[e])},exports.useLazyInjectSprite=a;
|
|
22
|
-
//# sourceMappingURL=component.styles-BviHtzJH.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-BviHtzJH.cjs","sources":["../src/components/icon/component.tsx","../src/components/icon/component.functions.tsx","../src/components/icon/component.styles.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { IconItemProps, StyledSVG, useLazyInjectSprite } from '.';\n\nexport const Icon = (props: IconItemProps) => {\n const theme = useTheme();\n const iconId = useMemo(\n () => theme.icon.getIconId({ type: props.type, name: props.name }),\n [props.name, props.type, theme.icon.getIconId],\n );\n const spriteUrl = useMemo(() => theme.icon.getSpriteUrl({ type: props.type }), [props.type, theme.icon.getSpriteUrl]);\n const loaded = useLazyInjectSprite(spriteUrl);\n\n if (!loaded) return null;\n\n return (\n <StyledSVG\n width='24'\n height='24'\n viewBox='0 0 24 24'\n xmlns='http://www.w3.org/2000/svg'\n $size={props.size}\n $turn={props.turn}\n $order={props.order}\n $color={props.color || undefined}\n $sx={props.sx}\n className={props.className}\n onClick={props.onClick}\n tabIndex={props.tabIndex}\n >\n <use href={iconId} />\n </StyledSVG>\n );\n};\n","import { useEffect, useState } from 'react';\n\nimport { getIconComponentsProps, Icon } from '.';\n\nexport function getIconComponents(props: getIconComponentsProps) {\n return (props.icons ?? [])\n ?.filter((icon) => !icon.isHidden)\n ?.map((icon, index) => (\n <Icon key={`${icon.type}-${icon.name}-${index}`} size={icon?.size ?? props.size} {...icon} />\n ));\n}\nexport function useInjectSprites(urls: string[]) {\n useEffect(() => {\n const containers: HTMLDivElement[] = [];\n\n urls.forEach(async (url) => {\n try {\n const res = await fetch(url);\n if (!res.ok) {\n console.error(`Failed to load sprite: ${url}`);\n return;\n }\n const text = await res.text();\n\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n\n document.body.prepend(div);\n containers.push(div);\n } catch (err) {\n console.error(`Error loading sprite ${url}`, err);\n }\n });\n\n return () => {\n containers.forEach((div) => div.remove());\n };\n }, [urls]);\n}\n\nconst loadedSprites = new Map<string, Promise<void>>();\nexport function useLazyInjectSprite(url: string) {\n const [loaded, setLoaded] = useState(loadedSprites.has(url));\n\n useEffect(() => {\n if (loaded) return;\n\n let isMounted = true;\n\n if (!loadedSprites.has(url)) {\n const promise = (async () => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to load sprite: ${url}`);\n const text = await res.text();\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n document.body.prepend(div);\n })();\n loadedSprites.set(url, promise);\n }\n\n loadedSprites.get(url)?.then(() => {\n if (isMounted) setLoaded(true);\n });\n\n return () => {\n isMounted = false;\n };\n }, [url, loaded]);\n\n return loaded;\n}\n","import { addColorTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport styled, { css } from 'styled-components';\n\nimport { StyledIconItemProps } from '.';\n\nexport const StyledSVG = styled.svg<StyledIconItemProps>`\n color: ${(props) => (props.$color ? props.theme.palette[props.$color] : 'inherit')};\n\n ${(props) => css`\n height: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n min-height: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n\n width: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n min-width: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n\n transform: rotate(${props.$turn || 0}deg);\n `}\n ${(props) =>\n props.$order !== undefined &&\n css`\n order: ${props.$order};\n `};\n ${addColorTransition};\n & path {\n ${addColorTransition};\n }\n ${addSX};\n`;\n"],"names":["Icon","props","theme","useTheme","iconId","useMemo","icon","getIconId","type","name","useLazyInjectSprite","getSpriteUrl","jsx","StyledSVG","width","height","viewBox","xmlns","$size","size","$turn","turn","$order","order","$color","color","$sx","sx","className","onClick","tabIndex","children","href","loadedSprites","Map","url","loaded","setLoaded","useState","has","useEffect","isMounted","promise","res","fetch","ok","Error","text","div","document","createElement","style","display","innerHTML","body","prepend","set","_a","get","then","styled","svg","palette","css","KEY_SIZE_DATA","heightIcon","addColorTransition","addSX","_b","icons","filter","isHidden","map","index","urls","containers","forEach","async","console","error","push","err","remove"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-C4Bz4OTl.js","sources":["../src/components/image/component.tsx","../src/components/image/component.styles.tsx"],"sourcesContent":["import { Skeleton } from '@local/areas/skeleton';\nimport { Stack } from '@local/components/stack';\n\nimport { FC, useEffect, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ImageIMG, ImageProps } from '.';\n\nexport const Image: FC<ImageProps> = (props) => {\n const [isPending, setIsPending] = useState(true);\n const [isError, setIsError] = useState(false);\n\n useEffect(() => {\n if (!props.src) return;\n\n const img = new (window.Image as { new (width?: number, height?: number): HTMLImageElement })();\n\n img.onload = () => {\n setIsPending(false);\n setIsError(false);\n };\n\n img.onerror = () => {\n setIsPending(false);\n setIsError(true);\n };\n\n img.src = props.src;\n\n if (img.complete) {\n if (img.naturalWidth > 0) {\n setIsPending(false);\n setIsError(false);\n } else {\n setIsPending(false);\n setIsError(true);\n }\n }\n\n return () => {\n img.onload = null;\n img.onerror = null;\n setIsPending(true);\n setIsError(false);\n };\n }, [props.src]);\n const theme = useTheme();\n const { default: defaultSx, ...rest } = props?.sxStack\n ? typeof props?.sxStack === 'function'\n ? props.sxStack(theme)\n : props.sxStack\n : {};\n\n return (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n ...(props.isShowBeforeImage\n ? {\n '&::before': {\n width: '100%',\n height: '100%',\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundImage: `url(${props.src})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n filter: 'blur(20px)',\n transform: 'scale(1.1)',\n zIndex: 0,\n },\n }\n : {}),\n ...defaultSx,\n },\n ...rest,\n }}\n >\n {!isError ? (\n props.componentLoading || isPending ? (\n <Skeleton\n visible\n sx={{\n default: {\n width: '100%',\n height: '100%',\n },\n }}\n />\n ) : null\n ) : null}\n {!isError && (\n <ImageIMG loading='lazy' $isPending={isPending} src={props.src} alt={props.alt} $sx={props.sxImage} />\n )}\n {isError ? props.componentFallback || null : null}\n </Stack>\n );\n};\n","import { addTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\n\nimport styled from 'styled-components';\n\nimport { ImageIMGProps } from '.';\n\nexport const ImageIMG = styled.img<ImageIMGProps>`\n position: absolute;\n width: 100%;\n height: 100%;\n object-fit: cover;\n opacity: ${(props) => (props.$isPending ? 0 : 1)};\n ${addTransition};\n ${addSX};\n`;\n"],"names":["jsxs","jsx"],"mappings":";;;;;;;AAQO,MAAM,QAAwB,CAAC,UAAU;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,IAAI;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,YAAU,MAAM;AACd,QAAI,CAAC,MAAM,IAAK;AAEhB,UAAM,MAAM,IAAK,OAAO,MAAA;AAExB,QAAI,SAAS,MAAM;AACjB,mBAAa,KAAK;AAClB,iBAAW,KAAK;AAAA,IAAA;AAGlB,QAAI,UAAU,MAAM;AAClB,mBAAa,KAAK;AAClB,iBAAW,IAAI;AAAA,IAAA;AAGjB,QAAI,MAAM,MAAM;AAEhB,QAAI,IAAI,UAAU;AAChB,UAAI,IAAI,eAAe,GAAG;AACxB,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MAAA,OACX;AACL,qBAAa,KAAK;AAClB,mBAAW,IAAI;AAAA,MAAA;AAAA,IACjB;AAGF,WAAO,MAAM;AACX,UAAI,SAAS;AACb,UAAI,UAAU;AACd,mBAAa,IAAI;AACjB,iBAAW,KAAK;AAAA,IAAA;AAAA,EAClB,GACC,CAAC,MAAM,GAAG,CAAC;AACd,QAAM,QAAQ,SAAA;AACd,QAAM,EAAE,SAAS,WAAW,GAAG,KAAA,KAAS,+BAAO,WAC3C,QAAO,+BAAO,aAAY,aACxB,MAAM,QAAQ,KAAK,IACnB,MAAM,UACR,CAAA;AAEJ,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,SAAS;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,GAAI,MAAM,oBACN;AAAA,YACE,aAAa;AAAA,cACX,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,UAAU;AAAA,cACV,OAAO;AAAA,cACP,iBAAiB,OAAO,MAAM,GAAG;AAAA,cACjC,kBAAkB;AAAA,cAClB,gBAAgB;AAAA,cAChB,oBAAoB;AAAA,cACpB,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,QAAQ;AAAA,YAAA;AAAA,UACV,IAEF,CAAA;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,QAEL,GAAG;AAAA,MAAA;AAAA,MAGJ,UAAA;AAAA,QAAA,CAAC,UACA,MAAM,oBAAoB,YACxBC,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAO;AAAA,YACP,IAAI;AAAA,cACF,SAAS;AAAA,gBACP,OAAO;AAAA,gBACP,QAAQ;AAAA,cAAA;AAAA,YACV;AAAA,UACF;AAAA,QAAA,IAEA,OACF;AAAA,QACH,CAAC,WACAA,kCAAAA,IAAC,UAAA,EAAS,SAAQ,QAAO,YAAY,WAAW,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,MAAM,SAAS;AAAA,QAErG,UAAU,MAAM,qBAAqB,OAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD;AC9FO,MAAM,WAAW,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,aAKlB,CAAC,UAAW,MAAM,aAAa,IAAI,CAAE;AAAA,IAC9C,aAAa;AAAA,IACb,KAAK;AAAA;"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),r=require("react"),n=require("styled-components"),t=require("./style-D8DUzG0C.cjs"),o=require("./style-fRZ6xrVp.cjs"),a=n.div`
|
|
2
|
-
position: relative;
|
|
3
|
-
display: flex;
|
|
4
|
-
width: 100%;
|
|
5
|
-
box-sizing: border-box;
|
|
6
|
-
align-items: center;
|
|
7
|
-
height: 20px;
|
|
8
|
-
${t.addError};
|
|
9
|
-
${o.addSX};
|
|
10
|
-
`,s=n.div`
|
|
11
|
-
position: absolute;
|
|
12
|
-
height: 3px;
|
|
13
|
-
width: 100%;
|
|
14
|
-
padding: 0px 10px;
|
|
15
|
-
border-radius: 2px;
|
|
16
|
-
`,i=n.input`
|
|
17
|
-
position: absolute;
|
|
18
|
-
width: 100%;
|
|
19
|
-
outline: none !important;
|
|
20
|
-
pointer-events: none;
|
|
21
|
-
appearance: none;
|
|
22
|
-
-webkit-appearance: none;
|
|
23
|
-
background: transparent;
|
|
24
|
-
left: 0;
|
|
25
|
-
margin: 0;
|
|
26
|
-
&::-webkit-slider-thumb {
|
|
27
|
-
pointer-events: all;
|
|
28
|
-
width: 16px;
|
|
29
|
-
height: 16px;
|
|
30
|
-
margin: 0;
|
|
31
|
-
padding: 0;
|
|
32
|
-
border-radius: 50%;
|
|
33
|
-
background: ${e=>e.$colorBackground};
|
|
34
|
-
border: 3px ${e=>e.$colorBorder} solid;
|
|
35
|
-
cursor: pointer;
|
|
36
|
-
-webkit-appearance: none;
|
|
37
|
-
margin-top: 0px;
|
|
38
|
-
transition:
|
|
39
|
-
transform ${e=>e.theme.transition.default},
|
|
40
|
-
color ${e=>e.theme.transition.default},
|
|
41
|
-
background-color ${e=>e.theme.transition.default};
|
|
42
|
-
&:hover {
|
|
43
|
-
transform: scale(1.2);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
`;exports.Range=t=>{const{onChange:o}=t,u=r.useCallback((e,r)=>{const n=[...t.values];n[e]=Math.min(t.max,Math.max(t.min,r)),o(n.sort((e,r)=>e-r))},[o,t.max,t.min,t.values]),l=r.useCallback(e=>(e-t.min)/(t.max-t.min)*100,[t.max,t.min]),p=r.useMemo(()=>t.values.map(e=>l(e)),[l,t.values]),d=n.useTheme(),g=d.colors.range[t.genre].track.background.rest,m=d.colors.range[t.genre].track.gradient.rest,c=d.colors.range[t.genre].thumb.border.rest,x=d.colors.range[t.genre].thumb.background.rest,$=r.useMemo(()=>p.map((e,r)=>{const n=0===r,t=r===p.length-1;return n?`${g} 0%, ${g} ${e}%, ${m} ${e}%`:t?`${m} ${e}%, ${g} ${e}%, ${g} 100%`:`${m} ${e}%`}).join(", "),[m,g,p]),h=r.useMemo(()=>`linear-gradient(to right, ${$})`,[$]);return e.jsxRuntimeExports.jsxs(a,{$size:t.size,$sx:t.sx,$error:t.error,onBlur:t.onBlur,children:[t.values.map((r,n)=>e.jsxRuntimeExports.jsx(i,{type:"range",$size:t.size,$genre:t.genre,min:t.min,max:t.max,step:t.step,value:r,onChange:e=>u(n,parseFloat(e.target.value)),style:{zIndex:100+n},$colorBackground:x,$colorBorder:c},n)),e.jsxRuntimeExports.jsx(s,{$size:t.size,$genre:t.genre,style:{background:h}})]})},exports.RangeThumb=i,exports.RangeTrack=s,exports.RangeWrapper=a;
|
|
47
|
-
//# sourceMappingURL=component.styles-C8ONgWei.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-C8ONgWei.cjs","sources":["../src/components/range/component.styles.ts","../src/components/range/component.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\n\nimport { RangeComponentProps, RangeThumbProps, RangeWrapperProps } from '.';\n\nexport const RangeWrapper = styled.div<RangeWrapperProps>`\n position: relative;\n display: flex;\n width: 100%;\n box-sizing: border-box;\n align-items: center;\n height: 20px;\n ${addError};\n ${addSX};\n`;\n\nexport const RangeTrack = styled.div<RangeComponentProps>`\n position: absolute;\n height: 3px;\n width: 100%;\n padding: 0px 10px;\n border-radius: 2px;\n`;\nexport const RangeThumb = styled.input<RangeThumbProps>`\n position: absolute;\n width: 100%;\n outline: none !important;\n pointer-events: none;\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n left: 0;\n margin: 0;\n &::-webkit-slider-thumb {\n pointer-events: all;\n width: 16px;\n height: 16px;\n margin: 0;\n padding: 0;\n border-radius: 50%;\n background: ${(props) => props.$colorBackground};\n border: 3px ${(props) => props.$colorBorder} solid;\n cursor: pointer;\n -webkit-appearance: none;\n margin-top: 0px;\n transition:\n transform ${(props) => props.theme.transition.default},\n color ${(props) => props.theme.transition.default},\n background-color ${(props) => props.theme.transition.default};\n &:hover {\n transform: scale(1.2);\n }\n }\n`;\n","import { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { RangeProps, RangeThumb, RangeTrack, RangeWrapper } from '.';\n\nexport const Range = (props: RangeProps) => {\n const { onChange } = props;\n const handleChange = useCallback(\n (index: number, newValue: number) => {\n const newValues = [...props.values];\n newValues[index] = Math.min(props.max, Math.max(props.min, newValue));\n onChange(newValues.sort((a, b) => a - b));\n },\n [onChange, props.max, props.min, props.values],\n );\n const getThumbPositionPercent = useCallback(\n (val: number) => ((val - props.min) / (props.max - props.min)) * 100,\n [props.max, props.min],\n );\n const positions = useMemo(\n () => props.values.map((val) => getThumbPositionPercent(val)),\n [getThumbPositionPercent, props.values],\n );\n const theme = useTheme();\n\n const colorTrackBackground = theme.colors.range[props.genre].track.background.rest;\n const colorTrackGradient = theme.colors.range[props.genre].track.gradient.rest;\n const colorThumbBorder = theme.colors.range[props.genre].thumb.border.rest;\n const colorThumbBackground = theme.colors.range[props.genre].thumb.background.rest;\n\n const trackGradient = useMemo(\n () =>\n positions\n .map((position, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === positions.length - 1;\n\n if (isFirst)\n return `${colorTrackBackground} 0%, ${colorTrackBackground} ${position}%, ${colorTrackGradient} ${position}%`;\n if (isLast)\n return `${colorTrackGradient} ${position}%, ${colorTrackBackground} ${position}%, ${colorTrackBackground} 100%`;\n return `${colorTrackGradient} ${position}%`;\n })\n .join(', '),\n [colorTrackGradient, colorTrackBackground, positions],\n );\n const gradient = useMemo(() => `linear-gradient(to right, ${trackGradient})`, [trackGradient]);\n\n return (\n <RangeWrapper $size={props.size} $sx={props.sx} $error={props.error} onBlur={props.onBlur}>\n {props.values.map((val, idx) => (\n <RangeThumb\n key={idx}\n type='range'\n $size={props.size}\n $genre={props.genre}\n min={props.min}\n max={props.max}\n step={props.step}\n value={val}\n onChange={(e) => handleChange(idx, parseFloat(e.target.value))}\n style={{ zIndex: 100 + idx }}\n $colorBackground={colorThumbBackground}\n $colorBorder={colorThumbBorder}\n />\n ))}\n <RangeTrack\n $size={props.size}\n $genre={props.genre}\n style={{\n background: gradient,\n }}\n />\n </RangeWrapper>\n );\n};\n"],"names":["RangeWrapper","styled","div","addError","addSX","RangeTrack","RangeThumb","input","props","$colorBackground","$colorBorder","theme","transition","default","onChange","handleChange","useCallback","index","newValue","newValues","values","Math","min","max","sort","a","b","getThumbPositionPercent","val","positions","useMemo","map","useTheme","colorTrackBackground","colors","range","genre","track","background","rest","colorTrackGradient","gradient","colorThumbBorder","thumb","border","colorThumbBackground","trackGradient","position","idx","isFirst","isLast","length","join","jsxs","$size","size","$sx","sx","$error","error","onBlur","children","jsx","type","$genre","step","value","e","parseFloat","target","style","zIndex"],"mappings":"iLAOaA,EAAeC,EAAOC,GAAA;;;;;;;IAO/BC;IACAC;EAGSC,EAAaJ,EAAOC,GAAA;;;;;;EAOpBI,EAAaL,EAAOM,KAAA;;;;;;;;;;;;;;;;;kBAiBdC,GAAUA,EAAMC;kBAChBD,GAAUA,EAAME;;;;;kBAKhBF,GAAUA,EAAMG,MAAMC,WAAWC;cACrCL,GAAUA,EAAMG,MAAMC,WAAWC;yBACtBL,GAAUA,EAAMG,MAAMC,WAAWC;;;;;gBC7CrCL,IACpB,MAAMM,SAAEA,GAAaN,EACfO,EAAeC,EAAAA,YACnB,CAACC,EAAeC,KACd,MAAMC,EAAY,IAAIX,EAAMY,QAC5BD,EAAUF,GAASI,KAAKC,IAAId,EAAMe,IAAKF,KAAKE,IAAIf,EAAMc,IAAKJ,IAC3DJ,EAASK,EAAUK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,KAExC,CAACZ,EAAUN,EAAMe,IAAKf,EAAMc,IAAKd,EAAMY,SAEnCO,EAA0BX,EAAAA,YAC7BY,IAAkBA,EAAMpB,EAAMc,MAAQd,EAAMe,IAAMf,EAAMc,KAAQ,IACjE,CAACd,EAAMe,IAAKf,EAAMc,MAEdO,EAAYC,EAAAA,QAChB,IAAMtB,EAAMY,OAAOW,IAAKH,GAAQD,EAAwBC,IACxD,CAACD,EAAyBnB,EAAMY,SAE5BT,EAAQqB,EAAAA,WAERC,EAAuBtB,EAAMuB,OAAOC,MAAM3B,EAAM4B,OAAOC,MAAMC,WAAWC,KACxEC,EAAqB7B,EAAMuB,OAAOC,MAAM3B,EAAM4B,OAAOC,MAAMI,SAASF,KACpEG,EAAmB/B,EAAMuB,OAAOC,MAAM3B,EAAM4B,OAAOO,MAAMC,OAAOL,KAChEM,EAAuBlC,EAAMuB,OAAOC,MAAM3B,EAAM4B,OAAOO,MAAML,WAAWC,KAExEO,EAAgBhB,EAAAA,QACpB,IACED,EACGE,IAAI,CAACgB,EAAUC,KACd,MAAMC,EAAkB,IAARD,EACVE,EAASF,IAAQnB,EAAUsB,OAAS,EAE1C,OAAIF,EACK,GAAGhB,SAA4BA,KAAwBc,OAAcP,KAAsBO,KAChGG,EACK,GAAGV,KAAsBO,OAAcd,KAAwBc,OAAcd,SAC/E,GAAGO,KAAsBO,OAEjCK,KAAK,MACV,CAACZ,EAAoBP,EAAsBJ,IAEvCY,EAAWX,EAAAA,QAAQ,IAAM,6BAA6BgB,KAAkB,CAACA,IAE/E,SACEO,kBAAAA,KAACrD,EAAA,CAAasD,MAAO9C,EAAM+C,KAAMC,IAAKhD,EAAMiD,GAAIC,OAAQlD,EAAMmD,MAAOC,OAAQpD,EAAMoD,OAChFC,SAAA,CAAArD,EAAMY,OAAOW,IAAI,CAACH,EAAKoB,MACtBc,kBAAAA,IAACxD,EAAA,CAECyD,KAAK,QACLT,MAAO9C,EAAM+C,KACbS,OAAQxD,EAAM4B,MACdd,IAAKd,EAAMc,IACXC,IAAKf,EAAMe,IACX0C,KAAMzD,EAAMyD,KACZC,MAAOtC,EACPd,SAAWqD,GAAMpD,EAAaiC,EAAKoB,WAAWD,EAAEE,OAAOH,QACvDI,MAAO,CAAEC,OAAQ,IAAMvB,GACvBvC,iBAAkBoC,EAClBnC,aAAcgC,GAXTM,MAcTc,kBAAAA,IAACzD,EAAA,CACCiD,MAAO9C,EAAM+C,KACbS,OAAQxD,EAAM4B,MACdkC,MAAO,CACLhC,WAAYG"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
|
-
import { b as Stack } from "./component-mzzOCXSx.js";
|
|
3
|
-
import { useCallback } from "react";
|
|
4
|
-
import { I as Icon } from "./component.styles-CtZeOnGH.js";
|
|
5
|
-
import { b as addTransition } from "./style-RL73t3JD.js";
|
|
6
|
-
import styled, { css } from "styled-components";
|
|
7
|
-
const Accordion = (props) => {
|
|
8
|
-
const onClickSummary = useCallback(() => {
|
|
9
|
-
if (props.onClickSummary) props.onClickSummary();
|
|
10
|
-
}, [props]);
|
|
11
|
-
const onClickIcon = useCallback(
|
|
12
|
-
(event) => {
|
|
13
|
-
if (props.onClickIcon) {
|
|
14
|
-
event.stopPropagation();
|
|
15
|
-
props.onClickIcon();
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
[props]
|
|
19
|
-
);
|
|
20
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { ...props.wrapperProps, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AccordionWrapper, { children: [
|
|
21
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(AccordionSummary, { onClick: onClickSummary, children: [
|
|
22
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(AccordionSummaryContent, { $isAccordionIcon: props.isAccordionIcon, children: props.accordionSummary }),
|
|
23
|
-
props.isAccordionIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
24
|
-
AccordionStyledIcon,
|
|
25
|
-
{
|
|
26
|
-
$expanded: props.expanded,
|
|
27
|
-
onClick: onClickIcon,
|
|
28
|
-
name: "Arrow1",
|
|
29
|
-
color: "black100",
|
|
30
|
-
type: "id",
|
|
31
|
-
size: "large"
|
|
32
|
-
}
|
|
33
|
-
)
|
|
34
|
-
] }),
|
|
35
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(AccordionDetails, { $expanded: props.expanded, children: props.accordionDetails })
|
|
36
|
-
] }) });
|
|
37
|
-
};
|
|
38
|
-
const AccordionWrapper = styled.div`
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-direction: column;
|
|
41
|
-
width: 100%;
|
|
42
|
-
`;
|
|
43
|
-
const AccordionSummary = styled.div`
|
|
44
|
-
display: flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
justify-content: space-between;
|
|
47
|
-
user-select: none;
|
|
48
|
-
`;
|
|
49
|
-
const AccordionSummaryContent = styled.div`
|
|
50
|
-
width: 100%;
|
|
51
|
-
|
|
52
|
-
${(props) => props.$isAccordionIcon && css`
|
|
53
|
-
width: calc(100% - 26px);
|
|
54
|
-
`}
|
|
55
|
-
`;
|
|
56
|
-
const AccordionDetails = styled.div`
|
|
57
|
-
max-height: ${(props) => props.$expanded ? "9999px" : "0"};
|
|
58
|
-
height: ${(props) => props.$expanded ? "100%" : "0"};
|
|
59
|
-
opacity: ${(props) => props.$expanded ? 1 : 0};
|
|
60
|
-
overflow: hidden;
|
|
61
|
-
${addTransition};
|
|
62
|
-
`;
|
|
63
|
-
const AccordionStyledIcon = styled(Icon)`
|
|
64
|
-
padding: 4px;
|
|
65
|
-
box-sizing: content-box;
|
|
66
|
-
cursor: pointer;
|
|
67
|
-
${(props) => props.$expanded ? css`
|
|
68
|
-
transform: rotate(180deg);
|
|
69
|
-
` : css`
|
|
70
|
-
transform: rotate(0deg);
|
|
71
|
-
`}
|
|
72
|
-
`;
|
|
73
|
-
export {
|
|
74
|
-
Accordion as A,
|
|
75
|
-
AccordionWrapper as a,
|
|
76
|
-
AccordionSummary as b,
|
|
77
|
-
AccordionSummaryContent as c,
|
|
78
|
-
AccordionDetails as d,
|
|
79
|
-
AccordionStyledIcon as e
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=component.styles-CHqowxsZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-CHqowxsZ.js","sources":["../src/components/accordion/component.tsx","../src/components/accordion/component.styles.ts"],"sourcesContent":["import { Stack } from '@local/components/stack';\n\nimport React, { FC, useCallback } from 'react';\n\nimport {\n AccordionDetails,\n AccordionProps,\n AccordionStyledIcon,\n AccordionSummary,\n AccordionSummaryContent,\n AccordionWrapper,\n} from '.';\n\nexport const Accordion: FC<AccordionProps> = (props) => {\n const onClickSummary = useCallback(() => {\n if (props.onClickSummary) props.onClickSummary();\n }, [props]);\n\n const onClickIcon = useCallback(\n (event: React.MouseEvent<SVGSVGElement>) => {\n if (props.onClickIcon) {\n event.stopPropagation();\n\n props.onClickIcon();\n }\n },\n [props],\n );\n\n return (\n <Stack {...props.wrapperProps}>\n <AccordionWrapper>\n <AccordionSummary onClick={onClickSummary}>\n <AccordionSummaryContent $isAccordionIcon={props.isAccordionIcon}>\n {props.accordionSummary}\n </AccordionSummaryContent>\n {props.isAccordionIcon && (\n <AccordionStyledIcon\n $expanded={props.expanded}\n onClick={onClickIcon}\n name='Arrow1'\n color='black100'\n type='id'\n size='large'\n />\n )}\n </AccordionSummary>\n <AccordionDetails $expanded={props.expanded}>{props.accordionDetails}</AccordionDetails>\n </AccordionWrapper>\n </Stack>\n );\n};\n","import { Icon } from '@local/components/icon';\nimport { addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport { AccordionDetailsProps, AccordionStyledIconProps, AccordionSummaryContentProps } from '.';\n\nexport const AccordionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\nexport const AccordionSummary = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n`;\nexport const AccordionSummaryContent = styled.div<AccordionSummaryContentProps>`\n width: 100%;\n\n ${(props) =>\n props.$isAccordionIcon &&\n css`\n width: calc(100% - 26px);\n `}\n`;\nexport const AccordionDetails = styled.div<AccordionDetailsProps>`\n max-height: ${(props) => (props.$expanded ? '9999px' : '0')};\n height: ${(props) => (props.$expanded ? '100%' : '0')};\n opacity: ${(props) => (props.$expanded ? 1 : 0)};\n overflow: hidden;\n ${addTransition};\n`;\nexport const AccordionStyledIcon = styled(Icon)<AccordionStyledIconProps>`\n padding: 4px;\n box-sizing: content-box;\n cursor: pointer;\n ${(props) =>\n props.$expanded\n ? css`\n transform: rotate(180deg);\n `\n : css`\n transform: rotate(0deg);\n `}\n`;\n"],"names":["jsxs","jsx"],"mappings":";;;;;;AAaO,MAAM,YAAgC,CAAC,UAAU;AACtD,QAAM,iBAAiB,YAAY,MAAM;AACvC,QAAI,MAAM,eAAgB,OAAM,eAAA;AAAA,EAAe,GAC9C,CAAC,KAAK,CAAC;AAEV,QAAM,cAAc;AAAA,IAClB,CAAC,UAA2C;AAC1C,UAAI,MAAM,aAAa;AACrB,cAAM,gBAAA;AAEN,cAAM,YAAA;AAAA,MAAY;AAAA,IACpB;AAAA,IAEF,CAAC,KAAK;AAAA,EAAA;AAGR,+CACG,OAAA,EAAO,GAAG,MAAM,cACf,iDAAC,kBAAA,EACC,UAAA;AAAA,IAAAA,kCAAAA,KAAC,kBAAA,EAAiB,SAAS,gBACzB,UAAA;AAAA,MAAAC,sCAAC,yBAAA,EAAwB,kBAAkB,MAAM,iBAC9C,gBAAM,kBACT;AAAA,MACC,MAAM,mBACLA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,MAAM;AAAA,UACjB,SAAS;AAAA,UACT,MAAK;AAAA,UACL,OAAM;AAAA,UACN,MAAK;AAAA,UACL,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACP,GAEJ;AAAA,0CACC,kBAAA,EAAiB,WAAW,MAAM,UAAW,gBAAM,iBAAA,CAAiB;AAAA,EAAA,EAAA,CACvE,EAAA,CACF;AAEJ;AC5CO,MAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA;AAAA;AAKhC,MAAM,mBAAmB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAMhC,MAAM,0BAA0B,OAAO;AAAA;AAAA;AAAA,IAG1C,CAAC,UACD,MAAM,oBACN;AAAA;AAAA,KAEC;AAAA;AAEE,MAAM,mBAAmB,OAAO;AAAA,gBACvB,CAAC,UAAW,MAAM,YAAY,WAAW,GAAI;AAAA,YACjD,CAAC,UAAW,MAAM,YAAY,SAAS,GAAI;AAAA,aAC1C,CAAC,UAAW,MAAM,YAAY,IAAI,CAAE;AAAA;AAAA,IAE7C,aAAa;AAAA;AAEV,MAAM,sBAAsB,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA,IAI1C,CAAC,UACD,MAAM,YACF;AAAA;AAAA,YAGA;AAAA;AAAA,SAEC;AAAA;"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./style-fRZ6xrVp.cjs"),r=require("styled-components"),s="1px",o=r.div`
|
|
2
|
-
flex-grow: 1;
|
|
3
|
-
flex-shrink: 1;
|
|
4
|
-
|
|
5
|
-
width: ${e=>"horizontal"===e.$type?"auto":e.$thickness||s};
|
|
6
|
-
max-width: ${e=>"horizontal"===e.$type?"100%":e.$thickness||s};
|
|
7
|
-
height: ${e=>"vertical"===e.$type?"auto":e.$thickness||s};
|
|
8
|
-
max-height: ${e=>"vertical"===e.$type?"100%":e.$thickness||s};
|
|
9
|
-
|
|
10
|
-
background: ${e=>e.$color&&e.theme.palette[e.$color]};
|
|
11
|
-
border-radius: ${e=>e.$radius||"0px"};
|
|
12
|
-
${t.addSX};
|
|
13
|
-
`;exports.Separator=t=>{const r=t.color||"grayMonica";return e.jsxRuntimeExports.jsx(o,{role:"separator","aria-orientation":t.type,$radius:t.radius,$color:r,$sx:t.sx,$type:t.type,$thickness:t.thickness})},exports.SeparatorWrapper=o;
|
|
14
|
-
//# sourceMappingURL=component.styles-CLn52hJD.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-CLn52hJD.cjs","sources":["../src/components/separator/component.styles.tsx","../src/components/separator/component.tsx"],"sourcesContent":["import { addSX } from '@local/styles/sx';\n\nimport styled from 'styled-components';\n\nimport { SeparatorWrapperProps } from '.';\n\nconst DEFAULT_SEPARATOR_SIZE = '1px';\n\nexport const SeparatorWrapper = styled.div<SeparatorWrapperProps>`\n flex-grow: 1;\n flex-shrink: 1;\n\n width: ${(props) => (props.$type === 'horizontal' ? 'auto' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n max-width: ${(props) => (props.$type === 'horizontal' ? '100%' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n height: ${(props) => (props.$type === 'vertical' ? 'auto' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n max-height: ${(props) => (props.$type === 'vertical' ? '100%' : props.$thickness || DEFAULT_SEPARATOR_SIZE)};\n\n background: ${(props) => props.$color && props.theme.palette[props.$color]};\n border-radius: ${(props) => props.$radius || '0px'};\n ${addSX};\n`;\n","import { IThemePaletteKeys } from '@local/theme/theme.interface';\n\nimport { FC } from 'react';\n\nimport { SeparatorProps, SeparatorWrapper } from '.';\n\nexport const Separator: FC<SeparatorProps> = (props) => {\n const color: IThemePaletteKeys = props.color || 'grayMonica';\n return (\n <SeparatorWrapper\n role='separator'\n aria-orientation={props.type}\n $radius={props.radius}\n $color={color}\n $sx={props.sx}\n $type={props.type}\n $thickness={props.thickness}\n />\n );\n};\n"],"names":["DEFAULT_SEPARATOR_SIZE","SeparatorWrapper","styled","div","props","$type","$thickness","$color","theme","palette","$radius","addSX","color","jsx","role","type","radius","$sx","sx","thickness"],"mappings":"4HAMMA,EAAyB,MAElBC,EAAmBC,EAAOC,GAAA;;;;WAI3BC,GAA2B,eAAhBA,EAAMC,MAAyB,OAASD,EAAME,YAAcN;eACnEI,GAA2B,eAAhBA,EAAMC,MAAyB,OAASD,EAAME,YAAcN;YAC1EI,GAA2B,aAAhBA,EAAMC,MAAuB,OAASD,EAAME,YAAcN;gBACjEI,GAA2B,aAAhBA,EAAMC,MAAuB,OAASD,EAAME,YAAcN;;gBAErEI,GAAUA,EAAMG,QAAUH,EAAMI,MAAMC,QAAQL,EAAMG;mBACjDH,GAAUA,EAAMM,SAAW;IAC3CC;oBCb0CP,IAC5C,MAAMQ,EAA2BR,EAAMQ,OAAS,aAChD,SACEC,kBAAAA,IAACZ,EAAA,CACCa,KAAK,YACL,mBAAkBV,EAAMW,KACxBL,QAASN,EAAMY,OACfT,OAAQK,EACRK,IAAKb,EAAMc,GACXb,MAAOD,EAAMW,KACbT,WAAYF,EAAMe"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),o=require("./component-GKvpOWlO.cjs"),n=require("react"),r=require("./component.styles-BviHtzJH.cjs"),c=require("./style-Df37KnoJ.cjs"),i=require("styled-components"),s=i.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
width: 100%;
|
|
5
|
-
`,t=i.div`
|
|
6
|
-
display: flex;
|
|
7
|
-
align-items: center;
|
|
8
|
-
justify-content: space-between;
|
|
9
|
-
user-select: none;
|
|
10
|
-
`,d=i.div`
|
|
11
|
-
width: 100%;
|
|
12
|
-
|
|
13
|
-
${e=>e.$isAccordionIcon&&i.css`
|
|
14
|
-
width: calc(100% - 26px);
|
|
15
|
-
`}
|
|
16
|
-
`,a=i.div`
|
|
17
|
-
max-height: ${e=>e.$expanded?"9999px":"0"};
|
|
18
|
-
height: ${e=>e.$expanded?"100%":"0"};
|
|
19
|
-
opacity: ${e=>e.$expanded?1:0};
|
|
20
|
-
overflow: hidden;
|
|
21
|
-
${c.addTransition};
|
|
22
|
-
`,x=i(r.Icon)`
|
|
23
|
-
padding: 4px;
|
|
24
|
-
box-sizing: content-box;
|
|
25
|
-
cursor: pointer;
|
|
26
|
-
${e=>e.$expanded?i.css`
|
|
27
|
-
transform: rotate(180deg);
|
|
28
|
-
`:i.css`
|
|
29
|
-
transform: rotate(0deg);
|
|
30
|
-
`}
|
|
31
|
-
`;exports.Accordion=r=>{const c=n.useCallback(()=>{r.onClickSummary&&r.onClickSummary()},[r]),i=n.useCallback(e=>{r.onClickIcon&&(e.stopPropagation(),r.onClickIcon())},[r]);return e.jsxRuntimeExports.jsx(o.Stack,{...r.wrapperProps,children:e.jsxRuntimeExports.jsxs(s,{children:[e.jsxRuntimeExports.jsxs(t,{onClick:c,children:[e.jsxRuntimeExports.jsx(d,{$isAccordionIcon:r.isAccordionIcon,children:r.accordionSummary}),r.isAccordionIcon&&e.jsxRuntimeExports.jsx(x,{$expanded:r.expanded,onClick:i,name:"Arrow1",color:"black100",type:"id",size:"large"})]}),e.jsxRuntimeExports.jsx(a,{$expanded:r.expanded,children:r.accordionDetails})]})})},exports.AccordionDetails=a,exports.AccordionStyledIcon=x,exports.AccordionSummary=t,exports.AccordionSummaryContent=d,exports.AccordionWrapper=s;
|
|
32
|
-
//# sourceMappingURL=component.styles-CXyyc0xg.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-CXyyc0xg.cjs","sources":["../src/components/accordion/component.styles.ts","../src/components/accordion/component.tsx"],"sourcesContent":["import { Icon } from '@local/components/icon';\nimport { addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport { AccordionDetailsProps, AccordionStyledIconProps, AccordionSummaryContentProps } from '.';\n\nexport const AccordionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\nexport const AccordionSummary = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n`;\nexport const AccordionSummaryContent = styled.div<AccordionSummaryContentProps>`\n width: 100%;\n\n ${(props) =>\n props.$isAccordionIcon &&\n css`\n width: calc(100% - 26px);\n `}\n`;\nexport const AccordionDetails = styled.div<AccordionDetailsProps>`\n max-height: ${(props) => (props.$expanded ? '9999px' : '0')};\n height: ${(props) => (props.$expanded ? '100%' : '0')};\n opacity: ${(props) => (props.$expanded ? 1 : 0)};\n overflow: hidden;\n ${addTransition};\n`;\nexport const AccordionStyledIcon = styled(Icon)<AccordionStyledIconProps>`\n padding: 4px;\n box-sizing: content-box;\n cursor: pointer;\n ${(props) =>\n props.$expanded\n ? css`\n transform: rotate(180deg);\n `\n : css`\n transform: rotate(0deg);\n `}\n`;\n","import { Stack } from '@local/components/stack';\n\nimport React, { FC, useCallback } from 'react';\n\nimport {\n AccordionDetails,\n AccordionProps,\n AccordionStyledIcon,\n AccordionSummary,\n AccordionSummaryContent,\n AccordionWrapper,\n} from '.';\n\nexport const Accordion: FC<AccordionProps> = (props) => {\n const onClickSummary = useCallback(() => {\n if (props.onClickSummary) props.onClickSummary();\n }, [props]);\n\n const onClickIcon = useCallback(\n (event: React.MouseEvent<SVGSVGElement>) => {\n if (props.onClickIcon) {\n event.stopPropagation();\n\n props.onClickIcon();\n }\n },\n [props],\n );\n\n return (\n <Stack {...props.wrapperProps}>\n <AccordionWrapper>\n <AccordionSummary onClick={onClickSummary}>\n <AccordionSummaryContent $isAccordionIcon={props.isAccordionIcon}>\n {props.accordionSummary}\n </AccordionSummaryContent>\n {props.isAccordionIcon && (\n <AccordionStyledIcon\n $expanded={props.expanded}\n onClick={onClickIcon}\n name='Arrow1'\n color='black100'\n type='id'\n size='large'\n />\n )}\n </AccordionSummary>\n <AccordionDetails $expanded={props.expanded}>{props.accordionDetails}</AccordionDetails>\n </AccordionWrapper>\n </Stack>\n );\n};\n"],"names":["AccordionWrapper","styled","div","AccordionSummary","AccordionSummaryContent","props","$isAccordionIcon","css","AccordionDetails","$expanded","addTransition","AccordionStyledIcon","Icon","onClickSummary","useCallback","onClickIcon","event","stopPropagation","Stack","wrapperProps","children","jsxs","onClick","jsx","isAccordionIcon","accordionSummary","expanded","name","color","type","size","accordionDetails"],"mappings":"kOAOaA,EAAmBC,EAAOC,GAAA;;;;EAK1BC,EAAmBF,EAAOC,GAAA;;;;;EAM1BE,EAA0BH,EAAOC,GAAA;;;IAGzCG,GACDA,EAAMC,kBACNC,EAAAA,GAAAA;;;EAISC,EAAmBP,EAAOC,GAAA;gBACtBG,GAAWA,EAAMI,UAAY,SAAW;YAC5CJ,GAAWA,EAAMI,UAAY,OAAS;aACrCJ,GAAWA,EAAMI,UAAY,EAAI;;IAE3CC;EAESC,EAAsBV,EAAOW,OAAI;;;;IAIzCP,GACDA,EAAMI,UACFF,EAAAA,GAAAA;;UAGAA,EAAAA,GAAAA;;;oBC9BsCF,IAC5C,MAAMQ,EAAiBC,EAAAA,YAAY,KAC7BT,EAAMQ,gBAAgBR,EAAMQ,kBAC/B,CAACR,IAEEU,EAAcD,EAAAA,YACjBE,IACKX,EAAMU,cACRC,EAAMC,kBAENZ,EAAMU,gBAGV,CAACV,IAGH,+BACGa,QAAA,IAAUb,EAAMc,aACfC,kCAACpB,EAAA,CACCoB,SAAA,GAAAC,kBAAAA,KAAClB,EAAA,CAAiBmB,QAAST,EACzBO,SAAA,CAAAG,wBAACnB,EAAA,CAAwBE,iBAAkBD,EAAMmB,gBAC9CJ,WAAMK,mBAERpB,EAAMmB,iBACLD,EAAAA,kBAAAA,IAACZ,EAAA,CACCF,UAAWJ,EAAMqB,SACjBJ,QAASP,EACTY,KAAK,SACLC,MAAM,WACNC,KAAK,KACLC,KAAK,qCAIVtB,EAAA,CAAiBC,UAAWJ,EAAMqB,SAAWN,WAAMW"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
|
-
import { useMemo, useState, useEffect } from "react";
|
|
3
|
-
import styled, { useTheme, css } from "styled-components";
|
|
4
|
-
import { f as addColorTransition } from "./style-RL73t3JD.js";
|
|
5
|
-
import { a as addSX } from "./style-plT9Ah7t.js";
|
|
6
|
-
import { K as KEY_SIZE_DATA } from "./theme.global-BzunMIsv.js";
|
|
7
|
-
const Icon = (props) => {
|
|
8
|
-
const theme = useTheme();
|
|
9
|
-
const iconId = useMemo(
|
|
10
|
-
() => theme.icon.getIconId({ type: props.type, name: props.name }),
|
|
11
|
-
[props.name, props.type, theme.icon.getIconId]
|
|
12
|
-
);
|
|
13
|
-
const spriteUrl = useMemo(() => theme.icon.getSpriteUrl({ type: props.type }), [props.type, theme.icon.getSpriteUrl]);
|
|
14
|
-
const loaded = useLazyInjectSprite(spriteUrl);
|
|
15
|
-
if (!loaded) return null;
|
|
16
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
17
|
-
StyledSVG,
|
|
18
|
-
{
|
|
19
|
-
width: "24",
|
|
20
|
-
height: "24",
|
|
21
|
-
viewBox: "0 0 24 24",
|
|
22
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
23
|
-
$size: props.size,
|
|
24
|
-
$turn: props.turn,
|
|
25
|
-
$order: props.order,
|
|
26
|
-
$color: props.color || void 0,
|
|
27
|
-
$sx: props.sx,
|
|
28
|
-
className: props.className,
|
|
29
|
-
onClick: props.onClick,
|
|
30
|
-
tabIndex: props.tabIndex,
|
|
31
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx("use", { href: iconId })
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
function getIconComponents(props) {
|
|
36
|
-
var _a, _b;
|
|
37
|
-
return (_b = (_a = props.icons ?? []) == null ? void 0 : _a.filter((icon) => !icon.isHidden)) == null ? void 0 : _b.map((icon, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: (icon == null ? void 0 : icon.size) ?? props.size, ...icon }, `${icon.type}-${icon.name}-${index}`));
|
|
38
|
-
}
|
|
39
|
-
function useInjectSprites(urls) {
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
const containers = [];
|
|
42
|
-
urls.forEach(async (url) => {
|
|
43
|
-
try {
|
|
44
|
-
const res = await fetch(url);
|
|
45
|
-
if (!res.ok) {
|
|
46
|
-
console.error(`Failed to load sprite: ${url}`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const text = await res.text();
|
|
50
|
-
const div = document.createElement("div");
|
|
51
|
-
div.style.display = "none";
|
|
52
|
-
div.innerHTML = text;
|
|
53
|
-
document.body.prepend(div);
|
|
54
|
-
containers.push(div);
|
|
55
|
-
} catch (err) {
|
|
56
|
-
console.error(`Error loading sprite ${url}`, err);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
return () => {
|
|
60
|
-
containers.forEach((div) => div.remove());
|
|
61
|
-
};
|
|
62
|
-
}, [urls]);
|
|
63
|
-
}
|
|
64
|
-
const loadedSprites = /* @__PURE__ */ new Map();
|
|
65
|
-
function useLazyInjectSprite(url) {
|
|
66
|
-
const [loaded, setLoaded] = useState(loadedSprites.has(url));
|
|
67
|
-
useEffect(() => {
|
|
68
|
-
var _a;
|
|
69
|
-
if (loaded) return;
|
|
70
|
-
let isMounted = true;
|
|
71
|
-
if (!loadedSprites.has(url)) {
|
|
72
|
-
const promise = (async () => {
|
|
73
|
-
const res = await fetch(url);
|
|
74
|
-
if (!res.ok) throw new Error(`Failed to load sprite: ${url}`);
|
|
75
|
-
const text = await res.text();
|
|
76
|
-
const div = document.createElement("div");
|
|
77
|
-
div.style.display = "none";
|
|
78
|
-
div.innerHTML = text;
|
|
79
|
-
document.body.prepend(div);
|
|
80
|
-
})();
|
|
81
|
-
loadedSprites.set(url, promise);
|
|
82
|
-
}
|
|
83
|
-
(_a = loadedSprites.get(url)) == null ? void 0 : _a.then(() => {
|
|
84
|
-
if (isMounted) setLoaded(true);
|
|
85
|
-
});
|
|
86
|
-
return () => {
|
|
87
|
-
isMounted = false;
|
|
88
|
-
};
|
|
89
|
-
}, [url, loaded]);
|
|
90
|
-
return loaded;
|
|
91
|
-
}
|
|
92
|
-
const StyledSVG = styled.svg`
|
|
93
|
-
color: ${(props) => props.$color ? props.theme.palette[props.$color] : "inherit"};
|
|
94
|
-
|
|
95
|
-
${(props) => css`
|
|
96
|
-
height: ${props.$size !== "100%" ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : "100%"};
|
|
97
|
-
min-height: ${props.$size !== "100%" ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : "100%"};
|
|
98
|
-
|
|
99
|
-
width: ${props.$size !== "100%" ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : "100%"};
|
|
100
|
-
min-width: ${props.$size !== "100%" ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : "100%"};
|
|
101
|
-
|
|
102
|
-
transform: rotate(${props.$turn || 0}deg);
|
|
103
|
-
`}
|
|
104
|
-
${(props) => props.$order !== void 0 && css`
|
|
105
|
-
order: ${props.$order};
|
|
106
|
-
`};
|
|
107
|
-
${addColorTransition};
|
|
108
|
-
& path {
|
|
109
|
-
${addColorTransition};
|
|
110
|
-
}
|
|
111
|
-
${addSX};
|
|
112
|
-
`;
|
|
113
|
-
export {
|
|
114
|
-
Icon as I,
|
|
115
|
-
StyledSVG as S,
|
|
116
|
-
useLazyInjectSprite as a,
|
|
117
|
-
getIconComponents as g,
|
|
118
|
-
useInjectSprites as u
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=component.styles-CtZeOnGH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-CtZeOnGH.js","sources":["../src/components/icon/component.tsx","../src/components/icon/component.functions.tsx","../src/components/icon/component.styles.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { IconItemProps, StyledSVG, useLazyInjectSprite } from '.';\n\nexport const Icon = (props: IconItemProps) => {\n const theme = useTheme();\n const iconId = useMemo(\n () => theme.icon.getIconId({ type: props.type, name: props.name }),\n [props.name, props.type, theme.icon.getIconId],\n );\n const spriteUrl = useMemo(() => theme.icon.getSpriteUrl({ type: props.type }), [props.type, theme.icon.getSpriteUrl]);\n const loaded = useLazyInjectSprite(spriteUrl);\n\n if (!loaded) return null;\n\n return (\n <StyledSVG\n width='24'\n height='24'\n viewBox='0 0 24 24'\n xmlns='http://www.w3.org/2000/svg'\n $size={props.size}\n $turn={props.turn}\n $order={props.order}\n $color={props.color || undefined}\n $sx={props.sx}\n className={props.className}\n onClick={props.onClick}\n tabIndex={props.tabIndex}\n >\n <use href={iconId} />\n </StyledSVG>\n );\n};\n","import { useEffect, useState } from 'react';\n\nimport { getIconComponentsProps, Icon } from '.';\n\nexport function getIconComponents(props: getIconComponentsProps) {\n return (props.icons ?? [])\n ?.filter((icon) => !icon.isHidden)\n ?.map((icon, index) => (\n <Icon key={`${icon.type}-${icon.name}-${index}`} size={icon?.size ?? props.size} {...icon} />\n ));\n}\nexport function useInjectSprites(urls: string[]) {\n useEffect(() => {\n const containers: HTMLDivElement[] = [];\n\n urls.forEach(async (url) => {\n try {\n const res = await fetch(url);\n if (!res.ok) {\n console.error(`Failed to load sprite: ${url}`);\n return;\n }\n const text = await res.text();\n\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n\n document.body.prepend(div);\n containers.push(div);\n } catch (err) {\n console.error(`Error loading sprite ${url}`, err);\n }\n });\n\n return () => {\n containers.forEach((div) => div.remove());\n };\n }, [urls]);\n}\n\nconst loadedSprites = new Map<string, Promise<void>>();\nexport function useLazyInjectSprite(url: string) {\n const [loaded, setLoaded] = useState(loadedSprites.has(url));\n\n useEffect(() => {\n if (loaded) return;\n\n let isMounted = true;\n\n if (!loadedSprites.has(url)) {\n const promise = (async () => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to load sprite: ${url}`);\n const text = await res.text();\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n document.body.prepend(div);\n })();\n loadedSprites.set(url, promise);\n }\n\n loadedSprites.get(url)?.then(() => {\n if (isMounted) setLoaded(true);\n });\n\n return () => {\n isMounted = false;\n };\n }, [url, loaded]);\n\n return loaded;\n}\n","import { addColorTransition } from '@local/styles/add';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport styled, { css } from 'styled-components';\n\nimport { StyledIconItemProps } from '.';\n\nexport const StyledSVG = styled.svg<StyledIconItemProps>`\n color: ${(props) => (props.$color ? props.theme.palette[props.$color] : 'inherit')};\n\n ${(props) => css`\n height: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n min-height: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n\n width: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n min-width: ${props.$size !== '100%' ? `${KEY_SIZE_DATA[props.$size].heightIcon}px` : '100%'};\n\n transform: rotate(${props.$turn || 0}deg);\n `}\n ${(props) =>\n props.$order !== undefined &&\n css`\n order: ${props.$order};\n `};\n ${addColorTransition};\n & path {\n ${addColorTransition};\n }\n ${addSX};\n`;\n"],"names":["jsx"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-CwTYpBx_.js","sources":["../src/hooks/use-image-view/use.tsx","../src/components/image-select/component.tsx","../src/components/image-select/component.styles.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n","import { ImageSupportedFormatsForInput } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={ImageSupportedFormatsForInput}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n","import { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme';\n\nimport { ImageSelectWrapperProps } from '.';\n\nconst ImageSelectListGenre = css<ImageSelectWrapperProps>`\n ${(props) => css`\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n &:active {\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n }\n &:focus-visible {\n background: ${props.theme.colors.imageSelect[props.$genre].background.rest};\n color: ${props.theme.colors.imageSelect[props.$genre].color.rest};\n }\n `};\n`;\n/****************************************** Size *************************************************/\nexport const ImageSelectListSize = css<ImageSelectWrapperProps>`\n ${(props) => ImageSelectListSizeConstructor(KEY_SIZE_DATA[props.$size])};\n`;\nexport const ImageSelectListSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n padding: ${props.padding}px;\n border-radius: ${props.radius}px;\n`;\nexport const ImageSelectSize = css<ImageSelectWrapperProps>`\n ${(props) => ImageSelectSizeConstructor(KEY_SIZE_DATA[props.$size])};\n`;\nexport const ImageSelectSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n gap: ${props.padding - 2}px;\n`;\nexport const ImageSelectWrapper = styled.div<ImageSelectWrapperProps>`\n display: flex;\n flex-direction: column;\n width: 100%;\n ${ImageSelectSize};\n ${addError};\n ${addSX};\n`;\nexport const ImageSelectListWrapper = styled(motion.div)<ImageSelectWrapperProps>`\n border: 2px dashed;\n\n display: flex;\n flex-direction: column;\n width: 100%;\n ${ImageSelectListGenre}\n ${ImageSelectListSize}\n`;\n"],"names":["jsxs","jsx","Fragment","theme"],"mappings":"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"}
|