@jenesei-software/jenesei-kit-react 1.3.33 → 1.3.35
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/README.md +0 -10
- package/build/{area-BG04bpxi.cjs → area-0BNtBqG8.cjs} +2 -2
- package/build/{area-BG04bpxi.cjs.map → area-0BNtBqG8.cjs.map} +1 -1
- package/build/{area-D4BoNEmX.js → area-B6xxVQ87.js} +3 -3
- package/build/{area-D4BoNEmX.js.map → area-B6xxVQ87.js.map} +1 -1
- package/build/{area-occQcGnD.js → area-B7-4IFQB.js} +3 -3
- package/build/{area-occQcGnD.js.map → area-B7-4IFQB.js.map} +1 -1
- package/build/{area-pCo19R2g.cjs → area-DxKLtDFZ.cjs} +2 -2
- package/build/{area-pCo19R2g.cjs.map → area-DxKLtDFZ.cjs.map} +1 -1
- package/build/area-outside.cjs.js +1 -1
- package/build/area-outside.es.js +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.d.ts +3 -4
- package/build/area-scroll.es.js +2 -2
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.d.ts +3 -4
- 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.hooks-Bk04M7mk.js.map +1 -1
- package/build/{area.styles-BuceLNra.cjs → area.styles-Cpx4H0gc.cjs} +2 -2
- package/build/{area.styles-BuceLNra.cjs.map → area.styles-Cpx4H0gc.cjs.map} +1 -1
- package/build/{area.styles-BSqCfPE4.js → area.styles-DhCCEhuq.js} +2 -2
- package/build/{area.styles-BSqCfPE4.js.map → area.styles-DhCCEhuq.js.map} +1 -1
- package/build/build-info.txt +3 -3
- package/build/{component-DrTBbu8u.js → component-34--WtCE.js} +8 -8
- package/build/{component-DrTBbu8u.js.map → component-34--WtCE.js.map} +1 -1
- package/build/{component-BybwN9H4.js → component-9fzcSAV7.js} +4 -4
- package/build/{component-BybwN9H4.js.map → component-9fzcSAV7.js.map} +1 -1
- package/build/{component-DNVmU44U.cjs → component-BGAYOt_R.cjs} +2 -2
- package/build/{component-DNVmU44U.cjs.map → component-BGAYOt_R.cjs.map} +1 -1
- package/build/{component-CUiqQLEQ.js → component-BMIqhbpK.js} +3 -3
- package/build/{component-CUiqQLEQ.js.map → component-BMIqhbpK.js.map} +1 -1
- package/build/{component-DbRG0dzX.cjs → component-BPtJjkt0.cjs} +2 -2
- package/build/{component-DbRG0dzX.cjs.map → component-BPtJjkt0.cjs.map} +1 -1
- package/build/{component-CATlnN8o.js → component-BTPma8cy.js} +4 -4
- package/build/{component-CATlnN8o.js.map → component-BTPma8cy.js.map} +1 -1
- package/build/{component-DpX5Qw3i.js → component-BWvIUzNG.js} +3 -3
- package/build/{component-DpX5Qw3i.js.map → component-BWvIUzNG.js.map} +1 -1
- package/build/{component-DAocGHCP.js → component-C6JGm-CG.js} +3 -3
- package/build/{component-DAocGHCP.js.map → component-C6JGm-CG.js.map} +1 -1
- package/build/{component-CGPZf0Mx.js → component-C9Uf5Bc0.js} +3 -3
- package/build/{component-CGPZf0Mx.js.map → component-C9Uf5Bc0.js.map} +1 -1
- package/build/{component-CM4bf3RV.cjs → component-CAWbX2_9.cjs} +2 -2
- package/build/{component-CM4bf3RV.cjs.map → component-CAWbX2_9.cjs.map} +1 -1
- package/build/{component-B8kWtTfs.cjs → component-CEZKgFH6.cjs} +2 -2
- package/build/{component-B8kWtTfs.cjs.map → component-CEZKgFH6.cjs.map} +1 -1
- package/build/{component-DJDXAzlq.js → component-CHp7GYey.js} +4 -4
- package/build/{component-DJDXAzlq.js.map → component-CHp7GYey.js.map} +1 -1
- package/build/{component-C8ueaiSO.cjs → component-COXlMHO8.cjs} +2 -2
- package/build/{component-C8ueaiSO.cjs.map → component-COXlMHO8.cjs.map} +1 -1
- package/build/{component-DIk87lHF.cjs → component-Cao-X0at.cjs} +2 -2
- package/build/{component-DIk87lHF.cjs.map → component-Cao-X0at.cjs.map} +1 -1
- package/build/{component-Cp8VTqb2.js → component-Cfs39n8Q.js} +2 -2
- package/build/{component-Cp8VTqb2.js.map → component-Cfs39n8Q.js.map} +1 -1
- package/build/{component-BzWpboBU.cjs → component-Co53yylj.cjs} +2 -2
- package/build/{component-BzWpboBU.cjs.map → component-Co53yylj.cjs.map} +1 -1
- package/build/{component-5Utdcc2G.cjs → component-CoOTSdM5.cjs} +2 -2
- package/build/{component-5Utdcc2G.cjs.map → component-CoOTSdM5.cjs.map} +1 -1
- package/build/component-Cu2i_-RT.cjs +2 -0
- package/build/{component-Cc8X-Z80.cjs.map → component-Cu2i_-RT.cjs.map} +1 -1
- package/build/{component-DwVvs3yX.cjs → component-CwKwQY3p.cjs} +2 -2
- package/build/{component-DwVvs3yX.cjs.map → component-CwKwQY3p.cjs.map} +1 -1
- package/build/{component-DHM9pbab.js → component-D-HMYzXU.js} +3 -3
- package/build/{component-DHM9pbab.js.map → component-D-HMYzXU.js.map} +1 -1
- package/build/{component-Duwta9MT.js → component-D3jtUpu3.js} +3 -3
- package/build/{component-Duwta9MT.js.map → component-D3jtUpu3.js.map} +1 -1
- package/build/{component-C0354Xwu.js → component-DHwK4xEP.js} +4 -4
- package/build/{component-C0354Xwu.js.map → component-DHwK4xEP.js.map} +1 -1
- package/build/{component-86oA9dYz.cjs → component-DJAq34yj.cjs} +2 -2
- package/build/{component-86oA9dYz.cjs.map → component-DJAq34yj.cjs.map} +1 -1
- package/build/{component-DHXjnBNp.cjs → component-DZbtSeCS.cjs} +2 -2
- package/build/{component-DHXjnBNp.cjs.map → component-DZbtSeCS.cjs.map} +1 -1
- package/build/{component-BD3FCIT8.js → component-DcOrj2ff.js} +4 -4
- package/build/{component-BD3FCIT8.js.map → component-DcOrj2ff.js.map} +1 -1
- package/build/{component-DIA35EVR.js → component-Dcn4OKm7.js} +5 -5
- package/build/{component-DIA35EVR.js.map → component-Dcn4OKm7.js.map} +1 -1
- package/build/{component-CLqcB5mM.cjs → component-DqV_-YxZ.cjs} +2 -2
- package/build/{component-CLqcB5mM.cjs.map → component-DqV_-YxZ.cjs.map} +1 -1
- package/build/{component-CANbSEA3.cjs → component-DsLJSX6q.cjs} +2 -2
- package/build/{component-CANbSEA3.cjs.map → component-DsLJSX6q.cjs.map} +1 -1
- package/build/component-accordion.cjs.js +1 -1
- package/build/component-accordion.d.ts +26 -6
- package/build/component-accordion.es.js +2 -2
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +2 -2
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.d.ts +5 -4
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +2 -2
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +2 -2
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.d.ts +9 -8
- package/build/component-date-picker.es.js +2 -2
- package/build/{component-DEZX8aBs.js → component-gcvwlILJ.js} +3 -3
- package/build/{component-DEZX8aBs.js.map → component-gcvwlILJ.js.map} +1 -1
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.d.ts +37 -4
- package/build/component-icon.es.js +1 -1
- 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.d.ts +8 -6
- package/build/component-image-select.es.js +2 -2
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.d.ts +1 -1
- package/build/component-image-slider.es.js +2 -2
- package/build/component-image.cjs.js +1 -1
- package/build/component-image.es.js +2 -2
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.d.ts +6 -4
- package/build/component-input-otp.es.js +2 -2
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.d.ts +7 -6
- package/build/component-input.es.js +2 -2
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/{component-skAuX4C8.cjs → component-qR0HPUpL.cjs} +2 -2
- package/build/{component-skAuX4C8.cjs.map → component-qR0HPUpL.cjs.map} +1 -1
- package/build/component-range.cjs.js +1 -1
- package/build/component-range.d.ts +6 -4
- package/build/component-range.es.js +5 -5
- package/build/component-ripple.cjs.js +1 -1
- package/build/component-ripple.d.ts +6 -4
- package/build/component-ripple.es.js +2 -2
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.d.ts +115 -32
- package/build/component-select.es.js +17 -18
- package/build/component-separator.cjs.js +1 -1
- package/build/component-separator.d.ts +5 -3
- package/build/component-separator.es.js +1 -1
- package/build/component-stack.cjs.js +1 -1
- package/build/component-stack.d.ts +6 -4
- package/build/component-stack.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.d.ts +7 -5
- package/build/component-textarea.es.js +5 -5
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +4 -4
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.d.ts +71 -9
- package/build/component-tooltip.es.js +9 -9
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.d.ts +5 -3
- package/build/component-typography.es.js +6 -6
- package/build/{component.constants-BgV35uxo.cjs → component.constants-CuYFwf5W.cjs} +2 -2
- package/build/{component.constants-BgV35uxo.cjs.map → component.constants-CuYFwf5W.cjs.map} +1 -1
- package/build/{component.constants-C4Du7oRP.cjs → component.constants-D80V6i-m.cjs} +2 -2
- package/build/{component.constants-C4Du7oRP.cjs.map → component.constants-D80V6i-m.cjs.map} +1 -1
- package/build/{component.constants-Be7PPP03.js → component.constants-Dulpp7av.js} +4 -4
- package/build/{component.constants-Be7PPP03.js.map → component.constants-Dulpp7av.js.map} +1 -1
- package/build/{component.constants-DbWj5l8e.js → component.constants-DybDxNgw.js} +7 -7
- package/build/{component.constants-DbWj5l8e.js.map → component.constants-DybDxNgw.js.map} +1 -1
- package/build/{component.styles-Dpg-__rn.cjs → component.styles-BX2Aiqp_.cjs} +2 -2
- package/build/{component.styles-Dpg-__rn.cjs.map → component.styles-BX2Aiqp_.cjs.map} +1 -1
- package/build/{component.styles-B0L4jbOO.js → component.styles-C0oU5oX_.js} +2 -2
- package/build/{component.styles-B0L4jbOO.js.map → component.styles-C0oU5oX_.js.map} +1 -1
- package/build/{component.types-DXXUPBpA.js → component.types-BbfCiww_.js} +17 -18
- package/build/{component.types-DXXUPBpA.js.map → component.types-BbfCiww_.js.map} +1 -1
- package/build/component.types-KTSAVZtM.cjs +2 -0
- package/build/{component.types-C-2cvT3L.cjs.map → component.types-KTSAVZtM.cjs.map} +1 -1
- package/build/consts.cjs.js +1 -1
- package/build/consts.cjs.js.map +1 -1
- package/build/consts.d.ts +2 -13
- package/build/consts.es.js +1 -29
- package/build/consts.es.js.map +1 -1
- package/build/{context-q6vhN54o.cjs → context-B1id3uai.cjs} +2 -2
- package/build/{context-q6vhN54o.cjs.map → context-B1id3uai.cjs.map} +1 -1
- package/build/{context-Cr9zS5ai.cjs → context-B8kTBKjt.cjs} +2 -2
- package/build/{context-Cr9zS5ai.cjs.map → context-B8kTBKjt.cjs.map} +1 -1
- package/build/{context-B1DS5U6M.js → context-BkovkNHQ.js} +2 -2
- package/build/{context-B1DS5U6M.js.map → context-BkovkNHQ.js.map} +1 -1
- package/build/context-C0_RNFp_.js +195 -0
- package/build/context-C0_RNFp_.js.map +1 -0
- package/build/context-DyTE2I_6.cjs +4 -0
- package/build/context-DyTE2I_6.cjs.map +1 -0
- package/build/{context-CU_dgoUl.js → context-LBih45kv.js} +3 -3
- package/build/{context-CU_dgoUl.js.map → context-LBih45kv.js.map} +1 -1
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.d.ts +13 -12
- package/build/context-app.es.js +17 -17
- package/build/context-cookie.cjs.js +1 -1
- package/build/context-cookie.es.js +2 -2
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.d.ts +5 -3
- package/build/context-dialog.es.js +2 -2
- package/build/context-geolocation.cjs.js +1 -1
- package/build/context-geolocation.es.js +2 -2
- package/build/context-local-storage.cjs.js +1 -1
- package/build/context-local-storage.es.js +2 -2
- package/build/context-permission.cjs.js +1 -1
- package/build/context-permission.es.js +1 -1
- package/build/context-screen-width.cjs.js +1 -1
- package/build/context-screen-width.es.js +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.d.ts +8 -7
- package/build/context-sonner.es.js +18 -18
- package/build/context.constants-BWZS-di6.cjs +32 -0
- package/build/context.constants-BWZS-di6.cjs.map +1 -0
- package/build/{context.constants-YlWOZAd7.js → context.constants-Bh-ajJM2.js} +4385 -457
- package/build/context.constants-Bh-ajJM2.js.map +1 -0
- package/build/context.constants-CDgzMcxb.cjs +1742 -0
- package/build/context.constants-CDgzMcxb.cjs.map +1 -0
- package/build/{context.constants-CZykW9B3.js → context.constants-Nfy-8Qzj.js} +39 -5
- package/build/context.constants-Nfy-8Qzj.js.map +1 -0
- package/build/context.functions-B8FDl7nJ.js.map +1 -1
- package/build/{context.functions-Bk5xMi0w.cjs → context.functions-BqeTmcmr.cjs} +2 -2
- package/build/{context.functions-Bk5xMi0w.cjs.map → context.functions-BqeTmcmr.cjs.map} +1 -1
- package/build/{context.functions-54_96FIi.js → context.functions-D2K4Xk47.js} +4 -5
- package/build/{context.functions-54_96FIi.js.map → context.functions-D2K4Xk47.js.map} +1 -1
- package/build/context.functions-Duwzgcga.cjs +2 -0
- package/build/{context.functions-BoRkDnCa.cjs.map → context.functions-Duwzgcga.cjs.map} +1 -1
- package/build/{context.functions-X5gRRpKi.js → context.functions-ObfwvEVG.js} +2 -2
- package/build/{context.functions-X5gRRpKi.js.map → context.functions-ObfwvEVG.js.map} +1 -1
- package/build/{context.hooks-7ydA7mGj.js → context.hooks-B9dsW2kz.js} +2 -2
- package/build/{context.hooks-7ydA7mGj.js.map → context.hooks-B9dsW2kz.js.map} +1 -1
- package/build/{context.hooks-CnqRriMa.js → context.hooks-BG1tp2nc.js} +2 -2
- package/build/{context.hooks-CnqRriMa.js.map → context.hooks-BG1tp2nc.js.map} +1 -1
- package/build/{context.hooks-B1QdI16d.cjs → context.hooks-BIfYPHOA.cjs} +2 -2
- package/build/{context.hooks-B1QdI16d.cjs.map → context.hooks-BIfYPHOA.cjs.map} +1 -1
- package/build/context.hooks-Biv8ZMzm.cjs +2 -0
- package/build/{context.hooks-DDtUqE34.cjs.map → context.hooks-Biv8ZMzm.cjs.map} +1 -1
- package/build/{context.hooks-D23gzlbO.cjs → context.hooks-BpQriPdQ.cjs} +2 -2
- package/build/{context.hooks-D23gzlbO.cjs.map → context.hooks-BpQriPdQ.cjs.map} +1 -1
- package/build/{context.hooks-uRILnzQk.js → context.hooks-CXJ-eM6d.js} +2 -2
- package/build/{context.hooks-uRILnzQk.js.map → context.hooks-CXJ-eM6d.js.map} +1 -1
- package/build/context.hooks-CYJnoIrt.cjs +2 -0
- package/build/{context.hooks-OTo7Znss.cjs.map → context.hooks-CYJnoIrt.cjs.map} +1 -1
- package/build/{context.hooks-BIsapq-0.cjs → context.hooks-DDD8ffJI.cjs} +2 -2
- package/build/{context.hooks-BIsapq-0.cjs.map → context.hooks-DDD8ffJI.cjs.map} +1 -1
- package/build/{context.hooks-D0OtRPb7.js → context.hooks-DGYU76JL.js} +2 -3
- package/build/{context.hooks-D0OtRPb7.js.map → context.hooks-DGYU76JL.js.map} +1 -1
- package/build/{context.hooks-D13tbrva.cjs → context.hooks-DpwnIiRj.cjs} +2 -2
- package/build/{context.hooks-D13tbrva.cjs.map → context.hooks-DpwnIiRj.cjs.map} +1 -1
- package/build/{context.hooks-Bl4gTFVP.js → context.hooks-Dx80dbrI.js} +2 -2
- package/build/{context.hooks-Bl4gTFVP.js.map → context.hooks-Dx80dbrI.js.map} +1 -1
- package/build/{context.hooks-BmwyZ1p3.js → context.hooks-oclt34zD.js} +2 -2
- package/build/{context.hooks-BmwyZ1p3.js.map → context.hooks-oclt34zD.js.map} +1 -1
- package/build/functions.es.js.map +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +71 -212
- package/build/index.es.js +144 -161
- package/build/index.es.js.map +1 -1
- package/build/jsx-runtime-C6yv_9g1.cjs +11 -0
- package/build/jsx-runtime-C6yv_9g1.cjs.map +1 -0
- package/build/{jsx-runtime-BrDlu8eK.js → jsx-runtime-DZS36FSE.js} +16 -20
- package/build/jsx-runtime-DZS36FSE.js.map +1 -0
- package/build/{motion-DgB7M2Hn.cjs → motion-DrSN18V7.cjs} +2 -2
- package/build/{motion-DgB7M2Hn.cjs.map → motion-DrSN18V7.cjs.map} +1 -1
- package/build/{motion-CIQfrLky.js → motion-K7hUU4gL.js} +2 -2
- package/build/{motion-CIQfrLky.js.map → motion-K7hUU4gL.js.map} +1 -1
- package/build/style-error.cjs.js +1 -1
- package/build/style-error.d.ts +5 -3
- package/build/style-error.es.js +4 -4
- package/build/style-motion.cjs.js +1 -1
- package/build/style-motion.es.js +1 -1
- package/build/style-plT9Ah7t.js.map +1 -1
- package/build/style-sx.d.ts +5 -3
- package/build/style-theme.cjs.js +1 -1
- package/build/style-theme.es.js +13 -13
- package/build/use-Bp8UVw4Y.js.map +1 -1
- package/build/{use-JWHe9gP5.js → use-CGZzVbz2.js} +28 -11
- package/build/use-CGZzVbz2.js.map +1 -0
- package/build/use-DEkooQyB.cjs +16 -0
- package/build/use-DEkooQyB.cjs.map +1 -0
- package/build/use-DT0XgvJT.js.map +1 -1
- package/package.json +3 -29
- package/build/component-Cc8X-Z80.cjs +0 -2
- package/build/component-map.cjs.js +0 -2
- package/build/component-map.cjs.js.map +0 -1
- package/build/component-map.d.ts +0 -96
- package/build/component-map.es.js +0 -19
- package/build/component-map.es.js.map +0 -1
- package/build/component.components-83DbC_hw.js +0 -336
- package/build/component.components-83DbC_hw.js.map +0 -1
- package/build/component.components-BjdoMO5R.cjs +0 -2
- package/build/component.components-BjdoMO5R.cjs.map +0 -1
- package/build/component.types-C-2cvT3L.cjs +0 -2
- package/build/context-BxU5kwVR.js +0 -98
- package/build/context-BxU5kwVR.js.map +0 -1
- package/build/context-_4lcMeym.cjs +0 -2
- package/build/context-_4lcMeym.cjs.map +0 -1
- package/build/context.constants-BMJ3rLa_.cjs +0 -1748
- package/build/context.constants-BMJ3rLa_.cjs.map +0 -1
- package/build/context.constants-CZykW9B3.js.map +0 -1
- package/build/context.constants-YlWOZAd7.js.map +0 -1
- package/build/context.constants-wztrdG5Q.cjs +0 -32
- package/build/context.constants-wztrdG5Q.cjs.map +0 -1
- package/build/context.functions-BoRkDnCa.cjs +0 -2
- package/build/context.hooks-DDtUqE34.cjs +0 -2
- package/build/context.hooks-OTo7Znss.cjs +0 -2
- package/build/jsx-runtime-BcGej2Kr.cjs +0 -11
- package/build/jsx-runtime-BcGej2Kr.cjs.map +0 -1
- package/build/jsx-runtime-BrDlu8eK.js.map +0 -1
- package/build/style.css +0 -1
- package/build/use-DZU4NdpU.cjs +0 -16
- package/build/use-DZU4NdpU.cjs.map +0 -1
- package/build/use-JWHe9gP5.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-BzWpboBU.cjs","sources":["../src/components/image-select/component.tsx","../src/hooks/use-image-view/use.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } 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={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\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":["props","onChange","size","useMemo","KEY_SIZE_DATA","images","setImages","useState","isDraggingOver","setIsDraggingOver","refInput","useRef","theme","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","radius","add","useDialog","propsDialog","borderRadius","padding","background","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","ImageSelectWrapper","$genre","$size","id","$sx","$error","error","ImageSelectListWrapper","onDrop","e","preventDefault","dataTransfer","handleDrop","onDragOver","onDragEnter","onDragLeave","animate","borderColor","colors","imageSelect","border","hover","rest","transition","duration","motion","div","layout","ease","style","display","flexWrap","gap","img","url","userSelect","flexGrow","isContain","top","handleDelete","filter","textAlign","cursor","color","dragAndDrop","ref","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","target","buttonAdd","defaultImages","buttonReset","ErrorMessage","font","weight","family"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-Co53yylj.cjs","sources":["../src/components/image-select/component.tsx","../src/hooks/use-image-view/use.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } 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={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\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":["props","onChange","size","useMemo","KEY_SIZE_DATA","images","setImages","useState","isDraggingOver","setIsDraggingOver","refInput","useRef","theme","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","radius","add","useDialog","propsDialog","borderRadius","padding","background","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","ImageSelectWrapper","$genre","$size","id","$sx","$error","error","ImageSelectListWrapper","onDrop","e","preventDefault","dataTransfer","handleDrop","onDragOver","onDragEnter","onDragLeave","animate","borderColor","colors","imageSelect","border","hover","rest","transition","duration","motion","div","layout","ease","style","display","flexWrap","gap","img","url","userSelect","flexGrow","isContain","top","handleDelete","filter","textAlign","cursor","color","dragAndDrop","ref","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","target","buttonAdd","defaultImages","buttonReset","ErrorMessage","font","weight","family"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),r=require("./style-fRZ6xrVp.cjs"),o=require("framer-motion"),s=require("styled-components"),t=require("./component.styles-BX2Aiqp_.cjs");require("react");const i=s.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
${r.addSX}
|
|
4
4
|
|
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
`};
|
|
26
26
|
${t.addRipple};
|
|
27
27
|
`;exports.Stack=r=>e.jsxRuntimeExports.jsx(i,{ref:r.ref,onClick:r.onClick,onDrop:r.onDrop,onDragOver:r.onDragOver,className:r.className,$sx:r.sx,$isHover:r.isHover,$isRipple:r.isRipple,children:r.children}),exports.StackMotion=r=>{const{style:o,className:s,isHover:t,isRipple:i,onClick:l,onDrop:a,onDragOver:c,ref:p,sx:d}=r;return e.jsxRuntimeExports.jsx(n,{ref:p,style:o,onClick:l,onDrop:a,onDragOver:c,className:s,$sx:d,$isHover:t,$isRipple:i,...r,children:r.children})},exports.StyledStack=i,exports.StyledStackMotion=n;
|
|
28
|
-
//# sourceMappingURL=component-
|
|
28
|
+
//# sourceMappingURL=component-CoOTSdM5.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-CoOTSdM5.cjs","sources":["../src/components/stack/component.styles.tsx","../src/components/stack/component.tsx"],"sourcesContent":["import { addSX } from '@local/styles/sx';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { addRipple } from '../ripple';\nimport { StyledStackProps } from '.';\n\nexport const StyledStack = styled.div<StyledStackProps>`\n display: flex;\n ${addSX}\n\n ${(props) =>\n props.$isHover &&\n css`\n transition:\n background-color ${(props) => props.theme.transition.default},\n outline 0s;\n &:hover {\n background-color: ${(props) => props.theme.palette.black05};\n }\n `};\n ${addRipple};\n`;\n\nexport const StyledStackMotion = styled(motion.div)<StyledStackProps>`\n display: flex;\n ${addSX}\n\n ${(props) =>\n props.$isHover &&\n css`\n transition:\n background-color ${(props) => props.theme.transition.default},\n outline 0s;\n &:hover {\n background-color: ${(props) => props.theme.palette.black05};\n }\n `};\n ${addRipple};\n`;\n","import { FC } from 'react';\n\nimport { StackMotionProps, StackProps, StyledStack, StyledStackMotion } from '.';\n\nexport const Stack: FC<StackProps> = (props) => {\n return (\n <StyledStack\n ref={props.ref}\n onClick={props.onClick}\n onDrop={props.onDrop}\n onDragOver={props.onDragOver}\n className={props.className}\n $sx={props.sx}\n $isHover={props.isHover}\n $isRipple={props.isRipple}\n >\n {props.children}\n </StyledStack>\n );\n};\n\nexport const StackMotion: FC<StackMotionProps> = (props) => {\n const { style, className, isHover, isRipple, onClick, onDrop, onDragOver, ref, sx } = props;\n return (\n <StyledStackMotion\n ref={ref}\n style={style}\n onClick={onClick}\n onDrop={onDrop}\n onDragOver={onDragOver}\n className={className}\n $sx={sx}\n $isHover={isHover}\n $isRipple={isRipple}\n {...props}\n >\n {props.children}\n </StyledStackMotion>\n );\n};\n"],"names":["StyledStack","styled","div","addSX","props","$isHover","css","theme","transition","default","palette","black05","addRipple","StyledStackMotion","motion","jsx","ref","onClick","onDrop","onDragOver","className","$sx","sx","isHover","$isRipple","isRipple","children","style"],"mappings":"qNAQO,MAAMA,EAAcC,EAAOC,GAAA;;IAE9BC,EAAAA;;IAECC,GACDA,EAAMC,UACNC,EAAAA,GAAAA;;2BAEwBF,GAAUA,EAAMG,MAAMC,WAAWC;;;4BAGhCL,GAAUA,EAAMG,MAAMG,QAAQC;;;IAGvDC;EAGSC,EAAoBZ,EAAOa,EAAAA,OAAOZ,IAAG;;IAE9CC,EAAAA;;IAECC,GACDA,EAAMC,UACNC,EAAAA,GAAAA;;2BAEwBF,GAAUA,EAAMG,MAAMC,WAAWC;;;4BAGhCL,GAAUA,EAAMG,MAAMG,QAAQC;;;IAGvDC;gBCnCkCR,KAElCW,kBAAAA,IAACf,EAAA,CACCgB,IAAKZ,EAAMY,IACXC,QAASb,EAAMa,QACfC,OAAQd,EAAMc,OACdC,WAAYf,EAAMe,WAClBC,UAAWhB,EAAMgB,UACjBC,IAAKjB,EAAMkB,GACXjB,SAAUD,EAAMmB,QAChBC,UAAWpB,EAAMqB,SAEhBC,SAAAtB,EAAMsB,+BAKqCtB,IAChD,MAAQuB,MAAAA,EAAAA,UAAOP,EAAAG,QAAWA,EAAAE,SAASA,EAAAR,QAAUA,EAAAC,OAASA,EAAAC,WAAQA,EAAAH,IAAYA,EAAAM,GAAKA,GAAOlB,EACtF,SACEW,kBAAAA,IAACF,EAAA,CACCG,MACAW,MAAAA,EACAV,UACAC,SACAC,aACAC,YACAC,IAAKC,EACLjB,SAAUkB,EACVC,UAAWC,KACPrB,EAEHsB,SAAAtB,EAAMsB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("./jsx-runtime-C6yv_9g1.cjs"),e=require("./component-CoOTSdM5.cjs");exports.Smooth=o=>t.jsxRuntimeExports.jsx(e.StackMotion,{transition:{layout:{duration:.3,ease:"easeInOut",type:"spring"}},layout:!0,...o,children:o.children});
|
|
2
|
+
//# sourceMappingURL=component-Cu2i_-RT.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-Cu2i_-RT.cjs","sources":["../src/areas/smooth/component.tsx"],"sourcesContent":["import { FC } from 'react';\n\nimport { StackMotion, StackProps } from '@local/components/stack';\n\nexport const Smooth: FC<StackProps> = (props) => {\n return (\n <StackMotion\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n {...props}\n >\n {props.children}\n </StackMotion>\n );\n};\n"],"names":["props","jsx","StackMotion","transition","layout","duration","ease","type","children"],"mappings":"gHAIuCA,KAEnCC,kBAAAA,IAACC,EAAAA,YAAA,CACCC,WAAY,CACVC,OAAQ,CACNC,SAAU,GACVC,KAAM,YACNC,KAAM,WAGVH,QAAM,KACFJ,EAEHQ,SAAAR,EAAMQ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),t=require("./context.constants-CDgzMcxb.cjs"),n=require("react"),r=require("./component-BGAYOt_R.cjs");exports.InputOTP=l=>{var o;const[s,u]=n.useState(new Array(l.length).fill("")),c=n.useRef([]),i=n.useRef(null),a=n.useCallback((e,t)=>{t.preventDefault();const n=t.clipboardData.getData("Text").replace(/\D/g,"").split("");n.length&&u(t=>{var r,o;const s=[...t];let u=e;for(let e=0;e<n.length&&u<s.length;e++)s[u]=n[e],u++;const i=s.join("");return null==(r=l.onChange)||r.call(l,i),s.every(e=>""!==e)&&(null==(o=l.onComplete)||o.call(l,i)),setTimeout(()=>{var e,t;const n=s.findIndex(e=>""===e);-1!==n?null==(e=c.current[n])||e.focus():u<s.length&&(null==(t=c.current[u])||t.focus())},0),s})},[l]),g=n.useCallback((e,t)=>{/^\d*$/.test(t)&&u(n=>{var r;const o=[...n];return o[e]=t.slice(-1),l.onChange&&l.onChange(o.join("")),o.every(e=>""!==e)&&(null==(r=l.onComplete)||r.call(l,o.join(""))),t&&e<n.length-1&&setTimeout(()=>{var t;null==(t=c.current[e+1])||t.focus()},0),o})},[l]),m=n.useCallback(e=>{setTimeout(()=>e.target.setSelectionRange(0,e.target.value.length),0)},[]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(t.InputOTPWrapper,{$error:l.error,$size:l.size,id:l.id,ref:i,onBlur:e=>{setTimeout(()=>{var t;i.current&&!i.current.contains(document.activeElement)&&(null==(t=l.onBlur)||t.call(l,e))},0)},onFocus:e=>{setTimeout(()=>{var t,n;(null==(t=i.current)?void 0:t.contains(document.activeElement))&&(null==(n=l.onFocus)||n.call(l,e))},0)},$sx:l.sx,children:s.map((t,n)=>e.jsxRuntimeExports.jsx(r.Input,{isWidthAsHeight:!0,tabIndex:n+1,ref:e=>{c.current[n]=e},variety:"standard",type:"text",inputMode:"numeric",maxLength:1,value:t,onFocus:m,onPaste:e=>a(n,e),onChange:e=>g(n,e),onKeyDown:e=>((e,t)=>{const n=c.current[e];if(n){if("ArrowRight"===t.key){const t=e<s.length-1?e+1:0,n=c.current[t];n&&(n.focus(),setTimeout(()=>n.setSelectionRange(0,n.value.length),0))}if("ArrowLeft"===t.key){const t=e>0?e-1:s.length-1,n=c.current[t];n&&(n.focus(),setTimeout(()=>n.setSelectionRange(0,n.value.length),0))}"Backspace"===t.key&&(n.value?setTimeout(()=>n.setSelectionRange(0,n.value.length),0):e>0&&setTimeout(()=>{const t=c.current[e-1];t&&(t.focus(),t.setSelectionRange(0,t.value.length))},0))}})(n,e),genre:l.genre,size:l.size,font:l.font},n))}),(null==l?void 0:l.error)?e.jsxRuntimeExports.jsx(t.ErrorMessage,{...l.error,size:(null==l?void 0:l.error.size)??l.size,font:{size:12,weight:400,family:null==(o=l.font)?void 0:o.family}}):null]})};
|
|
2
|
+
//# sourceMappingURL=component-CwKwQY3p.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-CwKwQY3p.cjs","sources":["../src/components/input-otp/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { ClipboardEvent, FocusEvent, KeyboardEvent, useCallback, useRef, useState } from 'react';\n\nimport { Input } from '../input';\nimport { InputOTPProps, InputOTPWrapper } from '.';\n\nexport const InputOTP = (props: InputOTPProps) => {\n const [otp, setOtp] = useState<string[]>(new Array(props.length).fill(''));\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const handlePaste = useCallback(\n (index: number, e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const pasteData = e.clipboardData.getData('Text');\n const digits = pasteData.replace(/\\D/g, '').split('');\n\n if (!digits.length) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n let currentIndex = index;\n\n for (let i = 0; i < digits.length && currentIndex < newOtp.length; i++) {\n newOtp[currentIndex] = digits[i];\n currentIndex++;\n }\n\n const joined = newOtp.join('');\n\n props.onChange?.(joined);\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(joined);\n }\n\n setTimeout(() => {\n const firstEmpty = newOtp.findIndex((char) => char === '');\n if (firstEmpty !== -1) {\n inputsRef.current[firstEmpty]?.focus();\n } else if (currentIndex < newOtp.length) {\n inputsRef.current[currentIndex]?.focus();\n }\n }, 0);\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleChange = useCallback(\n (index: number, value: string) => {\n if (!/^\\d*$/.test(value)) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n newOtp[index] = value.slice(-1);\n\n if (props.onChange) {\n props.onChange(newOtp.join(''));\n }\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(newOtp.join(''));\n }\n\n if (value && index < prevOtp.length - 1) {\n setTimeout(() => {\n inputsRef.current[index + 1]?.focus();\n }, 0);\n }\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n const input = inputsRef.current[index];\n\n if (!input) return;\n\n if (e.key === 'ArrowRight') {\n const nextIndex = index < otp.length - 1 ? index + 1 : 0;\n const nextInput = inputsRef.current[nextIndex];\n\n if (nextInput) {\n nextInput.focus();\n setTimeout(() => nextInput.setSelectionRange(0, nextInput.value.length), 0);\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const prevIndex = index > 0 ? index - 1 : otp.length - 1;\n const prevInput = inputsRef.current[prevIndex];\n\n if (prevInput) {\n prevInput.focus();\n setTimeout(() => prevInput.setSelectionRange(0, prevInput.value.length), 0);\n }\n }\n\n if (e.key === 'Backspace') {\n if (input.value) {\n setTimeout(() => input.setSelectionRange(0, input.value.length), 0);\n } else if (index > 0) {\n setTimeout(() => {\n const prevInput = inputsRef.current[index - 1];\n if (prevInput) {\n prevInput.focus();\n prevInput.setSelectionRange(0, prevInput.value.length);\n }\n }, 0);\n }\n }\n };\n\n const handleFocusInput = useCallback((e: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => e.target.setSelectionRange(0, e.target.value.length), 0);\n }, []);\n return (\n <>\n <InputOTPWrapper\n $error={props.error}\n $size={props.size}\n id={props.id}\n ref={wrapperRef}\n onBlur={(e) => {\n setTimeout(() => {\n if (wrapperRef.current && !wrapperRef.current.contains(document.activeElement)) {\n props.onBlur?.(e);\n }\n }, 0);\n }}\n onFocus={(e) => {\n setTimeout(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n props.onFocus?.(e);\n }\n }, 0);\n }}\n $sx={props.sx}\n >\n {otp.map((digit, index) => (\n <Input\n isWidthAsHeight\n key={index}\n tabIndex={index + 1}\n ref={(el) => {\n inputsRef.current[index] = el;\n }}\n variety='standard'\n type='text'\n inputMode='numeric'\n maxLength={1}\n value={digit}\n onFocus={handleFocusInput}\n onPaste={(e) => handlePaste(index, e)}\n onChange={(value) => handleChange(index, value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n genre={props.genre}\n size={props.size}\n font={props.font}\n />\n ))}\n </InputOTPWrapper>\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: props.font?.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["props","otp","setOtp","useState","Array","length","fill","inputsRef","useRef","wrapperRef","handlePaste","useCallback","index","e","preventDefault","digits","clipboardData","getData","replace","split","prevOtp","newOtp","currentIndex","i","joined","join","_a","onChange","call","every","char","_b","onComplete","setTimeout","firstEmpty","findIndex","current","focus","handleChange","value","test","slice","handleFocusInput","target","setSelectionRange","jsxs","Fragment","children","jsx","InputOTPWrapper","$error","error","$size","size","id","ref","onBlur","contains","document","activeElement","onFocus","$sx","sx","map","digit","Input","isWidthAsHeight","tabIndex","el","variety","type","inputMode","maxLength","onPaste","onKeyDown","input","key","nextIndex","nextInput","prevIndex","prevInput","handleKeyDown","genre","font","ErrorMessage","weight","family"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-
|
|
1
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
2
|
import { useMemo, useState, useCallback, useLayoutEffect } from "react";
|
|
3
|
-
import { D as DEFAULT_RIPPLE_DURATION, R as RippleContainer, a as DEFAULT_RIPPLE_ID, b as RippleSpan } from "./component.styles-
|
|
3
|
+
import { D as DEFAULT_RIPPLE_DURATION, R as RippleContainer, a as DEFAULT_RIPPLE_ID, b as RippleSpan } from "./component.styles-C0oU5oX_.js";
|
|
4
4
|
const useDebouncedRippleCleanUp = (rippleCount, duration, cleanUpFunction) => {
|
|
5
5
|
useLayoutEffect(() => {
|
|
6
6
|
let bounce = null;
|
|
@@ -62,4 +62,4 @@ const Ripple = (props) => {
|
|
|
62
62
|
export {
|
|
63
63
|
Ripple as R
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=component-
|
|
65
|
+
//# sourceMappingURL=component-D-HMYzXU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-D-HMYzXU.js","sources":["../src/components/ripple/component.tsx"],"sourcesContent":["import React, { FC, useCallback, useLayoutEffect, useMemo, useState } from 'react';\n\nimport {\n DEFAULT_RIPPLE_DURATION,\n DEFAULT_RIPPLE_ID,\n RippleArrayElement,\n RippleContainer,\n RippleProps,\n RippleSpan,\n} from '.';\n\nconst useDebouncedRippleCleanUp = (rippleCount: number, duration: number, cleanUpFunction: () => void) => {\n useLayoutEffect(() => {\n // eslint-disable-next-line no-undef\n let bounce: NodeJS.Timeout | null = null;\n if (rippleCount > 0) {\n if (bounce) {\n clearTimeout(bounce);\n }\n\n bounce = setTimeout(() => {\n cleanUpFunction();\n if (bounce) {\n clearTimeout(bounce);\n }\n }, duration * 4);\n }\n\n return () => {\n if (bounce) {\n clearTimeout(bounce);\n }\n };\n }, [rippleCount, duration, cleanUpFunction]);\n};\n\nexport const Ripple: FC<RippleProps> = (props) => {\n const color = useMemo(() => props.color ?? 'unset', [props.color]);\n const duration = useMemo(() => props.duration ?? DEFAULT_RIPPLE_DURATION, [props.duration]);\n\n const [rippleArray, setRippleArray] = useState<RippleArrayElement[]>([]);\n\n useDebouncedRippleCleanUp(rippleArray.length, duration ?? DEFAULT_RIPPLE_DURATION, () => {\n setRippleArray([]);\n });\n\n const onMouseUp = useCallback((event: React.MouseEvent<HTMLDivElement>) => {\n if (!event.isTrusted) return;\n const rippleContainer = event.currentTarget.getBoundingClientRect();\n const size = rippleContainer.width > rippleContainer.height ? rippleContainer.width : rippleContainer.height;\n const x = event.pageX - rippleContainer.x - size / 2;\n const y = event.pageY - rippleContainer.y - size / 2;\n const newRipple = { x, y, size };\n setRippleArray([]);\n setTimeout(() => {\n setRippleArray([newRipple]);\n }, 0);\n }, []);\n\n if (props.isDisabled || props.isHidden) return null;\n return (\n <RippleContainer id={DEFAULT_RIPPLE_ID} $duration={duration} $color={color} onMouseUp={onMouseUp}>\n {rippleArray.length > 0 &&\n rippleArray.map((ripple, index) => {\n return (\n <RippleSpan\n $duration={duration}\n $color={color}\n key={`span-${index}`}\n style={{\n top: ripple.y,\n left: ripple.x,\n width: ripple.size,\n height: ripple.size,\n }}\n />\n );\n })}\n </RippleContainer>\n );\n};\n"],"names":["jsx"],"mappings":";;;AAWA,MAAM,4BAA4B,CAAC,aAAqB,UAAkB,oBAAgC;AACxG,kBAAgB,MAAM;AAEpB,QAAI,SAAgC;AACpC,QAAI,cAAc,GAAG;AACnB,UAAI,QAAQ;AACV,qBAAa,MAAM;AAAA,MACrB;AAEA,eAAS,WAAW,MAAM;AACxB,wBAAA;AACA,YAAI,QAAQ;AACV,uBAAa,MAAM;AAAA,QACrB;AAAA,MACF,GAAG,WAAW,CAAC;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,UAAI,QAAQ;AACV,qBAAa,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAa,UAAU,eAAe,CAAC;AAC7C;AAEO,MAAM,SAA0B,CAAC,UAAU;AAChD,QAAM,QAAQ,QAAQ,MAAM,MAAM,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC;AACjE,QAAM,WAAW,QAAQ,MAAM,MAAM,YAAY,yBAAyB,CAAC,MAAM,QAAQ,CAAC;AAE1F,QAAM,CAAC,aAAa,cAAc,IAAI,SAA+B,CAAA,CAAE;AAEvE,4BAA0B,YAAY,QAAQ,YAAY,yBAAyB,MAAM;AACvF,mBAAe,CAAA,CAAE;AAAA,EACnB,CAAC;AAED,QAAM,YAAY,YAAY,CAAC,UAA4C;AACzE,QAAI,CAAC,MAAM,UAAW;AACtB,UAAM,kBAAkB,MAAM,cAAc,sBAAA;AAC5C,UAAM,OAAO,gBAAgB,QAAQ,gBAAgB,SAAS,gBAAgB,QAAQ,gBAAgB;AACtG,UAAM,IAAI,MAAM,QAAQ,gBAAgB,IAAI,OAAO;AACnD,UAAM,IAAI,MAAM,QAAQ,gBAAgB,IAAI,OAAO;AACnD,UAAM,YAAY,EAAE,GAAG,GAAG,KAAA;AAC1B,mBAAe,CAAA,CAAE;AACjB,eAAW,MAAM;AACf,qBAAe,CAAC,SAAS,CAAC;AAAA,IAC5B,GAAG,CAAC;AAAA,EACN,GAAG,CAAA,CAAE;AAEL,MAAI,MAAM,cAAc,MAAM,SAAU,QAAO;AAC/C,+CACG,iBAAA,EAAgB,IAAI,mBAAmB,WAAW,UAAU,QAAQ,OAAO,WACzE,UAAA,YAAY,SAAS,KACpB,YAAY,IAAI,CAAC,QAAQ,UAAU;AACjC,WACEA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,QAAQ;AAAA,QAER,OAAO;AAAA,UACL,KAAK,OAAO;AAAA,UACZ,MAAM,OAAO;AAAA,UACb,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO;AAAA,QAAA;AAAA,MACjB;AAAA,MANK,QAAQ,KAAK;AAAA,IAAA;AAAA,EASxB,CAAC,EAAA,CACL;AAEJ;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-
|
|
2
|
-
import {
|
|
1
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
|
+
import { bp as KEY_SIZE_DATA_TOGGLE, aA as ToggleWrapper, aB as ToggleCenter } from "./context.constants-Bh-ajJM2.js";
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
const Toggle = (props) => {
|
|
5
5
|
const toggleVariants = useMemo(
|
|
@@ -61,4 +61,4 @@ const Toggle = (props) => {
|
|
|
61
61
|
export {
|
|
62
62
|
Toggle as T
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=component-
|
|
64
|
+
//# sourceMappingURL=component-D3jtUpu3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-D3jtUpu3.js","sources":["../src/components/toggle/component.tsx"],"sourcesContent":["import { KEY_SIZE_DATA_TOGGLE } from '@local/theme';\n\nimport { useMemo } from 'react';\n\nimport { ToggleCenter, ToggleProps, ToggleWrapper } from '.';\n\nexport const Toggle = (props: ToggleProps) => {\n const toggleVariants = useMemo(\n () => ({\n tap: {\n width: KEY_SIZE_DATA_TOGGLE[props.size].thumb + 4,\n translateX: props.value\n ? KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3 -\n 4\n : 0,\n transition: {\n duration: 0.05,\n },\n },\n checked: {\n translateX:\n KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n unchecked: {\n translateX: 0,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n }),\n [props.size, props.value],\n );\n\n return (\n <ToggleWrapper\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n tabIndex={0}\n onClick={() => props.onChange?.(!props.value)}\n whileTap='tap'\n animate={props.value ? 'checked' : 'unchecked'}\n onKeyDown={(e) => {\n if (e.key === 'Enter') props.onChange?.(!props.value);\n }}\n >\n <ToggleCenter\n variants={toggleVariants}\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n />\n </ToggleWrapper>\n );\n};\n"],"names":["jsx"],"mappings":";;;AAMO,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,iBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,OAAO,qBAAqB,MAAM,IAAI,EAAE,QAAQ;AAAA,QAChD,YAAY,MAAM,QACd,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU,IAC3C,IACA;AAAA,QACJ,YAAY;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,MACZ;AAAA,MAEF,SAAS;AAAA,QACP,YACE,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU;AAAA,QAC7C,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,MAElD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,IAClD;AAAA,IAEF,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,EAAA;AAG1B,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB,oBAAoB,MAAM,cAAc,MAAM;AAAA,MAC9C,qBAAqB,MAAM;AAAA,MAC3B,aAAa,MAAM;AAAA,MACnB,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,UAAU;AAAA,MACV,SAAS,MAAA;;AAAM,2BAAM,aAAN,+BAAiB,CAAC,MAAM;AAAA;AAAA,MACvC,UAAS;AAAA,MACT,SAAS,MAAM,QAAQ,YAAY;AAAA,MACnC,WAAW,CAAC,MAAM;;AAChB,YAAI,EAAE,QAAQ,qBAAe,4CAAW,CAAC,MAAM;AAAA,MACjD;AAAA,MAEA,UAAAA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQ,MAAM;AAAA,UACd,aAAa,MAAM;AAAA,UACnB,QAAQ,MAAM;AAAA,UACd,OAAO,MAAM;AAAA,UACb,QAAQ,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGN;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-
|
|
1
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
2
|
import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from "./consts.es.js";
|
|
3
|
-
import { u as useImageCrop } from "./use-
|
|
3
|
+
import { u as useImageCrop } from "./use-CGZzVbz2.js";
|
|
4
4
|
import { useRef, useCallback } from "react";
|
|
5
|
-
import { B as Button } from "./context.constants-
|
|
5
|
+
import { B as Button } from "./context.constants-Bh-ajJM2.js";
|
|
6
6
|
const ImageButton = (props) => {
|
|
7
7
|
const refInput = useRef(null);
|
|
8
8
|
const handleOpenFileDialog = useCallback(() => {
|
|
@@ -47,4 +47,4 @@ const ImageButton = (props) => {
|
|
|
47
47
|
export {
|
|
48
48
|
ImageButton as I
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=component-
|
|
50
|
+
//# sourceMappingURL=component-DHwK4xEP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DHwK4xEP.js","sources":["../src/components/image-button/component.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\n\nimport { FC, useCallback, useRef } from 'react';\n\nimport { Button } from '../button';\nimport { ImageButtonProps } from '.';\n\nexport const ImageButton: FC<ImageButtonProps> = (props) => {\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const handleOpenFileDialog = useCallback(() => {\n refInput.current?.click();\n }, []);\n\n const { handleAddFiles } = useImageCrop({\n onSave: props.onSave,\n locale: props.locale,\n dialog: props.dialog,\n imageSettings: props.imageSettings,\n refInput: refInput,\n });\n\n return (\n <>\n <Button\n {...props.button}\n onClick={(e) => {\n props.button.onClick?.(e);\n handleOpenFileDialog();\n }}\n >\n {props.button.children || props.locale.buttonAdd}\n </Button>\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFiles(e.target.files);\n }}\n />\n </>\n );\n};\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;AAQO,MAAM,cAAoC,CAAC,UAAU;AAC1D,QAAM,WAAW,OAAgC,IAAI;AAErD,QAAM,uBAAuB,YAAY,MAAM;;AAC7C,mBAAS,YAAT,mBAAkB;AAAA,EACpB,GAAG,CAAA,CAAE;AAEL,QAAM,EAAE,eAAA,IAAmB,aAAa;AAAA,IACtC,QAAQ,MAAM;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,eAAe,MAAM;AAAA,IACrB;AAAA,EAAA,CACD;AAED,SACEA,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,IAAAC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG,MAAM;AAAA,QACV,SAAS,CAAC,MAAM;;AACd,4BAAM,QAAO,YAAb,4BAAuB;AACvB,+BAAA;AAAA,QACF;AAAA,QAEC,UAAA,MAAM,OAAO,YAAY,MAAM,OAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAEzCA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAK;AAAA,QACL,QAAQ;AAAA,QACR,UAAQ;AAAA,QACR,OAAO,EAAE,SAAS,OAAA;AAAA,QAClB,UAAU,CAAC,MAAM;AACf,cAAI,EAAE,OAAO,MAAO,gBAAe,EAAE,OAAO,KAAK;AAAA,QACnD;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const r=require("./jsx-runtime-C6yv_9g1.cjs"),e=require("./component.styles-CD6ZzRrk.cjs");exports.Separator=s=>{const t=s.color||"grayMonica";return r.jsxRuntimeExports.jsx(e.SeparatorWrapper,{role:"separator","aria-orientation":s.type,$radius:s.radius,$color:t,$sx:s.sx,$type:s.type,$thickness:s.thickness})};
|
|
2
|
+
//# sourceMappingURL=component-DJAq34yj.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DJAq34yj.cjs","sources":["../src/components/separator/component.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"],"names":["props","color","jsx","SeparatorWrapper","role","type","$radius","radius","$color","$sx","sx","$type","$thickness","thickness"],"mappings":"0HAM8CA,IAC5C,MAAMC,EAA2BD,EAAMC,OAAS,aAChD,SACEC,kBAAAA,IAACC,EAAAA,iBAAA,CACCC,KAAK,YACL,mBAAkBJ,EAAMK,KACxBC,QAASN,EAAMO,OACfC,OAAQP,EACRQ,IAAKT,EAAMU,GACXC,MAAOX,EAAMK,KACbO,WAAYZ,EAAMa"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const o=require("./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const o=require("./jsx-runtime-C6yv_9g1.cjs"),c=require("./component-CoOTSdM5.cjs"),n=require("react"),r=require("./context.constants-CDgzMcxb.cjs");exports.Accordion=e=>{const i=n.useCallback(()=>{e.onClickSummary&&e.onClickSummary()},[e]),s=n.useCallback(o=>{e.onClickIcon&&(o.stopPropagation(),e.onClickIcon())},[e]);return o.jsxRuntimeExports.jsx(c.Stack,{...e.wrapperProps,children:o.jsxRuntimeExports.jsxs(r.AccordionWrapper,{children:[o.jsxRuntimeExports.jsxs(r.AccordionSummary,{onClick:i,children:[o.jsxRuntimeExports.jsx(r.AccordionSummaryContent,{$isAccordionIcon:e.isAccordionIcon,children:e.accordionSummary}),e.isAccordionIcon&&o.jsxRuntimeExports.jsx(r.AccordionStyledIcon,{$expanded:e.expanded,onClick:s,name:"Arrow1",color:"black100",type:"id",size:"large"})]}),o.jsxRuntimeExports.jsx(r.AccordionDetails,{$expanded:e.expanded,children:e.accordionDetails})]})})};
|
|
2
|
+
//# sourceMappingURL=component-DZbtSeCS.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DZbtSeCS.cjs","sources":["../src/components/accordion/component.tsx"],"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"],"names":["props","onClickSummary","useCallback","onClickIcon","event","stopPropagation","Stack","wrapperProps","children","AccordionWrapper","jsxs","AccordionSummary","onClick","jsx","AccordionSummaryContent","$isAccordionIcon","isAccordionIcon","accordionSummary","AccordionStyledIcon","$expanded","expanded","name","color","type","size","AccordionDetails","accordionDetails"],"mappings":"oLAa8CA,IAC5C,MAAMC,EAAiBC,EAAAA,YAAY,KAC7BF,EAAMC,gBAAgBD,EAAMC,kBAC/B,CAACD,IAEEG,EAAcD,EAAAA,YACjBE,IACKJ,EAAMG,cACRC,EAAMC,kBAENL,EAAMG,gBAGV,CAACH,IAGH,+BACGM,QAAA,IAAUN,EAAMO,aACfC,kCAACC,mBAAA,CACCD,SAAA,CAAAE,EAAAA,kBAAAA,KAACC,EAAAA,iBAAA,CAAiBC,QAASX,EACzBO,SAAA,CAAAK,wBAACC,EAAAA,wBAAA,CAAwBC,iBAAkBf,EAAMgB,gBAC9CR,WAAMS,mBAERjB,EAAMgB,iBACLH,EAAAA,kBAAAA,IAACK,EAAAA,oBAAA,CACCC,UAAWnB,EAAMoB,SACjBR,QAAST,EACTkB,KAAK,SACLC,MAAM,WACNC,KAAK,KACLC,KAAK,qCAIVC,EAAAA,iBAAA,CAAiBN,UAAWnB,EAAMoB,SAAWZ,WAAMkB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-
|
|
2
|
-
import { ac as InputOTPWrapper,
|
|
1
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
|
+
import { ac as InputOTPWrapper, bk as ErrorMessage } from "./context.constants-Bh-ajJM2.js";
|
|
3
3
|
import { useState, useRef, useCallback } from "react";
|
|
4
|
-
import { I as Input } from "./component-
|
|
4
|
+
import { I as Input } from "./component-C6JGm-CG.js";
|
|
5
5
|
const InputOTP = (props) => {
|
|
6
6
|
var _a;
|
|
7
7
|
const [otp, setOtp] = useState(new Array(props.length).fill(""));
|
|
@@ -167,4 +167,4 @@ const InputOTP = (props) => {
|
|
|
167
167
|
export {
|
|
168
168
|
InputOTP as I
|
|
169
169
|
};
|
|
170
|
-
//# sourceMappingURL=component-
|
|
170
|
+
//# sourceMappingURL=component-DcOrj2ff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DcOrj2ff.js","sources":["../src/components/input-otp/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { ClipboardEvent, FocusEvent, KeyboardEvent, useCallback, useRef, useState } from 'react';\n\nimport { Input } from '../input';\nimport { InputOTPProps, InputOTPWrapper } from '.';\n\nexport const InputOTP = (props: InputOTPProps) => {\n const [otp, setOtp] = useState<string[]>(new Array(props.length).fill(''));\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const handlePaste = useCallback(\n (index: number, e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const pasteData = e.clipboardData.getData('Text');\n const digits = pasteData.replace(/\\D/g, '').split('');\n\n if (!digits.length) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n let currentIndex = index;\n\n for (let i = 0; i < digits.length && currentIndex < newOtp.length; i++) {\n newOtp[currentIndex] = digits[i];\n currentIndex++;\n }\n\n const joined = newOtp.join('');\n\n props.onChange?.(joined);\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(joined);\n }\n\n setTimeout(() => {\n const firstEmpty = newOtp.findIndex((char) => char === '');\n if (firstEmpty !== -1) {\n inputsRef.current[firstEmpty]?.focus();\n } else if (currentIndex < newOtp.length) {\n inputsRef.current[currentIndex]?.focus();\n }\n }, 0);\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleChange = useCallback(\n (index: number, value: string) => {\n if (!/^\\d*$/.test(value)) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n newOtp[index] = value.slice(-1);\n\n if (props.onChange) {\n props.onChange(newOtp.join(''));\n }\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(newOtp.join(''));\n }\n\n if (value && index < prevOtp.length - 1) {\n setTimeout(() => {\n inputsRef.current[index + 1]?.focus();\n }, 0);\n }\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n const input = inputsRef.current[index];\n\n if (!input) return;\n\n if (e.key === 'ArrowRight') {\n const nextIndex = index < otp.length - 1 ? index + 1 : 0;\n const nextInput = inputsRef.current[nextIndex];\n\n if (nextInput) {\n nextInput.focus();\n setTimeout(() => nextInput.setSelectionRange(0, nextInput.value.length), 0);\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const prevIndex = index > 0 ? index - 1 : otp.length - 1;\n const prevInput = inputsRef.current[prevIndex];\n\n if (prevInput) {\n prevInput.focus();\n setTimeout(() => prevInput.setSelectionRange(0, prevInput.value.length), 0);\n }\n }\n\n if (e.key === 'Backspace') {\n if (input.value) {\n setTimeout(() => input.setSelectionRange(0, input.value.length), 0);\n } else if (index > 0) {\n setTimeout(() => {\n const prevInput = inputsRef.current[index - 1];\n if (prevInput) {\n prevInput.focus();\n prevInput.setSelectionRange(0, prevInput.value.length);\n }\n }, 0);\n }\n }\n };\n\n const handleFocusInput = useCallback((e: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => e.target.setSelectionRange(0, e.target.value.length), 0);\n }, []);\n return (\n <>\n <InputOTPWrapper\n $error={props.error}\n $size={props.size}\n id={props.id}\n ref={wrapperRef}\n onBlur={(e) => {\n setTimeout(() => {\n if (wrapperRef.current && !wrapperRef.current.contains(document.activeElement)) {\n props.onBlur?.(e);\n }\n }, 0);\n }}\n onFocus={(e) => {\n setTimeout(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n props.onFocus?.(e);\n }\n }, 0);\n }}\n $sx={props.sx}\n >\n {otp.map((digit, index) => (\n <Input\n isWidthAsHeight\n key={index}\n tabIndex={index + 1}\n ref={(el) => {\n inputsRef.current[index] = el;\n }}\n variety='standard'\n type='text'\n inputMode='numeric'\n maxLength={1}\n value={digit}\n onFocus={handleFocusInput}\n onPaste={(e) => handlePaste(index, e)}\n onChange={(value) => handleChange(index, value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n genre={props.genre}\n size={props.size}\n font={props.font}\n />\n ))}\n </InputOTPWrapper>\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: props.font?.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["_a","_b","jsxs","Fragment","jsx"],"mappings":";;;;AAOO,MAAM,WAAW,CAAC,UAAyB;;AAChD,QAAM,CAAC,KAAK,MAAM,IAAI,SAAmB,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC;AACzE,QAAM,YAAY,OAAoC,EAAE;AACxD,QAAM,aAAa,OAA8B,IAAI;AAErD,QAAM,cAAc;AAAA,IAClB,CAAC,OAAe,MAAwC;AACtD,QAAE,eAAA;AAEF,YAAM,YAAY,EAAE,cAAc,QAAQ,MAAM;AAChD,YAAM,SAAS,UAAU,QAAQ,OAAO,EAAE,EAAE,MAAM,EAAE;AAEpD,UAAI,CAAC,OAAO,OAAQ;AAEpB,aAAO,CAAC,YAAY;;AAClB,cAAM,SAAS,CAAC,GAAG,OAAO;AAC1B,YAAI,eAAe;AAEnB,iBAAS,IAAI,GAAG,IAAI,OAAO,UAAU,eAAe,OAAO,QAAQ,KAAK;AACtE,iBAAO,YAAY,IAAI,OAAO,CAAC;AAC/B;AAAA,QACF;AAEA,cAAM,SAAS,OAAO,KAAK,EAAE;AAE7B,SAAAA,MAAA,MAAM,aAAN,gBAAAA,IAAA,YAAiB;AAEjB,YAAI,OAAO,MAAM,CAAC,SAAS,SAAS,EAAE,GAAG;AACvC,sBAAM,eAAN,+BAAmB;AAAA,QACrB;AAEA,mBAAW,MAAM;;AACf,gBAAM,aAAa,OAAO,UAAU,CAAC,SAAS,SAAS,EAAE;AACzD,cAAI,eAAe,IAAI;AACrB,aAAAA,MAAA,UAAU,QAAQ,UAAU,MAA5B,gBAAAA,IAA+B;AAAA,UACjC,WAAW,eAAe,OAAO,QAAQ;AACvC,aAAAC,MAAA,UAAU,QAAQ,YAAY,MAA9B,gBAAAA,IAAiC;AAAA,UACnC;AAAA,QACF,GAAG,CAAC;AAEJ,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,KAAK;AAAA,EAAA;AAGR,QAAM,eAAe;AAAA,IACnB,CAAC,OAAe,UAAkB;AAChC,UAAI,CAAC,QAAQ,KAAK,KAAK,EAAG;AAE1B,aAAO,CAAC,YAAY;;AAClB,cAAM,SAAS,CAAC,GAAG,OAAO;AAC1B,eAAO,KAAK,IAAI,MAAM,MAAM,EAAE;AAE9B,YAAI,MAAM,UAAU;AAClB,gBAAM,SAAS,OAAO,KAAK,EAAE,CAAC;AAAA,QAChC;AAEA,YAAI,OAAO,MAAM,CAAC,SAAS,SAAS,EAAE,GAAG;AACvC,WAAAD,MAAA,MAAM,eAAN,gBAAAA,IAAA,YAAmB,OAAO,KAAK,EAAE;AAAA,QACnC;AAEA,YAAI,SAAS,QAAQ,QAAQ,SAAS,GAAG;AACvC,qBAAW,MAAM;;AACf,aAAAA,MAAA,UAAU,QAAQ,QAAQ,CAAC,MAA3B,gBAAAA,IAA8B;AAAA,UAChC,GAAG,CAAC;AAAA,QACN;AAEA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,KAAK;AAAA,EAAA;AAGR,QAAM,gBAAgB,CAAC,OAAe,MAAuC;AAC3E,UAAM,QAAQ,UAAU,QAAQ,KAAK;AAErC,QAAI,CAAC,MAAO;AAEZ,QAAI,EAAE,QAAQ,cAAc;AAC1B,YAAM,YAAY,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI;AACvD,YAAM,YAAY,UAAU,QAAQ,SAAS;AAE7C,UAAI,WAAW;AACb,kBAAU,MAAA;AACV,mBAAW,MAAM,UAAU,kBAAkB,GAAG,UAAU,MAAM,MAAM,GAAG,CAAC;AAAA,MAC5E;AAAA,IACF;AAEA,QAAI,EAAE,QAAQ,aAAa;AACzB,YAAM,YAAY,QAAQ,IAAI,QAAQ,IAAI,IAAI,SAAS;AACvD,YAAM,YAAY,UAAU,QAAQ,SAAS;AAE7C,UAAI,WAAW;AACb,kBAAU,MAAA;AACV,mBAAW,MAAM,UAAU,kBAAkB,GAAG,UAAU,MAAM,MAAM,GAAG,CAAC;AAAA,MAC5E;AAAA,IACF;AAEA,QAAI,EAAE,QAAQ,aAAa;AACzB,UAAI,MAAM,OAAO;AACf,mBAAW,MAAM,MAAM,kBAAkB,GAAG,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,MACpE,WAAW,QAAQ,GAAG;AACpB,mBAAW,MAAM;AACf,gBAAM,YAAY,UAAU,QAAQ,QAAQ,CAAC;AAC7C,cAAI,WAAW;AACb,sBAAU,MAAA;AACV,sBAAU,kBAAkB,GAAG,UAAU,MAAM,MAAM;AAAA,UACvD;AAAA,QACF,GAAG,CAAC;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,YAAY,CAAC,MAAoC;AACxE,eAAW,MAAM,EAAE,OAAO,kBAAkB,GAAG,EAAE,OAAO,MAAM,MAAM,GAAG,CAAC;AAAA,EAC1E,GAAG,CAAA,CAAE;AACL,SACEE,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,IAAAC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM;AAAA,QACb,IAAI,MAAM;AAAA,QACV,KAAK;AAAA,QACL,QAAQ,CAAC,MAAM;AACb,qBAAW,MAAM;;AACf,gBAAI,WAAW,WAAW,CAAC,WAAW,QAAQ,SAAS,SAAS,aAAa,GAAG;AAC9E,eAAAJ,MAAA,MAAM,WAAN,gBAAAA,IAAA,YAAe;AAAA,YACjB;AAAA,UACF,GAAG,CAAC;AAAA,QACN;AAAA,QACA,SAAS,CAAC,MAAM;AACd,qBAAW,MAAM;;AACf,iBAAIA,MAAA,WAAW,YAAX,gBAAAA,IAAoB,SAAS,SAAS,gBAAgB;AACxD,0BAAM,YAAN,+BAAgB;AAAA,YAClB;AAAA,UACF,GAAG,CAAC;AAAA,QACN;AAAA,QACA,KAAK,MAAM;AAAA,QAEV,UAAA,IAAI,IAAI,CAAC,OAAO,UACfI,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,iBAAe;AAAA,YAEf,UAAU,QAAQ;AAAA,YAClB,KAAK,CAAC,OAAO;AACX,wBAAU,QAAQ,KAAK,IAAI;AAAA,YAC7B;AAAA,YACA,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS;AAAA,YACT,SAAS,CAAC,MAAM,YAAY,OAAO,CAAC;AAAA,YACpC,UAAU,CAAC,UAAU,aAAa,OAAO,KAAK;AAAA,YAC9C,WAAW,CAAC,MAAM,cAAc,OAAO,CAAC;AAAA,YACxC,OAAO,MAAM;AAAA,YACb,MAAM,MAAM;AAAA,YACZ,MAAM,MAAM;AAAA,UAAA;AAAA,UAhBP;AAAA,QAAA,CAkBR;AAAA,MAAA;AAAA,IAAA;AAAA,KAEF,+BAAO,SACNA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG,MAAM;AAAA,QACV,OAAM,+BAAO,MAAM,SAAQ,MAAM;AAAA,QACjC,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,SAAQ,WAAM,SAAN,mBAAY;AAAA,QAAA;AAAA,MACtB;AAAA,IAAA,IAEA;AAAA,EAAA,GACN;AAEJ;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-
|
|
2
|
-
import { I as Icon, k as CheckboxWrapper,
|
|
1
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
|
+
import { I as Icon, k as CheckboxWrapper, bo as KEY_SIZE_DATA, bk as ErrorMessage } from "./context.constants-Bh-ajJM2.js";
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { useTheme } from "styled-components";
|
|
5
|
-
import "./component.styles-
|
|
6
|
-
import { R as Ripple } from "./component-
|
|
5
|
+
import "./component.styles-C0oU5oX_.js";
|
|
6
|
+
import { R as Ripple } from "./component-D-HMYzXU.js";
|
|
7
7
|
const Checkbox = (props) => {
|
|
8
8
|
var _a, _b, _c;
|
|
9
9
|
const handleOnClick = useCallback(
|
|
@@ -81,4 +81,4 @@ const Checkbox = (props) => {
|
|
|
81
81
|
export {
|
|
82
82
|
Checkbox as C
|
|
83
83
|
};
|
|
84
|
-
//# sourceMappingURL=component-
|
|
84
|
+
//# sourceMappingURL=component-Dcn4OKm7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-Dcn4OKm7.js","sources":["../src/components/checkbox/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { FC, useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Icon } from '../icon';\nimport { Ripple } from '../ripple';\nimport { CheckboxProps, CheckboxWrapper } from '.';\n\nexport const Checkbox: FC<CheckboxProps> = (props) => {\n const handleOnClick = useCallback(\n (checked: boolean) => {\n props.onChange?.(checked);\n },\n [props.onChange],\n );\n const theme = useTheme();\n const children = useMemo(\n () => (\n <>\n <Icon\n {...(props.checked ? props.view.true : props.view.false)}\n size={(props.checked ? props.view.true : props.view.false).size ?? props.size}\n />\n {props.children && props.children}\n </>\n ),\n [props.checked, props.children, props.size, props.view],\n );\n const LoadingComponent = <Icon size={props.size} type='loading' name='Line' />;\n\n return (\n <>\n <CheckboxWrapper\n type='button'\n $genre={props.genre}\n $error={props.error}\n $view={props.view}\n $font={{\n ...props.font,\n size: props.font?.size ?? KEY_SIZE_DATA[props.size].font,\n weight: props.font?.weight ?? 700,\n }}\n $checked={props.checked}\n $isWidthAsHeight={props.isWidthAsHeight}\n $size={props.size}\n $isDisabled={props.isDisabled}\n $isHiddenBorder={props.isHiddenBorder}\n $isNotBackground={props.isNotBackground}\n $sx={props.sx}\n $sxTypography={props.sxTypography}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n disabled={props.isDisabled}\n tabIndex={0}\n onClick={() => !props.isDisabled && handleOnClick(!props.checked)}\n >\n <Ripple color={theme.colors.checkbox[props.genre].color.rest} isDisabled={props.isDisabled} />\n {props.isOnlyLoading ? (\n props.isLoading ? (\n LoadingComponent\n ) : (\n children\n )\n ) : (\n <>\n {children}\n {props.isLoading && LoadingComponent}\n </>\n )}\n </CheckboxWrapper>\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: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["_a","jsxs","Fragment","jsx"],"mappings":";;;;;;AAUO,MAAM,WAA8B,CAAC,UAAU;;AACpD,QAAM,gBAAgB;AAAA,IACpB,CAAC,YAAqB;;AACpB,OAAAA,MAAA,MAAM,aAAN,gBAAAA,IAAA,YAAiB;AAAA,IACnB;AAAA,IACA,CAAC,MAAM,QAAQ;AAAA,EAAA;AAEjB,QAAM,QAAQ,SAAA;AACd,QAAM,WAAW;AAAA,IACf,MACEC,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,MAAAC,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAI,MAAM,UAAU,MAAM,KAAK,OAAO,MAAM,KAAK;AAAA,UAClD,OAAO,MAAM,UAAU,MAAM,KAAK,OAAO,MAAM,KAAK,OAAO,QAAQ,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAE1E,MAAM,YAAY,MAAM;AAAA,IAAA,GAC3B;AAAA,IAEF,CAAC,MAAM,SAAS,MAAM,UAAU,MAAM,MAAM,MAAM,IAAI;AAAA,EAAA;AAExD,QAAM,yDAAoB,MAAA,EAAK,MAAM,MAAM,MAAM,MAAK,WAAU,MAAK,OAAA,CAAO;AAE5E,SACEF,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,IAAAD,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM;AAAA,QACb,OAAO;AAAA,UACL,GAAG,MAAM;AAAA,UACT,QAAM,WAAM,SAAN,mBAAY,SAAQ,cAAc,MAAM,IAAI,EAAE;AAAA,UACpD,UAAQ,WAAM,SAAN,mBAAY,WAAU;AAAA,QAAA;AAAA,QAEhC,UAAU,MAAM;AAAA,QAChB,kBAAkB,MAAM;AAAA,QACxB,OAAO,MAAM;AAAA,QACb,aAAa,MAAM;AAAA,QACnB,iBAAiB,MAAM;AAAA,QACvB,kBAAkB,MAAM;AAAA,QACxB,KAAK,MAAM;AAAA,QACX,eAAe,MAAM;AAAA,QACrB,oBAAoB,MAAM,cAAc,MAAM;AAAA,QAC9C,qBAAqB,MAAM;AAAA,QAC3B,aAAa,MAAM;AAAA,QACnB,UAAU,MAAM;AAAA,QAChB,UAAU;AAAA,QACV,SAAS,MAAM,CAAC,MAAM,cAAc,cAAc,CAAC,MAAM,OAAO;AAAA,QAEhE,UAAA;AAAA,UAAAE,kCAAAA,IAAC,QAAA,EAAO,OAAO,MAAM,OAAO,SAAS,MAAM,KAAK,EAAE,MAAM,MAAM,YAAY,MAAM,WAAA,CAAY;AAAA,UAC3F,MAAM,gBACL,MAAM,YACJ,mBAEA,WAGFF,kCAAAA,KAAAC,4BAAA,EACG,UAAA;AAAA,YAAA;AAAA,YACA,MAAM,aAAa;AAAA,UAAA,EAAA,CACtB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,KAGH,+BAAO,SACNC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG,MAAM;AAAA,QACV,OAAM,+BAAO,MAAM,SAAQ,MAAM;AAAA,QACjC,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAQ,WAAM,SAAN,mBAAY,WAAU,MAAM,KAAK;AAAA,QAAA;AAAA,MAC3C;AAAA,IAAA,IAEA;AAAA,EAAA,GACN;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),t=require("react"),i=require("./component.styles-BX2Aiqp_.cjs");exports.Ripple=s=>{const r=t.useMemo(()=>s.color??"unset",[s.color]),o=t.useMemo(()=>s.duration??i.DEFAULT_RIPPLE_DURATION,[s.duration]),[n,u]=t.useState([]);((e,i,s)=>{t.useLayoutEffect(()=>{let t=null;return e>0&&(t&&clearTimeout(t),t=setTimeout(()=>{s(),t&&clearTimeout(t)},4*i)),()=>{t&&clearTimeout(t)}},[e,i,s])})(n.length,o??i.DEFAULT_RIPPLE_DURATION,()=>{u([])});const l=t.useCallback(e=>{if(!e.isTrusted)return;const t=e.currentTarget.getBoundingClientRect(),i=t.width>t.height?t.width:t.height,s={x:e.pageX-t.x-i/2,y:e.pageY-t.y-i/2,size:i};u([]),setTimeout(()=>{u([s])},0)},[]);return s.isDisabled||s.isHidden?null:e.jsxRuntimeExports.jsx(i.RippleContainer,{id:i.DEFAULT_RIPPLE_ID,$duration:o,$color:r,onMouseUp:l,children:n.length>0&&n.map((t,s)=>e.jsxRuntimeExports.jsx(i.RippleSpan,{$duration:o,$color:r,style:{top:t.y,left:t.x,width:t.size,height:t.size}},`span-${s}`))})};
|
|
2
|
+
//# sourceMappingURL=component-DqV_-YxZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DqV_-YxZ.cjs","sources":["../src/components/ripple/component.tsx"],"sourcesContent":["import React, { FC, useCallback, useLayoutEffect, useMemo, useState } from 'react';\n\nimport {\n DEFAULT_RIPPLE_DURATION,\n DEFAULT_RIPPLE_ID,\n RippleArrayElement,\n RippleContainer,\n RippleProps,\n RippleSpan,\n} from '.';\n\nconst useDebouncedRippleCleanUp = (rippleCount: number, duration: number, cleanUpFunction: () => void) => {\n useLayoutEffect(() => {\n // eslint-disable-next-line no-undef\n let bounce: NodeJS.Timeout | null = null;\n if (rippleCount > 0) {\n if (bounce) {\n clearTimeout(bounce);\n }\n\n bounce = setTimeout(() => {\n cleanUpFunction();\n if (bounce) {\n clearTimeout(bounce);\n }\n }, duration * 4);\n }\n\n return () => {\n if (bounce) {\n clearTimeout(bounce);\n }\n };\n }, [rippleCount, duration, cleanUpFunction]);\n};\n\nexport const Ripple: FC<RippleProps> = (props) => {\n const color = useMemo(() => props.color ?? 'unset', [props.color]);\n const duration = useMemo(() => props.duration ?? DEFAULT_RIPPLE_DURATION, [props.duration]);\n\n const [rippleArray, setRippleArray] = useState<RippleArrayElement[]>([]);\n\n useDebouncedRippleCleanUp(rippleArray.length, duration ?? DEFAULT_RIPPLE_DURATION, () => {\n setRippleArray([]);\n });\n\n const onMouseUp = useCallback((event: React.MouseEvent<HTMLDivElement>) => {\n if (!event.isTrusted) return;\n const rippleContainer = event.currentTarget.getBoundingClientRect();\n const size = rippleContainer.width > rippleContainer.height ? rippleContainer.width : rippleContainer.height;\n const x = event.pageX - rippleContainer.x - size / 2;\n const y = event.pageY - rippleContainer.y - size / 2;\n const newRipple = { x, y, size };\n setRippleArray([]);\n setTimeout(() => {\n setRippleArray([newRipple]);\n }, 0);\n }, []);\n\n if (props.isDisabled || props.isHidden) return null;\n return (\n <RippleContainer id={DEFAULT_RIPPLE_ID} $duration={duration} $color={color} onMouseUp={onMouseUp}>\n {rippleArray.length > 0 &&\n rippleArray.map((ripple, index) => {\n return (\n <RippleSpan\n $duration={duration}\n $color={color}\n key={`span-${index}`}\n style={{\n top: ripple.y,\n left: ripple.x,\n width: ripple.size,\n height: ripple.size,\n }}\n />\n );\n })}\n </RippleContainer>\n );\n};\n"],"names":["props","color","useMemo","duration","DEFAULT_RIPPLE_DURATION","rippleArray","setRippleArray","useState","rippleCount","cleanUpFunction","useLayoutEffect","bounce","clearTimeout","setTimeout","useDebouncedRippleCleanUp","length","onMouseUp","useCallback","event","isTrusted","rippleContainer","currentTarget","getBoundingClientRect","size","width","height","newRipple","x","pageX","y","pageY","isDisabled","isHidden","RippleContainer","id","DEFAULT_RIPPLE_ID","$duration","$color","children","map","ripple","index","jsx","RippleSpan","style","top","left"],"mappings":"0IAoCwCA,IACtC,MAAMC,EAAQC,EAAAA,QAAQ,IAAMF,EAAMC,OAAS,QAAS,CAACD,EAAMC,QACrDE,EAAWD,EAAAA,QAAQ,IAAMF,EAAMG,UAAYC,0BAAyB,CAACJ,EAAMG,YAE1EE,EAAaC,GAAkBC,EAAAA,SAA+B,IA7BrC,EAACC,EAAqBL,EAAkBM,KACxEC,EAAAA,gBAAgB,KAEd,IAAIC,EAAgC,KAcpC,OAbIH,EAAc,IACZG,GACFC,aAAaD,GAGfA,EAASE,WAAW,KAClBJ,IACIE,GACFC,aAAaD,IAEH,EAAXR,IAGE,KACDQ,GACFC,aAAaD,KAGhB,CAACH,EAAaL,EAAUM,KAS3BK,CAA0BT,EAAYU,OAAQZ,GAAYC,EAAAA,wBAAyB,KACjFE,EAAe,MAGjB,MAAMU,EAAYC,cAAaC,IAC7B,IAAKA,EAAMC,UAAW,OACtB,MAAMC,EAAkBF,EAAMG,cAAcC,wBACtCC,EAAOH,EAAgBI,MAAQJ,EAAgBK,OAASL,EAAgBI,MAAQJ,EAAgBK,OAGhGC,EAAY,CAAEC,EAFVT,EAAMU,MAAQR,EAAgBO,EAAIJ,EAAO,EAE5BM,EADbX,EAAMY,MAAQV,EAAgBS,EAAIN,EAAO,EACzBA,QAC1BjB,EAAe,IACfO,WAAW,KACTP,EAAe,CAACoB,KACf,IACF,IAEH,OAAI1B,EAAM+B,YAAc/B,EAAMgC,SAAiB,6BAE5CC,EAAAA,gBAAA,CAAgBC,GAAIC,EAAAA,kBAAmBC,UAAWjC,EAAUkC,OAAQpC,EAAOe,YACzEsB,SAAAjC,EAAYU,OAAS,GACpBV,EAAYkC,IAAI,CAACC,EAAQC,MAErBC,kBAAAA,IAACC,EAAAA,WAAA,CACCP,UAAWjC,EACXkC,OAAQpC,EAER2C,MAAO,CACLC,IAAKL,EAAOX,EACZiB,KAAMN,EAAOb,EACbH,MAAOgB,EAAOjB,KACdE,OAAQe,EAAOjB,OALZ,QAAQkB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),r=require("react"),n=require("styled-components"),s=require("./context.constants-CDgzMcxb.cjs");exports.Range=a=>{const{onChange:t}=a,o=r.useCallback((e,r)=>{const n=[...a.values];n[e]=Math.min(a.max,Math.max(a.min,r)),t(n.sort((e,r)=>e-r))},[t,a.max,a.min,a.values]),u=r.useCallback(e=>(e-a.min)/(a.max-a.min)*100,[a.max,a.min]),m=r.useMemo(()=>a.values.map(e=>u(e)),[u,a.values]),i=n.useTheme(),g=i.colors.range[a.genre].track.background.rest,c=i.colors.range[a.genre].track.gradient.rest,l=i.colors.range[a.genre].thumb.border.rest,x=i.colors.range[a.genre].thumb.background.rest,$=r.useMemo(()=>m.map((e,r)=>{const n=0===r,s=r===m.length-1;return n?`${g} 0%, ${g} ${e}%, ${c} ${e}%`:s?`${c} ${e}%, ${g} ${e}%, ${g} 100%`:`${c} ${e}%`}).join(", "),[c,g,m]),p=r.useMemo(()=>`linear-gradient(to right, ${$})`,[$]);return e.jsxRuntimeExports.jsxs(s.RangeWrapper,{$size:a.size,$sx:a.sx,$error:a.error,onBlur:a.onBlur,children:[a.values.map((r,n)=>e.jsxRuntimeExports.jsx(s.RangeThumb,{type:"range",$size:a.size,$genre:a.genre,min:a.min,max:a.max,step:a.step,value:r,onChange:e=>o(n,parseFloat(e.target.value)),style:{zIndex:100+n},$colorBackground:x,$colorBorder:l},n)),e.jsxRuntimeExports.jsx(s.RangeTrack,{$size:a.size,$genre:a.genre,style:{background:p}})]})};
|
|
2
|
+
//# sourceMappingURL=component-DsLJSX6q.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-DsLJSX6q.cjs","sources":["../src/components/range/component.tsx"],"sourcesContent":["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":["props","onChange","handleChange","useCallback","index","newValue","newValues","values","Math","min","max","sort","a","b","getThumbPositionPercent","val","positions","useMemo","map","theme","useTheme","colorTrackBackground","colors","range","genre","track","background","rest","colorTrackGradient","gradient","colorThumbBorder","thumb","border","colorThumbBackground","trackGradient","position","idx","isFirst","isLast","length","join","jsxs","RangeWrapper","$size","size","$sx","sx","$error","error","onBlur","children","jsx","RangeThumb","type","$genre","step","value","e","parseFloat","target","style","zIndex","$colorBackground","$colorBorder","RangeTrack"],"mappings":"yKAKsBA,IACpB,MAAMC,SAAEA,GAAaD,EACfE,EAAeC,EAAAA,YACnB,CAACC,EAAeC,KACd,MAAMC,EAAY,IAAIN,EAAMO,QAC5BD,EAAUF,GAASI,KAAKC,IAAIT,EAAMU,IAAKF,KAAKE,IAAIV,EAAMS,IAAKJ,IAC3DJ,EAASK,EAAUK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,KAExC,CAACZ,EAAUD,EAAMU,IAAKV,EAAMS,IAAKT,EAAMO,SAEnCO,EAA0BX,EAAAA,YAC7BY,IAAkBA,EAAMf,EAAMS,MAAQT,EAAMU,IAAMV,EAAMS,KAAQ,IACjE,CAACT,EAAMU,IAAKV,EAAMS,MAEdO,EAAYC,EAAAA,QAChB,IAAMjB,EAAMO,OAAOW,IAAKH,GAAQD,EAAwBC,IACxD,CAACD,EAAyBd,EAAMO,SAE5BY,EAAQC,EAAAA,WAERC,EAAuBF,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMC,WAAWC,KACxEC,EAAqBT,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMI,SAASF,KACpEG,EAAmBX,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAMC,OAAOL,KAChEM,EAAuBd,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAML,WAAWC,KAExEO,EAAgBjB,EAAAA,QACpB,IACED,EACGE,IAAI,CAACiB,EAAUC,KACd,MAAMC,EAAkB,IAARD,EACVE,EAASF,IAAQpB,EAAUuB,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,EAAsBL,IAEvCa,EAAWZ,EAAAA,QAAQ,IAAM,6BAA6BiB,KAAkB,CAACA,IAE/E,SACEO,kBAAAA,KAACC,EAAAA,aAAA,CAAaC,MAAO3C,EAAM4C,KAAMC,IAAK7C,EAAM8C,GAAIC,OAAQ/C,EAAMgD,MAAOC,OAAQjD,EAAMiD,OAChFC,SAAA,CAAAlD,EAAMO,OAAOW,IAAI,CAACH,EAAKqB,MACtBe,kBAAAA,IAACC,EAAAA,WAAA,CAECC,KAAK,QACLV,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdf,IAAKT,EAAMS,IACXC,IAAKV,EAAMU,IACX6C,KAAMvD,EAAMuD,KACZC,MAAOzC,EACPd,SAAWwD,GAAMvD,EAAakC,EAAKsB,WAAWD,EAAEE,OAAOH,QACvDI,MAAO,CAAEC,OAAQ,IAAMzB,GACvB0B,iBAAkB7B,EAClB8B,aAAcjC,GAXTM,MAcTe,kBAAAA,IAACa,EAAAA,WAAA,CACCrB,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdoC,MAAO,CACLlC,WAAYG"}
|