@jenesei-software/jenesei-kit-react 1.0.0
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/LICENSE +21 -0
- package/README.md +102 -0
- package/build/area-9NUxwBGc.cjs +2 -0
- package/build/area-9NUxwBGc.cjs.map +1 -0
- package/build/area-BnAddPtl.js +114 -0
- package/build/area-BnAddPtl.js.map +1 -0
- package/build/area-C2sWYH-e.js +47 -0
- package/build/area-C2sWYH-e.js.map +1 -0
- package/build/area-CD10k19W.cjs +27 -0
- package/build/area-CD10k19W.cjs.map +1 -0
- package/build/area-ClrrGVJG.cjs +40 -0
- package/build/area-ClrrGVJG.cjs.map +1 -0
- package/build/area-D7906bXA.cjs +2 -0
- package/build/area-D7906bXA.cjs.map +1 -0
- package/build/area-DRqAofd0.js +35 -0
- package/build/area-DRqAofd0.js.map +1 -0
- package/build/area-DfCAwCiZ.js +69 -0
- package/build/area-DfCAwCiZ.js.map +1 -0
- package/build/area-outside.cjs.js +2 -0
- package/build/area-outside.cjs.js.map +1 -0
- package/build/area-outside.d.ts +28 -0
- package/build/area-outside.es.js +5 -0
- package/build/area-outside.es.js.map +1 -0
- package/build/area-preview.cjs.js +2 -0
- package/build/area-preview.cjs.js.map +1 -0
- package/build/area-preview.d.ts +48 -0
- package/build/area-preview.es.js +7 -0
- package/build/area-preview.es.js.map +1 -0
- package/build/area-scroll.cjs.js +2 -0
- package/build/area-scroll.cjs.js.map +1 -0
- package/build/area-scroll.d.ts +58 -0
- package/build/area-scroll.es.js +6 -0
- package/build/area-scroll.es.js.map +1 -0
- package/build/area-skeleton.cjs.js +2 -0
- package/build/area-skeleton.cjs.js.map +1 -0
- package/build/area-skeleton.d.ts +64 -0
- package/build/area-skeleton.es.js +6 -0
- package/build/area-skeleton.es.js.map +1 -0
- package/build/area-smooth.cjs.js +2 -0
- package/build/area-smooth.cjs.js.map +1 -0
- package/build/area-smooth.d.ts +37 -0
- package/build/area-smooth.es.js +5 -0
- package/build/area-smooth.es.js.map +1 -0
- package/build/area.hooks-Bk04M7mk.js +26 -0
- package/build/area.hooks-Bk04M7mk.js.map +1 -0
- package/build/area.hooks-C_UKZzcb.cjs +2 -0
- package/build/area.hooks-C_UKZzcb.cjs.map +1 -0
- package/build/build-info.txt +3 -0
- package/build/component--Oo5_3xq.cjs +2 -0
- package/build/component--Oo5_3xq.cjs.map +1 -0
- package/build/component-BV_7tGiu.cjs +28 -0
- package/build/component-BV_7tGiu.cjs.map +1 -0
- package/build/component-BcHiCCC9.js +23 -0
- package/build/component-BcHiCCC9.js.map +1 -0
- package/build/component-BnI7BIp-.cjs +2 -0
- package/build/component-BnI7BIp-.cjs.map +1 -0
- package/build/component-ByY_9Ryc.js +65 -0
- package/build/component-ByY_9Ryc.js.map +1 -0
- package/build/component-C2JFFh-k.js +2372 -0
- package/build/component-C2JFFh-k.js.map +1 -0
- package/build/component-C52VCES6.cjs +247 -0
- package/build/component-C52VCES6.cjs.map +1 -0
- package/build/component-CBshLNEf.js +50 -0
- package/build/component-CBshLNEf.js.map +1 -0
- package/build/component-CFMlaYj1.js +66 -0
- package/build/component-CFMlaYj1.js.map +1 -0
- package/build/component-CuiUpH8H.js +207 -0
- package/build/component-CuiUpH8H.js.map +1 -0
- package/build/component-D1NPhRuV.cjs +90 -0
- package/build/component-D1NPhRuV.cjs.map +1 -0
- package/build/component-DZxbW_Jz.js +237 -0
- package/build/component-DZxbW_Jz.js.map +1 -0
- package/build/component-UW1VzyvB.cjs +52 -0
- package/build/component-UW1VzyvB.cjs.map +1 -0
- package/build/component-accordion.cjs.js +2 -0
- package/build/component-accordion.cjs.js.map +1 -0
- package/build/component-accordion.d.ts +94 -0
- package/build/component-accordion.es.js +10 -0
- package/build/component-accordion.es.js.map +1 -0
- package/build/component-button-group.cjs.js +2 -0
- package/build/component-button-group.cjs.js.map +1 -0
- package/build/component-button-group.d.ts +320 -0
- package/build/component-button-group.es.js +6 -0
- package/build/component-button-group.es.js.map +1 -0
- package/build/component-button.cjs.js +2 -0
- package/build/component-button.cjs.js.map +1 -0
- package/build/component-button.d.ts +347 -0
- package/build/component-button.es.js +9 -0
- package/build/component-button.es.js.map +1 -0
- package/build/component-checkbox-group.cjs.js +2 -0
- package/build/component-checkbox-group.cjs.js.map +1 -0
- package/build/component-checkbox-group.d.ts +337 -0
- package/build/component-checkbox-group.es.js +11 -0
- package/build/component-checkbox-group.es.js.map +1 -0
- package/build/component-checkbox.cjs.js +2 -0
- package/build/component-checkbox.cjs.js.map +1 -0
- package/build/component-checkbox.d.ts +342 -0
- package/build/component-checkbox.es.js +10 -0
- package/build/component-checkbox.es.js.map +1 -0
- package/build/component-date-picker.cjs.js +2 -0
- package/build/component-date-picker.cjs.js.map +1 -0
- package/build/component-date-picker.d.ts +415 -0
- package/build/component-date-picker.es.js +17 -0
- package/build/component-date-picker.es.js.map +1 -0
- package/build/component-icon.cjs.js +2 -0
- package/build/component-icon.cjs.js.map +1 -0
- package/build/component-icon.d.ts +198 -0
- package/build/component-icon.es.js +12 -0
- package/build/component-icon.es.js.map +1 -0
- package/build/component-image-button.cjs.js +2 -0
- package/build/component-image-button.cjs.js.map +1 -0
- package/build/component-image-button.d.ts +340 -0
- package/build/component-image-button.es.js +5 -0
- package/build/component-image-button.es.js.map +1 -0
- package/build/component-image-select.cjs.js +2 -0
- package/build/component-image-select.cjs.js.map +1 -0
- package/build/component-image-select.d.ts +436 -0
- package/build/component-image-select.es.js +11 -0
- package/build/component-image-select.es.js.map +1 -0
- package/build/component-image-slider.cjs.js +2 -0
- package/build/component-image-slider.cjs.js.map +1 -0
- package/build/component-image-slider.d.ts +108 -0
- package/build/component-image-slider.es.js +8 -0
- package/build/component-image-slider.es.js.map +1 -0
- package/build/component-image.cjs.js +2 -0
- package/build/component-image.cjs.js.map +1 -0
- package/build/component-image.d.ts +51 -0
- package/build/component-image.es.js +6 -0
- package/build/component-image.es.js.map +1 -0
- package/build/component-input-otp.cjs.js +2 -0
- package/build/component-input-otp.cjs.js.map +1 -0
- package/build/component-input-otp.d.ts +150 -0
- package/build/component-input-otp.es.js +8 -0
- package/build/component-input-otp.es.js.map +1 -0
- package/build/component-input.cjs.js +2 -0
- package/build/component-input.cjs.js.map +1 -0
- package/build/component-input.d.ts +226 -0
- package/build/component-input.es.js +20 -0
- package/build/component-input.es.js.map +1 -0
- package/build/component-jPZYT5iL.js +76 -0
- package/build/component-jPZYT5iL.js.map +1 -0
- package/build/component-map.cjs.js +2 -0
- package/build/component-map.cjs.js.map +1 -0
- package/build/component-map.d.ts +97 -0
- package/build/component-map.es.js +18 -0
- package/build/component-map.es.js.map +1 -0
- package/build/component-nFn_uOy_.cjs +2 -0
- package/build/component-nFn_uOy_.cjs.map +1 -0
- package/build/component-pagination.cjs.js +2 -0
- package/build/component-pagination.cjs.js.map +1 -0
- package/build/component-pagination.d.ts +321 -0
- package/build/component-pagination.es.js +6 -0
- package/build/component-pagination.es.js.map +1 -0
- package/build/component-range.cjs.js +2 -0
- package/build/component-range.cjs.js.map +1 -0
- package/build/component-range.d.ts +153 -0
- package/build/component-range.es.js +8 -0
- package/build/component-range.es.js.map +1 -0
- package/build/component-ripple.cjs.js +2 -0
- package/build/component-ripple.cjs.js.map +1 -0
- package/build/component-ripple.d.ts +45 -0
- package/build/component-ripple.es.js +12 -0
- package/build/component-ripple.es.js.map +1 -0
- package/build/component-select.cjs.js +2 -0
- package/build/component-select.cjs.js.map +1 -0
- package/build/component-select.d.ts +406 -0
- package/build/component-select.es.js +25 -0
- package/build/component-select.es.js.map +1 -0
- package/build/component-separator.cjs.js +2 -0
- package/build/component-separator.cjs.js.map +1 -0
- package/build/component-separator.d.ts +46 -0
- package/build/component-separator.es.js +6 -0
- package/build/component-separator.es.js.map +1 -0
- package/build/component-stack.cjs.js +2 -0
- package/build/component-stack.cjs.js.map +1 -0
- package/build/component-stack.d.ts +72 -0
- package/build/component-stack.es.js +8 -0
- package/build/component-stack.es.js.map +1 -0
- package/build/component-textarea.cjs.js +2 -0
- package/build/component-textarea.cjs.js.map +1 -0
- package/build/component-textarea.d.ts +131 -0
- package/build/component-textarea.es.js +12 -0
- package/build/component-textarea.es.js.map +1 -0
- package/build/component-toggle.cjs.js +2 -0
- package/build/component-toggle.cjs.js.map +1 -0
- package/build/component-toggle.d.ts +101 -0
- package/build/component-toggle.es.js +7 -0
- package/build/component-toggle.es.js.map +1 -0
- package/build/component-tooltip.cjs.js +2 -0
- package/build/component-tooltip.cjs.js.map +1 -0
- package/build/component-tooltip.d.ts +170 -0
- package/build/component-tooltip.es.js +12 -0
- package/build/component-tooltip.es.js.map +1 -0
- package/build/component-typography.cjs.js +2 -0
- package/build/component-typography.cjs.js.map +1 -0
- package/build/component-typography.d.ts +183 -0
- package/build/component-typography.es.js +10 -0
- package/build/component-typography.es.js.map +1 -0
- package/build/component-xnEaYd4a.cjs +2 -0
- package/build/component-xnEaYd4a.cjs.map +1 -0
- package/build/component.components-BAAT5GTH.js +363 -0
- package/build/component.components-BAAT5GTH.js.map +1 -0
- package/build/component.components-CaR5gfQW.cjs +16 -0
- package/build/component.components-CaR5gfQW.cjs.map +1 -0
- package/build/component.constants-BeWW8Ijx.cjs +2 -0
- package/build/component.constants-BeWW8Ijx.cjs.map +1 -0
- package/build/component.constants-D9wVZ3zy.cjs +22 -0
- package/build/component.constants-D9wVZ3zy.cjs.map +1 -0
- package/build/component.constants-DRvp5Bez.js +142 -0
- package/build/component.constants-DRvp5Bez.js.map +1 -0
- package/build/component.constants-DbNhxh0k.js +759 -0
- package/build/component.constants-DbNhxh0k.js.map +1 -0
- package/build/component.styles-B0L4jbOO.js +59 -0
- package/build/component.styles-B0L4jbOO.js.map +1 -0
- package/build/component.styles-B1DIataj.cjs +10 -0
- package/build/component.styles-B1DIataj.cjs.map +1 -0
- package/build/component.styles-BFwkFWkd.cjs +39 -0
- package/build/component.styles-BFwkFWkd.cjs.map +1 -0
- package/build/component.styles-BSEA2Dqn.cjs +8 -0
- package/build/component.styles-BSEA2Dqn.cjs.map +1 -0
- package/build/component.styles-BapdQNhL.js +2166 -0
- package/build/component.styles-BapdQNhL.js.map +1 -0
- package/build/component.styles-BfvB83xM.cjs +22 -0
- package/build/component.styles-BfvB83xM.cjs.map +1 -0
- package/build/component.styles-Bn6ylF83.js +859 -0
- package/build/component.styles-Bn6ylF83.js.map +1 -0
- package/build/component.styles-BsZIuwWJ.cjs +140 -0
- package/build/component.styles-BsZIuwWJ.cjs.map +1 -0
- package/build/component.styles-C6LohBfF.js +81 -0
- package/build/component.styles-C6LohBfF.js.map +1 -0
- package/build/component.styles-CEBh8X5q.js +20 -0
- package/build/component.styles-CEBh8X5q.js.map +1 -0
- package/build/component.styles-CPsxMKVK.cjs +73 -0
- package/build/component.styles-CPsxMKVK.cjs.map +1 -0
- package/build/component.styles-CTo5NC52.js +71 -0
- package/build/component.styles-CTo5NC52.js.map +1 -0
- package/build/component.styles-CV7jTFCg.js +758 -0
- package/build/component.styles-CV7jTFCg.js.map +1 -0
- package/build/component.styles-CVBpx4fw.js +474 -0
- package/build/component.styles-CVBpx4fw.js.map +1 -0
- package/build/component.styles-CZu2m0O4.cjs +21 -0
- package/build/component.styles-CZu2m0O4.cjs.map +1 -0
- package/build/component.styles-CmBcHREH.cjs +13 -0
- package/build/component.styles-CmBcHREH.cjs.map +1 -0
- package/build/component.styles-CmEFZfA5.js +120 -0
- package/build/component.styles-CmEFZfA5.js.map +1 -0
- package/build/component.styles-DHIw8p8e.cjs +158 -0
- package/build/component.styles-DHIw8p8e.cjs.map +1 -0
- package/build/component.styles-DOPCUXcr.js +158 -0
- package/build/component.styles-DOPCUXcr.js.map +1 -0
- package/build/component.styles-Dj3h7jd9.cjs +165 -0
- package/build/component.styles-Dj3h7jd9.cjs.map +1 -0
- package/build/component.styles-Do1NYZEO.js +86 -0
- package/build/component.styles-Do1NYZEO.js.map +1 -0
- package/build/component.styles-Dok17vPl.js +126 -0
- package/build/component.styles-Dok17vPl.js.map +1 -0
- package/build/component.styles-Dpg-__rn.cjs +43 -0
- package/build/component.styles-Dpg-__rn.cjs.map +1 -0
- package/build/component.styles-DpkFoWEh.cjs +81 -0
- package/build/component.styles-DpkFoWEh.cjs.map +1 -0
- package/build/component.styles-DqsBDAEo.js +202 -0
- package/build/component.styles-DqsBDAEo.js.map +1 -0
- package/build/component.styles-Du2y0R4W.js +177 -0
- package/build/component.styles-Du2y0R4W.js.map +1 -0
- package/build/component.styles-DxeG9Opm.cjs +47 -0
- package/build/component.styles-DxeG9Opm.cjs.map +1 -0
- package/build/component.styles-DyGfo9t0.cjs +32 -0
- package/build/component.styles-DyGfo9t0.cjs.map +1 -0
- package/build/component.styles-RkQwTlwG.js +170 -0
- package/build/component.styles-RkQwTlwG.js.map +1 -0
- package/build/component.styles-ZtwHuL4x.cjs +75 -0
- package/build/component.styles-ZtwHuL4x.cjs.map +1 -0
- package/build/component.types-D05KdxnZ.js +132 -0
- package/build/component.types-D05KdxnZ.js.map +1 -0
- package/build/component.types-gy5Q9qHX.cjs +2 -0
- package/build/component.types-gy5Q9qHX.cjs.map +1 -0
- package/build/consts.cjs.js +2 -0
- package/build/consts.cjs.js.map +1 -0
- package/build/consts.d.ts +86 -0
- package/build/consts.es.js +177 -0
- package/build/consts.es.js.map +1 -0
- package/build/context-app.cjs.js +2 -0
- package/build/context-app.cjs.js.map +1 -0
- package/build/context-app.d.ts +223 -0
- package/build/context-app.es.js +20 -0
- package/build/context-app.es.js.map +1 -0
- package/build/context-cookie.cjs.js +2 -0
- package/build/context-cookie.cjs.js.map +1 -0
- package/build/context-cookie.d.ts +67 -0
- package/build/context-cookie.es.js +9 -0
- package/build/context-cookie.es.js.map +1 -0
- package/build/context-dialog.cjs.js +2 -0
- package/build/context-dialog.cjs.js.map +1 -0
- package/build/context-dialog.d.ts +92 -0
- package/build/context-dialog.es.js +18 -0
- package/build/context-dialog.es.js.map +1 -0
- package/build/context-geolocation.cjs.js +2 -0
- package/build/context-geolocation.cjs.js.map +1 -0
- package/build/context-geolocation.d.ts +22 -0
- package/build/context-geolocation.es.js +7 -0
- package/build/context-geolocation.es.js.map +1 -0
- package/build/context-local-storage.cjs.js +2 -0
- package/build/context-local-storage.cjs.js.map +1 -0
- package/build/context-local-storage.d.ts +54 -0
- package/build/context-local-storage.es.js +9 -0
- package/build/context-local-storage.es.js.map +1 -0
- package/build/context-permission.cjs.js +2 -0
- package/build/context-permission.cjs.js.map +1 -0
- package/build/context-permission.d.ts +28 -0
- package/build/context-permission.es.js +9 -0
- package/build/context-permission.es.js.map +1 -0
- package/build/context-screen-width.cjs.js +2 -0
- package/build/context-screen-width.cjs.js.map +1 -0
- package/build/context-screen-width.d.ts +34 -0
- package/build/context-screen-width.es.js +7 -0
- package/build/context-screen-width.es.js.map +1 -0
- package/build/context-sonner.cjs.js +2 -0
- package/build/context-sonner.cjs.js.map +1 -0
- package/build/context-sonner.d.ts +449 -0
- package/build/context-sonner.es.js +21 -0
- package/build/context-sonner.es.js.map +1 -0
- package/build/context.constants-B29-_8v3.cjs +32 -0
- package/build/context.constants-B29-_8v3.cjs.map +1 -0
- package/build/context.constants-BaD7xj_m.cjs +100 -0
- package/build/context.constants-BaD7xj_m.cjs.map +1 -0
- package/build/context.constants-CsZRZ7gH.js +228 -0
- package/build/context.constants-CsZRZ7gH.js.map +1 -0
- package/build/context.constants-DqYjo5m4.js +375 -0
- package/build/context.constants-DqYjo5m4.js.map +1 -0
- package/build/context.functions-80N-5MqM.cjs +2 -0
- package/build/context.functions-80N-5MqM.cjs.map +1 -0
- package/build/context.functions-B8FDl7nJ.js +14 -0
- package/build/context.functions-B8FDl7nJ.js.map +1 -0
- package/build/context.functions-BD15C8_y.js +128 -0
- package/build/context.functions-BD15C8_y.js.map +1 -0
- package/build/context.functions-CQ9GerPb.js +147 -0
- package/build/context.functions-CQ9GerPb.js.map +1 -0
- package/build/context.functions-ar41xFVo.cjs +2 -0
- package/build/context.functions-ar41xFVo.cjs.map +1 -0
- package/build/context.functions-ohI9H54j.cjs +2 -0
- package/build/context.functions-ohI9H54j.cjs.map +1 -0
- package/build/context.hooks-7ydA7mGj.js +117 -0
- package/build/context.hooks-7ydA7mGj.js.map +1 -0
- package/build/context.hooks-BIsapq-0.cjs +2 -0
- package/build/context.hooks-BIsapq-0.cjs.map +1 -0
- package/build/context.hooks-BmwyZ1p3.js +68 -0
- package/build/context.hooks-BmwyZ1p3.js.map +1 -0
- package/build/context.hooks-BzMTkJNv.js +52 -0
- package/build/context.hooks-BzMTkJNv.js.map +1 -0
- package/build/context.hooks-CTi-CVKx.cjs +72 -0
- package/build/context.hooks-CTi-CVKx.cjs.map +1 -0
- package/build/context.hooks-D13tbrva.cjs +2 -0
- package/build/context.hooks-D13tbrva.cjs.map +1 -0
- package/build/context.hooks-gyzZSaVi.js +527 -0
- package/build/context.hooks-gyzZSaVi.js.map +1 -0
- package/build/context.hooks-u408Pxw8.cjs +2 -0
- package/build/context.hooks-u408Pxw8.cjs.map +1 -0
- package/build/functions.cjs.js +2 -0
- package/build/functions.cjs.js.map +1 -0
- package/build/functions.d.ts +22 -0
- package/build/functions.es.js +47 -0
- package/build/functions.es.js.map +1 -0
- package/build/hooks-use-debounced-callback.cjs.js +2 -0
- package/build/hooks-use-debounced-callback.cjs.js.map +1 -0
- package/build/hooks-use-debounced-callback.d.ts +3 -0
- package/build/hooks-use-debounced-callback.es.js +5 -0
- package/build/hooks-use-debounced-callback.es.js.map +1 -0
- package/build/hooks-use-deep-compare-memoize.cjs.js +2 -0
- package/build/hooks-use-deep-compare-memoize.cjs.js.map +1 -0
- package/build/hooks-use-deep-compare-memoize.d.ts +3 -0
- package/build/hooks-use-deep-compare-memoize.es.js +5 -0
- package/build/hooks-use-deep-compare-memoize.es.js.map +1 -0
- package/build/index.cjs.js +2 -0
- package/build/index.cjs.js.map +1 -0
- package/build/index.d.ts +2540 -0
- package/build/index.es.js +329 -0
- package/build/index.es.js.map +1 -0
- package/build/jsx-runtime-BcGej2Kr.cjs +11 -0
- package/build/jsx-runtime-BcGej2Kr.cjs.map +1 -0
- package/build/jsx-runtime-BrDlu8eK.js +320 -0
- package/build/jsx-runtime-BrDlu8eK.js.map +1 -0
- package/build/motion-CIQfrLky.js +85 -0
- package/build/motion-CIQfrLky.js.map +1 -0
- package/build/motion-DgB7M2Hn.cjs +2 -0
- package/build/motion-DgB7M2Hn.cjs.map +1 -0
- package/build/style-CEGJOjRW.js +107 -0
- package/build/style-CEGJOjRW.js.map +1 -0
- package/build/style-CtGd1JVB.cjs +32 -0
- package/build/style-CtGd1JVB.cjs.map +1 -0
- package/build/style-DeAgDHyI.js +52 -0
- package/build/style-DeAgDHyI.js.map +1 -0
- package/build/style-Dm74EPGE.cjs +87 -0
- package/build/style-Dm74EPGE.cjs.map +1 -0
- package/build/style-add.cjs.js +2 -0
- package/build/style-add.cjs.js.map +1 -0
- package/build/style-add.d.ts +21 -0
- package/build/style-add.es.js +13 -0
- package/build/style-add.es.js.map +1 -0
- package/build/style-error.cjs.js +2 -0
- package/build/style-error.cjs.js.map +1 -0
- package/build/style-error.d.ts +56 -0
- package/build/style-error.es.js +7 -0
- package/build/style-error.es.js.map +1 -0
- package/build/style-fRZ6xrVp.cjs +10 -0
- package/build/style-fRZ6xrVp.cjs.map +1 -0
- package/build/style-motion.cjs.js +2 -0
- package/build/style-motion.cjs.js.map +1 -0
- package/build/style-motion.d.ts +20 -0
- package/build/style-motion.es.js +8 -0
- package/build/style-motion.es.js.map +1 -0
- package/build/style-plT9Ah7t.js +33 -0
- package/build/style-plT9Ah7t.js.map +1 -0
- package/build/style-sx.cjs.js +2 -0
- package/build/style-sx.cjs.js.map +1 -0
- package/build/style-sx.d.ts +31 -0
- package/build/style-sx.es.js +5 -0
- package/build/style-sx.es.js.map +1 -0
- package/build/style-theme.cjs.js +2 -0
- package/build/style-theme.cjs.js.map +1 -0
- package/build/style-theme.d.ts +263 -0
- package/build/style-theme.es.js +10 -0
- package/build/style-theme.es.js.map +1 -0
- package/build/style.css +1 -0
- package/build/theme.global-D6XU05Et.cjs +169 -0
- package/build/theme.global-D6XU05Et.cjs.map +1 -0
- package/build/theme.global-bN9HlSWE.js +1080 -0
- package/build/theme.global-bN9HlSWE.js.map +1 -0
- package/build/types.cjs.js +2 -0
- package/build/types.cjs.js.map +1 -0
- package/build/types.d.ts +27 -0
- package/build/types.es.js +2 -0
- package/build/types.es.js.map +1 -0
- package/build/use-BVj4dgbW.js +1547 -0
- package/build/use-BVj4dgbW.js.map +1 -0
- package/build/use-BhofoOgk.cjs +16 -0
- package/build/use-BhofoOgk.cjs.map +1 -0
- package/build/use-Bp8UVw4Y.js +16 -0
- package/build/use-Bp8UVw4Y.js.map +1 -0
- package/build/use-C1l0O0Qo.cjs +2 -0
- package/build/use-C1l0O0Qo.cjs.map +1 -0
- package/build/use-DT0XgvJT.js +25 -0
- package/build/use-DT0XgvJT.js.map +1 -0
- package/build/use-IhzeVumv.cjs +2 -0
- package/build/use-IhzeVumv.cjs.map +1 -0
- package/package.json +360 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { createContext, memo, useMemo, useState, useCallback, useContext } from "react";
|
|
2
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
3
|
+
import { motion, AnimatePresence } from "framer-motion";
|
|
4
|
+
import styled, { useTheme, css } from "styled-components";
|
|
5
|
+
import { v4 } from "uuid";
|
|
6
|
+
import { c as Button } from "./component-DZxbW_Jz.js";
|
|
7
|
+
import { I as Icon } from "./component.styles-BapdQNhL.js";
|
|
8
|
+
import { g as getFontSizeStyles } from "./component-C2JFFh-k.js";
|
|
9
|
+
import { b as addTransition, a as addRemoveScrollbar } from "./style-CEGJOjRW.js";
|
|
10
|
+
const SonnerContext = createContext(null);
|
|
11
|
+
const ProviderSonner = (props) => {
|
|
12
|
+
var _a, _b, _c, _d, _e, _f;
|
|
13
|
+
const memoVisibleToasts = useMemo(
|
|
14
|
+
() => props.visibleToasts,
|
|
15
|
+
[props.visibleToasts]
|
|
16
|
+
);
|
|
17
|
+
const memoDefaultDescription = useMemo(
|
|
18
|
+
() => {
|
|
19
|
+
var _a2;
|
|
20
|
+
return (_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.description;
|
|
21
|
+
},
|
|
22
|
+
[(_a = props == null ? void 0 : props.default) == null ? void 0 : _a.description]
|
|
23
|
+
);
|
|
24
|
+
const memoDefaultTitle = useMemo(
|
|
25
|
+
() => {
|
|
26
|
+
var _a2;
|
|
27
|
+
return (_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.title;
|
|
28
|
+
},
|
|
29
|
+
[(_b = props == null ? void 0 : props.default) == null ? void 0 : _b.title]
|
|
30
|
+
);
|
|
31
|
+
const memoDefaultButton = useMemo(
|
|
32
|
+
() => {
|
|
33
|
+
var _a2;
|
|
34
|
+
return (_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.button;
|
|
35
|
+
},
|
|
36
|
+
[(_c = props == null ? void 0 : props.default) == null ? void 0 : _c.button]
|
|
37
|
+
);
|
|
38
|
+
const memoDefaultHidingTime = useMemo(
|
|
39
|
+
() => {
|
|
40
|
+
var _a2;
|
|
41
|
+
return (_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.hidingTime;
|
|
42
|
+
},
|
|
43
|
+
[(_d = props == null ? void 0 : props.default) == null ? void 0 : _d.hidingTime]
|
|
44
|
+
);
|
|
45
|
+
const memoDefaultHidingMode = useMemo(
|
|
46
|
+
() => {
|
|
47
|
+
var _a2;
|
|
48
|
+
return ((_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.hidingMode) ?? "clickOnButton";
|
|
49
|
+
},
|
|
50
|
+
[(_e = props == null ? void 0 : props.default) == null ? void 0 : _e.hidingMode]
|
|
51
|
+
);
|
|
52
|
+
const memoDefaultGenre = useMemo(
|
|
53
|
+
() => {
|
|
54
|
+
var _a2;
|
|
55
|
+
return ((_a2 = props == null ? void 0 : props.default) == null ? void 0 : _a2.genre) ?? DEFAULT_PROVIDER_SONNER_GENRE;
|
|
56
|
+
},
|
|
57
|
+
[(_f = props == null ? void 0 : props.default) == null ? void 0 : _f.genre]
|
|
58
|
+
);
|
|
59
|
+
const isTop = useMemo(() => props.position.includes("top"), [props.position]);
|
|
60
|
+
const [contentHistory, setContentHistory] = useState([]);
|
|
61
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
62
|
+
const handleMouseEnter = useCallback(() => {
|
|
63
|
+
setIsHovered(true);
|
|
64
|
+
}, []);
|
|
65
|
+
const handleMouseLeave = useCallback(() => {
|
|
66
|
+
setIsHovered(false);
|
|
67
|
+
}, []);
|
|
68
|
+
const remove = useCallback(
|
|
69
|
+
(id) => {
|
|
70
|
+
setContentHistory((prev) => {
|
|
71
|
+
const itemToRemove = prev.find((item) => item.id === id);
|
|
72
|
+
if (!itemToRemove) return prev;
|
|
73
|
+
const indexToRemove = itemToRemove.index;
|
|
74
|
+
const updatedHistory = prev.filter((item) => item.id !== id).map((item) => ({
|
|
75
|
+
...item,
|
|
76
|
+
index: item.index > indexToRemove ? item.index - 1 : item.index
|
|
77
|
+
}));
|
|
78
|
+
if (updatedHistory.length === 0) handleMouseLeave();
|
|
79
|
+
return updatedHistory;
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
[handleMouseLeave]
|
|
83
|
+
);
|
|
84
|
+
const toast = useCallback(
|
|
85
|
+
(content) => {
|
|
86
|
+
const id = content.id ?? v4();
|
|
87
|
+
const hidingTime = content.hidingTime ?? memoDefaultHidingTime;
|
|
88
|
+
setContentHistory((prev) => {
|
|
89
|
+
const existingIndex = prev.findIndex((item) => item.id === id);
|
|
90
|
+
let updatedHistory;
|
|
91
|
+
if (existingIndex !== -1) {
|
|
92
|
+
updatedHistory = [...prev];
|
|
93
|
+
updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };
|
|
94
|
+
} else {
|
|
95
|
+
updatedHistory = prev.map((item) => ({
|
|
96
|
+
...item,
|
|
97
|
+
index: item.index + 1
|
|
98
|
+
}));
|
|
99
|
+
const newContent = { ...content, id, index: 0 };
|
|
100
|
+
updatedHistory.unshift(newContent);
|
|
101
|
+
}
|
|
102
|
+
return updatedHistory;
|
|
103
|
+
});
|
|
104
|
+
if (hidingTime !== void 0) {
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
remove(id);
|
|
107
|
+
}, hidingTime);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
[memoDefaultHidingTime, remove]
|
|
111
|
+
);
|
|
112
|
+
const promise = useCallback(
|
|
113
|
+
(promise2, expectation, localToast) => {
|
|
114
|
+
const id = v4();
|
|
115
|
+
toast({ ...expectation, id, isLoading: true });
|
|
116
|
+
return promise2.then((result) => {
|
|
117
|
+
toast({ ...localToast(result, void 0), id });
|
|
118
|
+
}).catch((error) => {
|
|
119
|
+
toast({ ...localToast(void 0, error), id });
|
|
120
|
+
});
|
|
121
|
+
},
|
|
122
|
+
[toast]
|
|
123
|
+
);
|
|
124
|
+
const handleOnClick = useCallback(
|
|
125
|
+
(id) => {
|
|
126
|
+
remove(id);
|
|
127
|
+
},
|
|
128
|
+
[remove]
|
|
129
|
+
);
|
|
130
|
+
const theme = useTheme();
|
|
131
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(SonnerContext.Provider, { value: { toast, promise, remove, contentHistory }, children: [
|
|
132
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
133
|
+
SonnerLayout,
|
|
134
|
+
{
|
|
135
|
+
$zIndex: props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX,
|
|
136
|
+
$position: props.position,
|
|
137
|
+
$gap: props.gap,
|
|
138
|
+
onMouseEnter: handleMouseEnter,
|
|
139
|
+
onMouseLeave: handleMouseLeave,
|
|
140
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: contentHistory.map((content) => {
|
|
141
|
+
const index = content.index;
|
|
142
|
+
const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;
|
|
143
|
+
const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;
|
|
144
|
+
const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;
|
|
145
|
+
const localGenre = content.genre ?? memoDefaultGenre;
|
|
146
|
+
const buttonGenre = theme.colors.sonner[localGenre].button.genre;
|
|
147
|
+
const hidingMode = content.hidingMode ?? memoDefaultHidingMode;
|
|
148
|
+
const localContent = "content" in content ? content.content : false;
|
|
149
|
+
const localTitle = "title" in content ? content.title : false;
|
|
150
|
+
const localDescription = "description" in content ? content.description : false;
|
|
151
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
152
|
+
MemoizedSonnerElement,
|
|
153
|
+
{
|
|
154
|
+
isMoreThanLastViewIndexPlusOne,
|
|
155
|
+
isMoreThanLastViewIndex,
|
|
156
|
+
isLastViewIndex,
|
|
157
|
+
isTop,
|
|
158
|
+
id: content.id,
|
|
159
|
+
icon: content.icon,
|
|
160
|
+
isLoading: content.isLoading,
|
|
161
|
+
index,
|
|
162
|
+
buttonGenre,
|
|
163
|
+
hidingMode,
|
|
164
|
+
isHovered,
|
|
165
|
+
genre: localGenre,
|
|
166
|
+
content: localContent,
|
|
167
|
+
title: localTitle || memoDefaultTitle,
|
|
168
|
+
description: localDescription || memoDefaultDescription,
|
|
169
|
+
button: content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON,
|
|
170
|
+
handleOnClick
|
|
171
|
+
},
|
|
172
|
+
content.id
|
|
173
|
+
);
|
|
174
|
+
}) })
|
|
175
|
+
}
|
|
176
|
+
),
|
|
177
|
+
props.children
|
|
178
|
+
] });
|
|
179
|
+
};
|
|
180
|
+
const SonnerElement = (props) => {
|
|
181
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
182
|
+
motion.div,
|
|
183
|
+
{
|
|
184
|
+
layout: true,
|
|
185
|
+
initial: {
|
|
186
|
+
opacity: 0,
|
|
187
|
+
scale: 1,
|
|
188
|
+
y: props.isLastViewIndex ? !props.isTop ? -DEFAULT_PROVIDER_SONNER_Y : DEFAULT_PROVIDER_SONNER_Y : !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y
|
|
189
|
+
},
|
|
190
|
+
animate: {
|
|
191
|
+
y: 0,
|
|
192
|
+
opacity: props.isMoreThanLastViewIndex ? 0 : 1,
|
|
193
|
+
pointerEvents: props.isMoreThanLastViewIndex ? "none" : "auto",
|
|
194
|
+
display: props.isMoreThanLastViewIndex ? "none" : "flex",
|
|
195
|
+
scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,
|
|
196
|
+
marginTop: props.isTop ? props.isHovered || props.index === 0 ? `0px` : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px` : "0px",
|
|
197
|
+
marginBottom: !props.isTop ? props.isHovered || props.index === 0 ? `0px` : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px` : "0px"
|
|
198
|
+
},
|
|
199
|
+
style: {
|
|
200
|
+
zIndex: -props.index
|
|
201
|
+
},
|
|
202
|
+
whileInView: { opacity: props.isMoreThanLastViewIndex ? 0 : 1 },
|
|
203
|
+
exit: { opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y },
|
|
204
|
+
transition: { type: "spring", duration: DEFAULT_PROVIDER_SONNER_DURATION },
|
|
205
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
206
|
+
SonnerElementWrapper,
|
|
207
|
+
{
|
|
208
|
+
$genre: props.genre,
|
|
209
|
+
onClick: () => props.hidingMode === "clickOnSonner" && props.handleOnClick(props.id, "clickOnSonner"),
|
|
210
|
+
children: [
|
|
211
|
+
(props.isLoading || props.icon) && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerIcon, { children: props.isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: "medium", type: "loading", name: "Line" }) : props.icon && /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { name: props.icon, type: "id", size: "medium" }) }),
|
|
212
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SonnerContent, { children: props.content ? props.content : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
213
|
+
props.title && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerContentTitle, { $genre: props.genre, children: props.title }),
|
|
214
|
+
props.description && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerContentDescription, { $genre: props.genre, children: props.description })
|
|
215
|
+
] }) }),
|
|
216
|
+
props.button && props.button.content && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerButtonWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217
|
+
Button,
|
|
218
|
+
{
|
|
219
|
+
genre: props.buttonGenre,
|
|
220
|
+
size: "small",
|
|
221
|
+
onClick: () => props.hidingMode === "clickOnButton" && props.handleOnClick(props.id, "clickOnButton"),
|
|
222
|
+
children: props.button.content
|
|
223
|
+
}
|
|
224
|
+
) })
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
)
|
|
228
|
+
},
|
|
229
|
+
props.id
|
|
230
|
+
);
|
|
231
|
+
};
|
|
232
|
+
const MemoizedSonnerElement = memo(SonnerElement);
|
|
233
|
+
const useSonner = () => {
|
|
234
|
+
const context = useContext(SonnerContext);
|
|
235
|
+
if (!context) {
|
|
236
|
+
throw new Error("useSonner must be used within an ProviderSonner");
|
|
237
|
+
}
|
|
238
|
+
return context;
|
|
239
|
+
};
|
|
240
|
+
const SonnerLayout = styled.div`
|
|
241
|
+
position: fixed;
|
|
242
|
+
z-index: ${(props) => props.$zIndex};
|
|
243
|
+
max-height: calc(100dvh - 20px);
|
|
244
|
+
width: 320px;
|
|
245
|
+
display: flex;
|
|
246
|
+
margin: 10px;
|
|
247
|
+
gap: ${(props) => props.$gap}px;
|
|
248
|
+
box-sizing: content-box;
|
|
249
|
+
overflow-y: visible;
|
|
250
|
+
overflow-x: visible;
|
|
251
|
+
${addRemoveScrollbar}
|
|
252
|
+
${(props) => props.$position === "bottom-center" ? css`
|
|
253
|
+
bottom: 0;
|
|
254
|
+
left: 50%;
|
|
255
|
+
transform: translateX(-50%);
|
|
256
|
+
justify-content: flex-start;
|
|
257
|
+
flex-direction: column-reverse;
|
|
258
|
+
` : props.$position === "bottom-left" ? css`
|
|
259
|
+
left: 0;
|
|
260
|
+
bottom: 0;
|
|
261
|
+
justify-content: flex-start;
|
|
262
|
+
flex-direction: column-reverse;
|
|
263
|
+
` : props.$position === "bottom-right" ? css`
|
|
264
|
+
right: 0;
|
|
265
|
+
bottom: 0;
|
|
266
|
+
justify-content: flex-start;
|
|
267
|
+
flex-direction: column-reverse;
|
|
268
|
+
` : props.$position === "top-right" ? css`
|
|
269
|
+
top: 0;
|
|
270
|
+
right: 0;
|
|
271
|
+
justify-content: flex-end;
|
|
272
|
+
flex-direction: column;
|
|
273
|
+
` : props.$position === "top-left" ? css`
|
|
274
|
+
top: 0;
|
|
275
|
+
left: 0;
|
|
276
|
+
justify-content: flex-end;
|
|
277
|
+
flex-direction: column;
|
|
278
|
+
` : props.$position === "top-center" ? css`
|
|
279
|
+
top: 0;
|
|
280
|
+
left: 50%;
|
|
281
|
+
transform: translateX(-50%);
|
|
282
|
+
justify-content: flex-end;
|
|
283
|
+
flex-direction: column;
|
|
284
|
+
` : css``}
|
|
285
|
+
`;
|
|
286
|
+
const SonnerElementWrapper = styled.div`
|
|
287
|
+
background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};
|
|
288
|
+
color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};
|
|
289
|
+
border-radius: 12px;
|
|
290
|
+
border-style: solid;
|
|
291
|
+
border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};
|
|
292
|
+
border-width: 1px;
|
|
293
|
+
padding: 16px 20px 16px 20px;
|
|
294
|
+
display: flex;
|
|
295
|
+
flex-direction: row;
|
|
296
|
+
gap: 10px;
|
|
297
|
+
align-items: center;
|
|
298
|
+
justify-content: flex-start;
|
|
299
|
+
align-self: stretch;
|
|
300
|
+
flex-shrink: 0;
|
|
301
|
+
flex-shrink: 1;
|
|
302
|
+
min-width: 320px;
|
|
303
|
+
min-height: 64px;
|
|
304
|
+
transform-origin: center center;
|
|
305
|
+
box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};
|
|
306
|
+
overflow: visible;
|
|
307
|
+
&:hover {
|
|
308
|
+
box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};
|
|
309
|
+
}
|
|
310
|
+
${addTransition};
|
|
311
|
+
`;
|
|
312
|
+
const SonnerContent = styled.div`
|
|
313
|
+
display: flex;
|
|
314
|
+
flex-direction: column;
|
|
315
|
+
gap: 2px;
|
|
316
|
+
align-items: flex-start;
|
|
317
|
+
justify-content: flex-start;
|
|
318
|
+
align-self: stretch;
|
|
319
|
+
flex-shrink: 0;
|
|
320
|
+
flex: 1;
|
|
321
|
+
position: relative;
|
|
322
|
+
overflow: hidden;
|
|
323
|
+
`;
|
|
324
|
+
const SonnerIcon = styled.div`
|
|
325
|
+
display: contents;
|
|
326
|
+
`;
|
|
327
|
+
const SonnerContentTitle = styled.div`
|
|
328
|
+
${(props) => getFontSizeStyles(14, 700, props.theme.font.family)}
|
|
329
|
+
color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};
|
|
330
|
+
text-align: left;
|
|
331
|
+
display: flex;
|
|
332
|
+
align-items: center;
|
|
333
|
+
justify-content: flex-start;
|
|
334
|
+
`;
|
|
335
|
+
const SonnerContentDescription = styled.div`
|
|
336
|
+
${(props) => getFontSizeStyles(12, 400, props.theme.font.family)}
|
|
337
|
+
color:${(props) => props.theme.colors.sonner[props.$genre].description.color};
|
|
338
|
+
text-align: left;
|
|
339
|
+
position: relative;
|
|
340
|
+
display: flex;
|
|
341
|
+
align-items: center;
|
|
342
|
+
justify-content: flex-start;
|
|
343
|
+
`;
|
|
344
|
+
const SonnerButtonWrapper = styled.div``;
|
|
345
|
+
const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;
|
|
346
|
+
const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;
|
|
347
|
+
const DEFAULT_PROVIDER_SONNER_Y = 100;
|
|
348
|
+
const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;
|
|
349
|
+
const DEFAULT_PROVIDER_SONNER_GENRE = "black";
|
|
350
|
+
const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;
|
|
351
|
+
const DEFAULT_PROVIDER_SONNER_BUTTON = {
|
|
352
|
+
content: "Undo",
|
|
353
|
+
onClick: () => {
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
export {
|
|
357
|
+
DEFAULT_PROVIDER_SONNER_Z_INDEX as D,
|
|
358
|
+
ProviderSonner as P,
|
|
359
|
+
SonnerContext as S,
|
|
360
|
+
SonnerLayout as a,
|
|
361
|
+
SonnerElementWrapper as b,
|
|
362
|
+
SonnerContent as c,
|
|
363
|
+
SonnerIcon as d,
|
|
364
|
+
SonnerContentTitle as e,
|
|
365
|
+
SonnerContentDescription as f,
|
|
366
|
+
SonnerButtonWrapper as g,
|
|
367
|
+
DEFAULT_PROVIDER_SONNER_SCALE as h,
|
|
368
|
+
DEFAULT_PROVIDER_SONNER_Y as i,
|
|
369
|
+
DEFAULT_PROVIDER_SONNER_DURATION as j,
|
|
370
|
+
DEFAULT_PROVIDER_SONNER_GENRE as k,
|
|
371
|
+
DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM as l,
|
|
372
|
+
DEFAULT_PROVIDER_SONNER_BUTTON as m,
|
|
373
|
+
useSonner as u
|
|
374
|
+
};
|
|
375
|
+
//# sourceMappingURL=context.constants-DqYjo5m4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.constants-DqYjo5m4.js","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts"],"sourcesContent":["import { AnimatePresence, motion } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Button } from '@local/components/button'\nimport { Icon } from '@local/components/icon'\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout\n} from '.'\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null)\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = props => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts]\n )\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description]\n )\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title]\n )\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button]\n )\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime]\n )\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode]\n )\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre]\n )\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position])\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([])\n\n const [isHovered, setIsHovered] = useState(false)\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true)\n }, [])\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false)\n }, [])\n\n const remove: SonnerContextProps['remove'] = useCallback(\n id => {\n setContentHistory(prev => {\n const itemToRemove = prev.find(item => item.id === id)\n\n if (!itemToRemove) return prev\n\n const indexToRemove = itemToRemove.index\n\n const updatedHistory = prev\n .filter(item => item.id !== id)\n .map(item => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index\n }))\n\n if (updatedHistory.length === 0) handleMouseLeave()\n\n return updatedHistory\n })\n },\n [handleMouseLeave]\n )\n\n const toast: SonnerContextProps['toast'] = useCallback(\n content => {\n const id = content.id ?? uuidv4()\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime\n\n setContentHistory(prev => {\n const existingIndex = prev.findIndex(item => item.id === id)\n\n let updatedHistory\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev]\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index }\n } else {\n // Add new item\n updatedHistory = prev.map(item => ({\n ...item,\n index: item.index + 1\n }))\n const newContent = { ...content, id, index: 0 }\n updatedHistory.unshift(newContent)\n }\n\n return updatedHistory\n })\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id)\n }, hidingTime)\n }\n },\n [memoDefaultHidingTime, remove]\n )\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>\n ) => {\n const id = uuidv4()\n toast({ ...expectation, id, isLoading: true })\n\n return promise\n .then(result => {\n toast({ ...localToast(result, undefined), id })\n })\n .catch(error => {\n toast({ ...localToast(undefined, error), id })\n })\n },\n [toast]\n )\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id)\n },\n [remove]\n )\n const theme = useTheme()\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map(content => {\n const index = content.index\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false\n const localGenre = content.genre ?? memoDefaultGenre\n const buttonGenre = theme.colors.sonner[localGenre].button.genre\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode\n\n const localContent = 'content' in content ? content.content : false\n const localTitle = 'title' in content ? content.title : false\n const localDescription = 'description' in content ? content.description : false\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n )\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n )\n}\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px'\n }}\n style={{\n zIndex: -props.index\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size=\"medium\" type=\"loading\" name=\"Line\" />\n ) : (\n props.icon && <Icon name={props.icon} type=\"id\" size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && <SonnerContentTitle $genre={props.genre}>{props.title}</SonnerContentTitle>}\n {props.description && (\n <SonnerContentDescription $genre={props.genre}>{props.description}</SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size=\"small\"\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n )\n}\nconst MemoizedSonnerElement = memo(SonnerElement)\n","import { useContext } from 'react'\n\nimport { SonnerContext, SonnerContextProps } from '.'\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext)\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner')\n }\n return context\n}\n","import styled, { css } from 'styled-components'\n\nimport { getFontSizeStyles } from '@local/components/typography'\nimport { addRemoveScrollbar, addTransition } from '@local/styles/add'\n\nimport { SonnerContentDescriptionProps, SonnerContentTitleProps, SonnerElementWrapperProps, SonnerLayoutProps } from '.'\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${props => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${props => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${props =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${props => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${props => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${props => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${props => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${props => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`\nexport const SonnerIcon = styled.div`\n display: contents;\n`\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n ${props => getFontSizeStyles(14, 700, props.theme.font.family)}\n color: ${props => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n ${props => getFontSizeStyles(12, 400, props.theme.font.family)}\n color:${props => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`\nexport const SonnerButtonWrapper = styled.div``\n","import { ITheme } from '@local/theme'\n\nimport { ProviderSonnerProps } from '.'\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04\nexport const DEFAULT_PROVIDER_SONNER_Y = 100\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black'\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {}\n}\n"],"names":["_a","uuidv4","promise","jsxs","jsx","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react"),o=require("./jsx-runtime-BcGej2Kr.cjs"),i=require("js-cookie"),r=e.createContext(null),t=o=>{const[r,t]=e.useState(),a=e.useCallback(e=>{const o=i.get(String(e));return t(i=>({...i,[e]:o?JSON.parse(o):void 0})),o?JSON.parse(o):void 0},[]),s=e.useCallback((e,o,r)=>{try{i.set(String(e),JSON.stringify(o),r),t(i=>({...i,[e]:o}))}catch{console.info(`Provider Cookie. ChangeCookie error - key:${e}, value:${o}.`)}},[]),n=e.useCallback((e,o)=>{try{i.remove(String(e),o),t(o=>({...o,[e]:void 0}))}catch{console.info(`Provider Cookie. RemoveCookieValue error - key:${e}.`)}},[]),l=e.useCallback(()=>{var e;o.validate&&o.validate.validateKeys?null==(e=o.validate)||e.validateKeys.forEach(e=>{n(String(e))}):console.info("Provider Cookie. Validate is not defined.")},[o.validate,n]),c=e.useCallback(()=>{var e;o.validate&&o.validate.validateKeys&&o.validate.getValidateCookieValue?null==(e=o.validate)||e.validateKeys.forEach(e=>{var r;const a=i.get(String(e));if(a)try{const i=JSON.parse(a);(null==(r=o.validate)?void 0:r.getValidateCookieValue(String(e),i))?t(o=>({...o,[e]:i})):n(String(e))}catch{n(String(e))}else n(String(e))}):console.info("Provider Cookie. Validate is not defined.")},[o.validate,n]);return e.useEffect(()=>{c()},[c]),{getCookie:a,setCookie:s,removeCookieValue:n,removeCookieValues:l,checkCookie:c,cookieValues:r}};exports.CookieContext=r,exports.ProviderCookie=e=>{const{getCookie:i,setCookie:a,removeCookieValue:s,removeCookieValues:n,checkCookie:l,cookieValues:c}=t(e);return o.jsxRuntimeExports.jsx(r.Provider,{value:{getCookie:i,setCookie:a,removeCookieValue:s,removeCookieValues:n,checkCookie:l,cookieValues:c},children:e.children})},exports.getFromCookie=function(e){const o=i.get(e);if(o)try{return JSON.parse(o)}catch(r){return console.error(`Error parsing cookie item "${e}":`,r),null}return null},exports.setToCookie=function(e,o,r){try{const t=JSON.stringify(o);i.set(e,t,r)}catch(t){console.error(`Error setting cookie item "${e}":`,t)}},exports.useCookie=()=>{const o=e.useContext(r);if(!o)throw new Error("useCookie must be used within an ProviderCookie");return o};
|
|
2
|
+
//# sourceMappingURL=context.functions-80N-5MqM.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.functions-80N-5MqM.cjs","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.functions.ts","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["import Cookies from 'js-cookie'\nimport { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.'\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null)\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = props => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props)\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues\n }}\n >\n {props.children}\n </CookieContext.Provider>\n )\n}\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>()\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name))\n setCookieValues(prevState => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined\n }))\n return cookie ? JSON.parse(cookie) : undefined\n }, [])\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options)\n setCookieValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options)\n setCookieValues(prevState => ({ ...prevState, [name]: undefined }))\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`)\n }\n }, [])\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeCookieValue(String(key) as never)\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach(key => {\n const cookieValue = Cookies.get(String(key))\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue)\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never)\n } else {\n setCookieValues(prevState => ({\n ...prevState,\n [key]: parsedValue\n }))\n }\n } catch {\n removeCookieValue(String(key) as never)\n }\n } else {\n removeCookieValue(String(key) as never)\n }\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n useEffect(() => {\n checkCookie()\n }, [checkCookie])\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues }\n}\n","import Cookies from 'js-cookie'\n\nimport { CookieAttributes } from '.'\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value)\n Cookies.set(key, item, options)\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error)\n }\n}\n","import { useContext } from 'react'\n\nimport { CookieContext, CookieContextProps } from '.'\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext)\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie')\n }\n return context\n}\n"],"names":["CookieContext","createContext","useProviderCookie","props","cookieValues","setCookieValues","useState","getCookie","useCallback","name","cookie","Cookies","get","String","prevState","JSON","parse","changeCookie","value","options","set","stringify","console","info","removeCookieValue","remove","removeCookieValues","validate","validateKeys","_a","forEach","key","checkCookie","getValidateCookieValue","cookieValue","parsedValue","useEffect","setCookie","jsx","Provider","children","item","error","context","useContext","Error"],"mappings":"qGAQaA,EAAgBC,EAAAA,cAAyC,MA0ChEC,EAAqBC,IACzB,MAAOC,EAAcC,GAAmBC,aAElCC,EAAYC,cAAgDC,IAChE,MAAMC,EAASC,EAAQC,IAAIC,OAAOJ,IAKlC,OAJAJ,EAAgBS,IAAA,IACXA,EACHL,CAACA,GAAOC,EAASK,KAAKC,MAAMN,QAAU,KAEjCA,EAASK,KAAKC,MAAMN,QAAU,GACpC,IAEGO,EAAeT,EAAAA,YACnB,CAAoCC,EAASS,EAA6BC,KACxE,IACER,EAAQS,IAAIP,OAAOJ,GAAOM,KAAKM,UAAUH,GAAQC,GACjDd,EAAgBS,QAAmBA,EAAWL,CAACA,GAAOS,IAAQ,CAAA,MAE9DI,QAAQC,KAAK,6CAA6Cd,YAAeS,KAAQ,GAGrF,IAGIM,EAAoBhB,EAAAA,YAAY,CAAoCC,EAASU,KACjF,IACER,EAAQc,OAAOZ,OAAOJ,GAAOU,GAC7Bd,EAAgBS,QAAmBA,EAAWL,CAACA,QAAO,IAAY,CAAA,MAElEa,QAAQC,KAAK,kDAAkDd,KAAO,GAEvE,IAEGiB,EAAqBlB,EAAAA,YAAY,WACjCL,EAAMwB,UAAYxB,EAAMwB,SAASC,aACnC,OAAAC,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAAQC,IACnCP,EAAkBX,OAAOkB,MAG3BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAEdQ,EAAcxB,EAAAA,YAAY,WAC1BL,EAAMwB,UAAYxB,EAAMwB,SAASC,cAAgBzB,EAAMwB,SAASM,uBAClE,OAAAJ,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAAQC,UACnC,MAAMG,EAAcvB,EAAQC,IAAIC,OAAOkB,IACvC,GAAIG,EACF,IACE,MAAMC,EAAcpB,KAAKC,MAAMkB,IAC1B,OAAAL,EAAA1B,EAAMwB,eAAN,EAAAE,EAAgBI,uBAAuBpB,OAAOkB,GAAeI,IAGhE9B,EAAgBS,IAAA,IACXA,EACHiB,CAACA,GAAMI,KAJTX,EAAkBX,OAAOkB,GAM3B,CAAA,MAEAP,EAAkBX,OAAOkB,GAAa,MAGxCP,EAAkBX,OAAOkB,MAI7BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAMpB,OAJAY,EAAAA,UAAU,KACRJ,KACC,CAACA,IAEG,CAAEzB,YAAW8B,UAAWpB,EAAcO,oBAAmBE,qBAAoBM,cAAa5B,gEA9F5CD,IACrD,MAAMI,UAAEA,YAAW8B,EAAAb,kBAAWA,EAAAE,mBAAmBA,cAAoBM,EAAA5B,aAAaA,GAChFF,EAAkBC,GAEpB,SACEmC,kBAAAA,IAACtC,EAAcuC,SAAd,CACCrB,MAAO,CACLX,YACA8B,YACAb,oBACAE,qBACAM,cACA5B,gBAGDoC,SAAArC,EAAMqC,kCCzCN,SAA0BT,GAC/B,MAAMU,EAAO9B,EAAQC,IAAImB,GACzB,GAAIU,EACF,IACE,OAAO1B,KAAKC,MAAMyB,EAAI,OACfC,GAEP,OADApB,QAAQoB,MAAM,8BAA8BX,MAASW,GAC9C,IAAA,CAGX,OAAO,IACT,sBAEO,SAAwBX,EAAab,EAAUC,GACpD,IACE,MAAMsB,EAAO1B,KAAKM,UAAUH,GAC5BP,EAAQS,IAAIW,EAAKU,EAAMtB,EAAO,OACvBuB,GACPpB,QAAQoB,MAAM,8BAA8BX,MAASW,EAAK,CAE9D,oBCbyB,KACvB,MAAMC,EAAUC,EAAAA,WAAW5C,GAC3B,IAAK2C,EACH,MAAM,IAAIE,MAAM,mDAElB,OAAOF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const urlBase64ToUint8Array = (base64String) => {
|
|
2
|
+
const padding = "=".repeat((4 - base64String.length % 4) % 4);
|
|
3
|
+
const base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/");
|
|
4
|
+
const rawData = window.atob(base64);
|
|
5
|
+
const outputArray = new Uint8Array(rawData.length);
|
|
6
|
+
for (let i = 0; i < rawData.length; ++i) {
|
|
7
|
+
outputArray[i] = rawData.charCodeAt(i);
|
|
8
|
+
}
|
|
9
|
+
return outputArray;
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
urlBase64ToUint8Array as u
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=context.functions-B8FDl7nJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.functions-B8FDl7nJ.js","sources":["../src/contexts/context-permission/context.functions.ts"],"sourcesContent":["export const urlBase64ToUint8Array = (base64String: string) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4)\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n const outputArray = new Uint8Array(rawData.length)\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i)\n }\n\n return outputArray\n}\n"],"names":[],"mappings":"AAAO,MAAM,wBAAwB,CAAC,iBAAyB;AAC7D,QAAM,UAAU,IAAI,QAAQ,IAAK,aAAa,SAAS,KAAM,CAAC;AAC9D,QAAM,UAAU,eAAe,SAAS,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAE5E,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,cAAc,IAAI,WAAW,QAAQ,MAAM;AAEjD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAAG;AACvC,gBAAY,CAAC,IAAI,QAAQ,WAAW,CAAC;AAAA,EAAA;AAGvC,SAAO;AACT;"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { createContext, useState, useCallback, useEffect, useContext } from "react";
|
|
2
|
+
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
3
|
+
import Cookies from "js-cookie";
|
|
4
|
+
const CookieContext = createContext(null);
|
|
5
|
+
const ProviderCookie = (props) => {
|
|
6
|
+
const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } = useProviderCookie(props);
|
|
7
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
8
|
+
CookieContext.Provider,
|
|
9
|
+
{
|
|
10
|
+
value: {
|
|
11
|
+
getCookie,
|
|
12
|
+
setCookie,
|
|
13
|
+
removeCookieValue,
|
|
14
|
+
removeCookieValues,
|
|
15
|
+
checkCookie,
|
|
16
|
+
cookieValues
|
|
17
|
+
},
|
|
18
|
+
children: props.children
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
const useProviderCookie = (props) => {
|
|
23
|
+
const [cookieValues, setCookieValues] = useState();
|
|
24
|
+
const getCookie = useCallback((name) => {
|
|
25
|
+
const cookie = Cookies.get(String(name));
|
|
26
|
+
setCookieValues((prevState) => ({
|
|
27
|
+
...prevState,
|
|
28
|
+
[name]: cookie ? JSON.parse(cookie) : void 0
|
|
29
|
+
}));
|
|
30
|
+
return cookie ? JSON.parse(cookie) : void 0;
|
|
31
|
+
}, []);
|
|
32
|
+
const changeCookie = useCallback(
|
|
33
|
+
(name, value, options) => {
|
|
34
|
+
try {
|
|
35
|
+
Cookies.set(String(name), JSON.stringify(value), options);
|
|
36
|
+
setCookieValues((prevState) => ({ ...prevState, [name]: value }));
|
|
37
|
+
} catch {
|
|
38
|
+
console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
[]
|
|
42
|
+
);
|
|
43
|
+
const removeCookieValue = useCallback((name, options) => {
|
|
44
|
+
try {
|
|
45
|
+
Cookies.remove(String(name), options);
|
|
46
|
+
setCookieValues((prevState) => ({ ...prevState, [name]: void 0 }));
|
|
47
|
+
} catch {
|
|
48
|
+
console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);
|
|
49
|
+
}
|
|
50
|
+
}, []);
|
|
51
|
+
const removeCookieValues = useCallback(() => {
|
|
52
|
+
var _a;
|
|
53
|
+
if (props.validate && props.validate.validateKeys) {
|
|
54
|
+
(_a = props.validate) == null ? void 0 : _a.validateKeys.forEach((key) => {
|
|
55
|
+
removeCookieValue(String(key));
|
|
56
|
+
});
|
|
57
|
+
} else {
|
|
58
|
+
console.info("Provider Cookie. Validate is not defined.");
|
|
59
|
+
}
|
|
60
|
+
}, [props.validate, removeCookieValue]);
|
|
61
|
+
const checkCookie = useCallback(() => {
|
|
62
|
+
var _a;
|
|
63
|
+
if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {
|
|
64
|
+
(_a = props.validate) == null ? void 0 : _a.validateKeys.forEach((key) => {
|
|
65
|
+
var _a2;
|
|
66
|
+
const cookieValue = Cookies.get(String(key));
|
|
67
|
+
if (cookieValue) {
|
|
68
|
+
try {
|
|
69
|
+
const parsedValue = JSON.parse(cookieValue);
|
|
70
|
+
if (!((_a2 = props.validate) == null ? void 0 : _a2.getValidateCookieValue(String(key), parsedValue))) {
|
|
71
|
+
removeCookieValue(String(key));
|
|
72
|
+
} else {
|
|
73
|
+
setCookieValues((prevState) => ({
|
|
74
|
+
...prevState,
|
|
75
|
+
[key]: parsedValue
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
} catch {
|
|
79
|
+
removeCookieValue(String(key));
|
|
80
|
+
}
|
|
81
|
+
} else {
|
|
82
|
+
removeCookieValue(String(key));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
console.info("Provider Cookie. Validate is not defined.");
|
|
87
|
+
}
|
|
88
|
+
}, [props.validate, removeCookieValue]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
checkCookie();
|
|
91
|
+
}, [checkCookie]);
|
|
92
|
+
return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };
|
|
93
|
+
};
|
|
94
|
+
const useCookie = () => {
|
|
95
|
+
const context = useContext(CookieContext);
|
|
96
|
+
if (!context) {
|
|
97
|
+
throw new Error("useCookie must be used within an ProviderCookie");
|
|
98
|
+
}
|
|
99
|
+
return context;
|
|
100
|
+
};
|
|
101
|
+
function getFromCookie(key) {
|
|
102
|
+
const item = Cookies.get(key);
|
|
103
|
+
if (item) {
|
|
104
|
+
try {
|
|
105
|
+
return JSON.parse(item);
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error(`Error parsing cookie item "${key}":`, error);
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
function setToCookie(key, value, options) {
|
|
114
|
+
try {
|
|
115
|
+
const item = JSON.stringify(value);
|
|
116
|
+
Cookies.set(key, item, options);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
console.error(`Error setting cookie item "${key}":`, error);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
CookieContext as C,
|
|
123
|
+
ProviderCookie as P,
|
|
124
|
+
getFromCookie as g,
|
|
125
|
+
setToCookie as s,
|
|
126
|
+
useCookie as u
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=context.functions-BD15C8_y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.functions-BD15C8_y.js","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts","../src/contexts/context-cookie/context.functions.ts"],"sourcesContent":["import Cookies from 'js-cookie'\nimport { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.'\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null)\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = props => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props)\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues\n }}\n >\n {props.children}\n </CookieContext.Provider>\n )\n}\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>()\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name))\n setCookieValues(prevState => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined\n }))\n return cookie ? JSON.parse(cookie) : undefined\n }, [])\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options)\n setCookieValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options)\n setCookieValues(prevState => ({ ...prevState, [name]: undefined }))\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`)\n }\n }, [])\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeCookieValue(String(key) as never)\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach(key => {\n const cookieValue = Cookies.get(String(key))\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue)\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never)\n } else {\n setCookieValues(prevState => ({\n ...prevState,\n [key]: parsedValue\n }))\n }\n } catch {\n removeCookieValue(String(key) as never)\n }\n } else {\n removeCookieValue(String(key) as never)\n }\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n useEffect(() => {\n checkCookie()\n }, [checkCookie])\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues }\n}\n","import { useContext } from 'react'\n\nimport { CookieContext, CookieContextProps } from '.'\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext)\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie')\n }\n return context\n}\n","import Cookies from 'js-cookie'\n\nimport { CookieAttributes } from '.'\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value)\n Cookies.set(key, item, options)\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error)\n }\n}\n"],"names":["jsx","_a"],"mappings":";;;AAQO,MAAM,gBAAgB,cAAyC,IAAI;AAsBnE,MAAM,iBAA0C,CAAA,UAAS;AAC9D,QAAM,EAAE,WAAW,WAAW,mBAAmB,oBAAoB,aAAa,aAAA,IAChF,kBAAkB,KAAK;AAEzB,SACEA,kCAAAA;AAAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAA,MAAM;AAAA,IAAA;AAAA,EAAA;AAGb;AAEA,MAAM,oBAAoB,CAAC,UAA+B;AACxD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAA;AAExC,QAAM,YAAY,YAAY,CAAoC,SAA8C;AAC9G,UAAM,SAAS,QAAQ,IAAI,OAAO,IAAI,CAAC;AACvC,oBAAgB,CAAA,eAAc;AAAA,MAC5B,GAAG;AAAA,MACH,CAAC,IAAI,GAAG,SAAS,KAAK,MAAM,MAAM,IAAI;AAAA,IAAA,EACtC;AACF,WAAO,SAAS,KAAK,MAAM,MAAM,IAAI;AAAA,EAAA,GACpC,EAAE;AAEL,QAAM,eAAe;AAAA,IACnB,CAAoC,MAAS,OAA6B,YAA+B;AACvG,UAAI;AACF,gBAAQ,IAAI,OAAO,IAAI,GAAG,KAAK,UAAU,KAAK,GAAG,OAAO;AACxD,wBAAgB,CAAA,eAAc,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,QAAQ;AAAA,MAAA,QACxD;AACN,gBAAQ,KAAK,6CAA6C,IAAI,WAAW,KAAK,GAAG;AAAA,MAAA;AAAA,IACnF;AAAA,IAEF,CAAA;AAAA,EAAC;AAGH,QAAM,oBAAoB,YAAY,CAAoC,MAAS,YAA+B;AAChH,QAAI;AACF,cAAQ,OAAO,OAAO,IAAI,GAAG,OAAO;AACpC,sBAAgB,CAAA,eAAc,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,SAAY;AAAA,IAAA,QAC5D;AACN,cAAQ,KAAK,kDAAkD,IAAI,GAAG;AAAA,IAAA;AAAA,EACxE,GACC,EAAE;AAEL,QAAM,qBAAqB,YAAY,MAAM;;AAC3C,QAAI,MAAM,YAAY,MAAM,SAAS,cAAc;AACjD,kBAAM,aAAN,mBAAgB,aAAa,QAAQ,CAAA,QAAO;AAC1C,0BAAkB,OAAO,GAAG,CAAU;AAAA,MAAA;AAAA,IACvC,OACI;AACL,cAAQ,KAAK,2CAA2C;AAAA,IAAA;AAAA,EAC1D,GACC,CAAC,MAAM,UAAU,iBAAiB,CAAC;AAEtC,QAAM,cAAc,YAAY,MAAM;;AACpC,QAAI,MAAM,YAAY,MAAM,SAAS,gBAAgB,MAAM,SAAS,wBAAwB;AAC1F,kBAAM,aAAN,mBAAgB,aAAa,QAAQ,CAAA,QAAO;;AAC1C,cAAM,cAAc,QAAQ,IAAI,OAAO,GAAG,CAAC;AAC3C,YAAI,aAAa;AACf,cAAI;AACF,kBAAM,cAAc,KAAK,MAAM,WAAW;AAC1C,gBAAI,GAACC,MAAA,MAAM,aAAN,gBAAAA,IAAgB,uBAAuB,OAAO,GAAG,GAAY,eAAuB;AACvF,gCAAkB,OAAO,GAAG,CAAU;AAAA,YAAA,OACjC;AACL,8BAAgB,CAAA,eAAc;AAAA,gBAC5B,GAAG;AAAA,gBACH,CAAC,GAAG,GAAG;AAAA,cAAA,EACP;AAAA,YAAA;AAAA,UACJ,QACM;AACN,8BAAkB,OAAO,GAAG,CAAU;AAAA,UAAA;AAAA,QACxC,OACK;AACL,4BAAkB,OAAO,GAAG,CAAU;AAAA,QAAA;AAAA,MACxC;AAAA,IACD,OACI;AACL,cAAQ,KAAK,2CAA2C;AAAA,IAAA;AAAA,EAC1D,GACC,CAAC,MAAM,UAAU,iBAAiB,CAAC;AAEtC,YAAU,MAAM;AACd,gBAAA;AAAA,EAAY,GACX,CAAC,WAAW,CAAC;AAEhB,SAAO,EAAE,WAAW,WAAW,cAAc,mBAAmB,oBAAoB,aAAa,aAAA;AACnG;AClHO,MAAM,YAAY,MAA0B;AACjD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAAA;AAEnE,SAAO;AACT;ACbO,SAAS,cAAiB,KAAuB;AACtD,QAAM,OAAO,QAAQ,IAAI,GAAG;AAC5B,MAAI,MAAM;AACR,QAAI;AACF,aAAO,KAAK,MAAM,IAAI;AAAA,IAAA,SACf,OAAO;AACd,cAAQ,MAAM,8BAA8B,GAAG,MAAM,KAAK;AAC1D,aAAO;AAAA,IAAA;AAAA,EACT;AAEF,SAAO;AACT;AAEO,SAAS,YAAe,KAAa,OAAU,SAAkC;AACtF,MAAI;AACF,UAAM,OAAO,KAAK,UAAU,KAAK;AACjC,YAAQ,IAAI,KAAK,MAAM,OAAO;AAAA,EAAA,SACvB,OAAO;AACd,YAAQ,MAAM,8BAA8B,GAAG,MAAM,KAAK;AAAA,EAAA;AAE9D;"}
|