@jenesei-software/jenesei-kit-react 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/{AnimatePresence-19yP-TCg.js → AnimatePresence-BWc2vFe-.js} +2 -2
- package/build/{AnimatePresence-19yP-TCg.js.map → AnimatePresence-BWc2vFe-.js.map} +1 -1
- package/build/{AnimatePresence-BdBJCJuf.cjs → AnimatePresence-DeKd4Eek.cjs} +2 -2
- package/build/{AnimatePresence-BdBJCJuf.cjs.map → AnimatePresence-DeKd4Eek.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-skeleton.cjs.js +1 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/{button-BbGiFvok.js → button-C1w25-Hk.js} +4 -4
- package/build/{button-BbGiFvok.js.map → button-C1w25-Hk.js.map} +1 -1
- package/build/{button-BuPpgfL_.cjs → button-CHEeSypf.cjs} +2 -2
- package/build/{button-BuPpgfL_.cjs.map → button-CHEeSypf.cjs.map} +1 -1
- package/build/{checkbox-qgc_Ntc3.cjs → checkbox-Bxt8K0ZY.cjs} +2 -2
- package/build/{checkbox-qgc_Ntc3.cjs.map → checkbox-Bxt8K0ZY.cjs.map} +1 -1
- package/build/{checkbox-CXxWDklX.js → checkbox-DPkXe4_5.js} +5 -5
- package/build/{checkbox-CXxWDklX.js.map → checkbox-DPkXe4_5.js.map} +1 -1
- package/build/{component-jsn2T8Hu.cjs → component-CbJ_P8yq.cjs} +2 -2
- package/build/{component-jsn2T8Hu.cjs.map → component-CbJ_P8yq.cjs.map} +1 -1
- package/build/{component-BHyXT2-h.js → component-DGfyD5-u.js} +4 -4
- package/build/{component-BHyXT2-h.js.map → component-DGfyD5-u.js.map} +1 -1
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +1 -1
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.es.js +1 -1
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +1 -1
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.es.js +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-popover.cjs.js +1 -1
- package/build/component-popover.es.js +1 -1
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +5 -6
- package/build/component-separator.cjs.js +1 -1
- package/build/component-separator.es.js +1 -1
- package/build/component-stack.cjs.js +1 -1
- package/build/component-stack.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.es.js +1 -1
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +1 -1
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +1 -1
- package/build/components/select/component.examples.d.ts +1 -2
- package/build/components/select/component.types.d.ts +1 -5
- package/build/components/select/index.d.ts +2 -2
- package/build/components-error.cjs.js +1 -1
- package/build/components-error.es.js +1 -1
- package/build/{context-app-CMK9g6MI.js → context-app-C9XoarPw.js} +6 -6
- package/build/{context-app-CMK9g6MI.js.map → context-app-C9XoarPw.js.map} +1 -1
- package/build/{context-app-HhFcx1wY.cjs → context-app-Dsa1tKlU.cjs} +2 -2
- package/build/{context-app-HhFcx1wY.cjs.map → context-app-Dsa1tKlU.cjs.map} +1 -1
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +1 -1
- package/build/{context-browser-theme-Cb6siWO0.js → context-browser-theme-CRBCZ_y_.js} +2 -2
- package/build/{context-browser-theme-Cb6siWO0.js.map → context-browser-theme-CRBCZ_y_.js.map} +1 -1
- package/build/{context-browser-theme-Cso_rAT5.cjs → context-browser-theme-xixEbalV.cjs} +2 -2
- package/build/{context-browser-theme-Cso_rAT5.cjs.map → context-browser-theme-xixEbalV.cjs.map} +1 -1
- package/build/context-browser-theme.cjs.js +1 -1
- package/build/context-browser-theme.es.js +1 -1
- package/build/{context-cookie-Btkd2aXy.cjs → context-cookie-DFgWWGA9.cjs} +2 -2
- package/build/{context-cookie-Btkd2aXy.cjs.map → context-cookie-DFgWWGA9.cjs.map} +1 -1
- package/build/{context-cookie-5CBhf-gb.js → context-cookie-Daq2MZo3.js} +2 -2
- package/build/{context-cookie-5CBhf-gb.js.map → context-cookie-Daq2MZo3.js.map} +1 -1
- package/build/context-cookie.cjs.js +1 -1
- package/build/context-cookie.es.js +1 -1
- package/build/context-dialog-DctdSBC8.cjs +3 -0
- package/build/context-dialog-DctdSBC8.cjs.map +1 -0
- package/build/context-dialog-DzwL2ElF.js +191 -0
- package/build/context-dialog-DzwL2ElF.js.map +1 -0
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.es.js +1 -1
- package/build/{context-geolocation-C7PYGQ2g.js → context-geolocation-B_KYGlfQ.js} +2 -2
- package/build/{context-geolocation-C7PYGQ2g.js.map → context-geolocation-B_KYGlfQ.js.map} +1 -1
- package/build/{context-geolocation-CV4hV0NX.cjs → context-geolocation-bP0_455H.cjs} +2 -2
- package/build/{context-geolocation-CV4hV0NX.cjs.map → context-geolocation-bP0_455H.cjs.map} +1 -1
- package/build/context-geolocation.cjs.js +1 -1
- package/build/context-geolocation.es.js +1 -1
- package/build/{context-local-storage-Bb_vktd8.js → context-local-storage-DA_whw_k.js} +2 -2
- package/build/{context-local-storage-Bb_vktd8.js.map → context-local-storage-DA_whw_k.js.map} +1 -1
- package/build/{context-local-storage-DUKHVPAA.cjs → context-local-storage-D_x8dwxM.cjs} +2 -2
- package/build/{context-local-storage-DUKHVPAA.cjs.map → context-local-storage-D_x8dwxM.cjs.map} +1 -1
- package/build/context-local-storage.cjs.js +1 -1
- package/build/context-local-storage.es.js +1 -1
- package/build/{context-permission-DrcIwK9y.cjs → context-permission-BP9hPUcR.cjs} +2 -2
- package/build/{context-permission-DrcIwK9y.cjs.map → context-permission-BP9hPUcR.cjs.map} +1 -1
- package/build/{context-permission-Co4BKDOu.js → context-permission-Cj70kL4A.js} +2 -2
- package/build/{context-permission-Co4BKDOu.js.map → context-permission-Cj70kL4A.js.map} +1 -1
- package/build/context-permission.cjs.js +1 -1
- package/build/context-permission.es.js +1 -1
- package/build/{context-screen-width-hcRkxzy7.cjs → context-screen-width-Cfe3atNC.cjs} +2 -2
- package/build/{context-screen-width-hcRkxzy7.cjs.map → context-screen-width-Cfe3atNC.cjs.map} +1 -1
- package/build/{context-screen-width-CFexCIzV.js → context-screen-width-Cq_B7IVp.js} +3 -3
- package/build/{context-screen-width-CFexCIzV.js.map → context-screen-width-Cq_B7IVp.js.map} +1 -1
- package/build/context-screen-width.cjs.js +1 -1
- package/build/context-screen-width.es.js +1 -1
- package/build/{context-sonner-4gBa1F7G.cjs → context-sonner-Dqw0jhwT.cjs} +2 -2
- package/build/{context-sonner-4gBa1F7G.cjs.map → context-sonner-Dqw0jhwT.cjs.map} +1 -1
- package/build/{context-sonner-qDPLFpD5.js → context-sonner-MO6uE8y0.js} +12 -12
- package/build/{context-sonner-qDPLFpD5.js.map → context-sonner-MO6uE8y0.js.map} +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +1 -1
- package/build/contexts/context-app/context.d.ts +2 -2
- package/build/contexts/context-dialog/context.types.d.ts +3 -1
- package/build/contexts/context-dialog/index.d.ts +1 -1
- package/build/cores/consts.d.ts +0 -24
- package/build/cores/types.d.ts +0 -14
- package/build/date-picker-ATktGA1c.cjs +3 -0
- package/build/date-picker-ATktGA1c.cjs.map +1 -0
- package/build/date-picker-D81n3KbO.js +813 -0
- package/build/date-picker-D81n3KbO.js.map +1 -0
- package/build/{dist-DswBAjW1.cjs → dist-SXTf0-_7.cjs} +1 -1
- package/build/{dist-DswBAjW1.cjs.map → dist-SXTf0-_7.cjs.map} +1 -1
- package/build/{dist-BV0C3tLK.js → dist-ck-7oUux.js} +1 -1
- package/build/{dist-BV0C3tLK.js.map → dist-ck-7oUux.js.map} +1 -1
- package/build/{error-L2fvWcNv.js → error-BFb2NCum.js} +7 -7
- package/build/{error-L2fvWcNv.js.map → error-BFb2NCum.js.map} +1 -1
- package/build/{error-DzkkNL2H.cjs → error-BdFba_yV.cjs} +2 -2
- package/build/{error-DzkkNL2H.cjs.map → error-BdFba_yV.cjs.map} +1 -1
- package/build/{functions-Dwo54amB.cjs → functions-CZrZU5U0.cjs} +1 -1
- package/build/{functions-Dwo54amB.cjs.map → functions-CZrZU5U0.cjs.map} +1 -1
- package/build/{functions-CLGf7hqw.js → functions-DzX-pTN8.js} +1 -1
- package/build/{functions-CLGf7hqw.js.map → functions-DzX-pTN8.js.map} +1 -1
- package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
- package/build/hooks-use-deep-compare-memoize.es.js +1 -1
- package/build/hooks-use-deep-memo.cjs.js +1 -1
- package/build/hooks-use-deep-memo.es.js +1 -1
- package/build/hooks-use-responsive-layout.cjs.js +1 -1
- package/build/hooks-use-responsive-layout.es.js +1 -1
- package/build/hooks-use-typography-styles.cjs.js +1 -1
- package/build/hooks-use-typography-styles.es.js +2 -2
- package/build/icon-D2w7GViT.js +245 -0
- package/build/icon-D2w7GViT.js.map +1 -0
- package/build/icon-Ddkbk3-m.cjs +3 -0
- package/build/icon-Ddkbk3-m.cjs.map +1 -0
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +5 -5
- package/build/index.es.js +97 -98
- package/build/{input-CV02F03L.js → input-B9ceeR9v.js} +4 -4
- package/build/{input-CV02F03L.js.map → input-B9ceeR9v.js.map} +1 -1
- package/build/{input-zXF5f99Z.cjs → input-CmdwwrV2.cjs} +2 -2
- package/build/{input-zXF5f99Z.cjs.map → input-CmdwwrV2.cjs.map} +1 -1
- package/build/{input-otp-BVRCfoRK.cjs → input-otp-CJfZoWd7.cjs} +2 -2
- package/build/{input-otp-BVRCfoRK.cjs.map → input-otp-CJfZoWd7.cjs.map} +1 -1
- package/build/{input-otp-B9cYxJ7X.js → input-otp-CeMGm5Xq.js} +4 -4
- package/build/{input-otp-B9cYxJ7X.js.map → input-otp-CeMGm5Xq.js.map} +1 -1
- package/build/{isEqual-Qb81B2zH.js → isEqual-0jZ23Bb6.js} +1 -1
- package/build/{isEqual-Qb81B2zH.js.map → isEqual-0jZ23Bb6.js.map} +1 -1
- package/build/{isEqual-DeC2HFe5.cjs → isEqual-BA0P9-C8.cjs} +1 -1
- package/build/{isEqual-DeC2HFe5.cjs.map → isEqual-BA0P9-C8.cjs.map} +1 -1
- package/build/{logger-DZFY33QY.cjs → logger-D3Xu5ef3.cjs} +1 -1
- package/build/{logger-DZFY33QY.cjs.map → logger-D3Xu5ef3.cjs.map} +1 -1
- package/build/{logger-BRWLzI5S.js → logger-QC3A33gh.js} +1 -1
- package/build/{logger-BRWLzI5S.js.map → logger-QC3A33gh.js.map} +1 -1
- package/build/{motion-CAPq8wSn.cjs → motion-BWBldnsY.cjs} +2 -2
- package/build/{motion-CAPq8wSn.cjs.map → motion-BWBldnsY.cjs.map} +1 -1
- package/build/{motion-Dt6TyEjN.js → motion-C1XU2d68.js} +3 -3
- package/build/{motion-Dt6TyEjN.js.map → motion-C1XU2d68.js.map} +1 -1
- package/build/{outside-B3nRnDGb.cjs → outside-CXyCk8h1.cjs} +2 -2
- package/build/{outside-B3nRnDGb.cjs.map → outside-CXyCk8h1.cjs.map} +1 -1
- package/build/{outside-DpK1pI8b.js → outside-DopxX0PZ.js} +2 -2
- package/build/{outside-DpK1pI8b.js.map → outside-DopxX0PZ.js.map} +1 -1
- package/build/{pagination-YXSjZsMZ.js → pagination-BluJtJl7.js} +5 -5
- package/build/{pagination-YXSjZsMZ.js.map → pagination-BluJtJl7.js.map} +1 -1
- package/build/pagination-VMAFNidU.cjs +3 -0
- package/build/{pagination-Dbs4Lrpt.cjs.map → pagination-VMAFNidU.cjs.map} +1 -1
- package/build/{popover-1k1MNFwv.js → popover-DHWcQVp1.js} +3 -3
- package/build/{popover-1k1MNFwv.js.map → popover-DHWcQVp1.js.map} +1 -1
- package/build/{popover-CgwGn-55.cjs → popover-DQkn4RWI.cjs} +2 -2
- package/build/{popover-CgwGn-55.cjs.map → popover-DQkn4RWI.cjs.map} +1 -1
- package/build/preview-BLu-NOv2.cjs +3 -0
- package/build/{preview-dT7fmxcc.cjs.map → preview-BLu-NOv2.cjs.map} +1 -1
- package/build/{preview-C_yFxoFH.js → preview-Bc2qdyd4.js} +5 -5
- package/build/{preview-C_yFxoFH.js.map → preview-Bc2qdyd4.js.map} +1 -1
- package/build/{proxy-_gZenxVU.cjs → proxy-BDese6Pb.cjs} +1 -1
- package/build/{proxy-_gZenxVU.cjs.map → proxy-BDese6Pb.cjs.map} +1 -1
- package/build/{proxy-wCWa57J3.js → proxy-BFHkqO7P.js} +1 -1
- package/build/{proxy-wCWa57J3.js.map → proxy-BFHkqO7P.js.map} +1 -1
- package/build/{select-D7EyxR2l.js → select-CCbtkj6f.js} +862 -876
- package/build/{select-D7EyxR2l.js.map → select-CCbtkj6f.js.map} +1 -1
- package/build/{select-B0adRX2_.cjs → select-CGXyVf57.cjs} +5 -5
- package/build/{select-B0adRX2_.cjs.map → select-CGXyVf57.cjs.map} +1 -1
- package/build/{separator-CbeH8Lug.cjs → separator-BGVU_LQb.cjs} +2 -2
- package/build/{separator-CbeH8Lug.cjs.map → separator-BGVU_LQb.cjs.map} +1 -1
- package/build/{separator-hWp-s54-.js → separator-DJEhOPUT.js} +3 -3
- package/build/{separator-hWp-s54-.js.map → separator-DJEhOPUT.js.map} +1 -1
- package/build/{skeleton-DNwTI6w0.js → skeleton-Bh6zA5iB.js} +4 -4
- package/build/{skeleton-DNwTI6w0.js.map → skeleton-Bh6zA5iB.js.map} +1 -1
- package/build/{skeleton-BoVFwt7y.cjs → skeleton-DmaXsm9C.cjs} +2 -2
- package/build/{skeleton-BoVFwt7y.cjs.map → skeleton-DmaXsm9C.cjs.map} +1 -1
- package/build/style-motion.cjs.js +1 -1
- package/build/style-motion.es.js +1 -1
- package/build/style-utils.cjs.js +1 -1
- package/build/style-utils.es.js +1 -1
- package/build/styles/utils/types.d.ts +1 -1
- package/build/{textarea-CbZSeqGR.cjs → textarea-DInJb6Lz.cjs} +2 -2
- package/build/{textarea-CbZSeqGR.cjs.map → textarea-DInJb6Lz.cjs.map} +1 -1
- package/build/{textarea-ChkjV_Ha.js → textarea-jIGZ0JdP.js} +4 -4
- package/build/{textarea-ChkjV_Ha.js.map → textarea-jIGZ0JdP.js.map} +1 -1
- package/build/{toggle-gYw5FUp-.cjs → toggle-BEmUm0of.cjs} +2 -2
- package/build/{toggle-gYw5FUp-.cjs.map → toggle-BEmUm0of.cjs.map} +1 -1
- package/build/{toggle-I6YvEX4w.js → toggle-D1nXs-LD.js} +4 -4
- package/build/{toggle-I6YvEX4w.js.map → toggle-D1nXs-LD.js.map} +1 -1
- package/build/{typography-B2KioMfq.js → typography-07KEDl9_.js} +4 -4
- package/build/{typography-B2KioMfq.js.map → typography-07KEDl9_.js.map} +1 -1
- package/build/{typography-DcxhX_9e.cjs → typography-BKp4OAQI.cjs} +2 -2
- package/build/{typography-DcxhX_9e.cjs.map → typography-BKp4OAQI.cjs.map} +1 -1
- package/build/{utils-Cona48dZ.js → utils-BRgi6734.js} +1 -1
- package/build/{utils-Cona48dZ.js.map → utils-BRgi6734.js.map} +1 -1
- package/build/{utils-DtinAjAU.cjs → utils-DCIq-5FL.cjs} +1 -1
- package/build/{utils-DtinAjAU.cjs.map → utils-DCIq-5FL.cjs.map} +1 -1
- package/package.json +1 -1
- package/build/build-info.txt +0 -3
- package/build/context-dialog-B67-_jMH.cjs +0 -3
- package/build/context-dialog-B67-_jMH.cjs.map +0 -1
- package/build/context-dialog-CxGGmBqC.js +0 -176
- package/build/context-dialog-CxGGmBqC.js.map +0 -1
- package/build/date-picker-CPNNIEa-.cjs +0 -3
- package/build/date-picker-CPNNIEa-.cjs.map +0 -1
- package/build/date-picker-Uuce_InW.js +0 -689
- package/build/date-picker-Uuce_InW.js.map +0 -1
- package/build/icon-CoIQwke4.cjs +0 -3
- package/build/icon-CoIQwke4.cjs.map +0 -1
- package/build/icon-DzAWOQJg.js +0 -277
- package/build/icon-DzAWOQJg.js.map +0 -1
- package/build/pagination-Dbs4Lrpt.cjs +0 -3
- package/build/preview-dT7fmxcc.cjs +0 -3
package/build/{context-browser-theme-Cb6siWO0.js.map → context-browser-theme-CRBCZ_y_.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-browser-theme-
|
|
1
|
+
{"version":3,"file":"context-browser-theme-CRBCZ_y_.js","names":[],"sources":["../src/contexts/context-browser-theme/context.tsx","../src/contexts/context-browser-theme/context.hooks.ts"],"sourcesContent":["import { FC, useCallback, useEffect, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IBrowserTheme, IBrowserThemeContext, IBrowserThemeMode, IBrowserThemeProvider } from './context.types';\n\nexport const BrowserThemeContext = createContext<IBrowserThemeContext | null>(null);\n\nexport const ProviderBrowserTheme: FC<IBrowserThemeProvider> = (props) => {\n const [mode, setMode] = useState<IBrowserThemeMode>(props.defaultMode || 'auto');\n const [theme, setTheme] = useState<IBrowserTheme>(() => {\n if (props.defaultMode === 'auto') {\n return matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return props.defaultMode || 'light';\n });\n\n const handleMediaChange = useCallback(\n (e: MediaQueryListEvent) => {\n if (mode === 'auto') {\n setTheme(e.matches ? 'dark' : 'light');\n }\n },\n [mode],\n );\n\n useEffect(() => {\n if (mode === 'auto') {\n const media = matchMedia('(prefers-color-scheme: dark)');\n setTheme(media.matches ? 'dark' : 'light');\n media.addEventListener('change', handleMediaChange);\n return () => media.removeEventListener('change', handleMediaChange);\n } else {\n setTheme(mode);\n }\n }, [mode, handleMediaChange]);\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme);\n }, [theme]);\n\n useEffect(() => {\n if (props.defaultMode) setMode(props.defaultMode);\n }, [props.defaultMode]);\n\n return <BrowserThemeContext.Provider value={{ theme, mode, setMode }}>{props.children}</BrowserThemeContext.Provider>;\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { BrowserThemeContext } from './context';\nimport { IBrowserThemeContext, IUseBrowserThemeDependencies } from './context.types';\n\nexport const useIBrowserTheme = (props: IUseBrowserThemeDependencies): IBrowserThemeContext => {\n const context = useContextSelector(BrowserThemeContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useIBrowserTheme must be used within an ProviderBrowserTheme');\n }\n return context;\n};\n"],"mappings":";;;AAKA,IAAa,IAAsB,EAA2C,IAAA,GAEjE,IAAA,CAAmD,MAAU;AACxE,QAAM,CAAC,GAAM,CAAA,IAAW,EAA4B,EAAM,eAAe,MAAA,GACnE,CAAC,GAAO,CAAA,IAAY,EAAA,MACpB,EAAM,gBAAgB,SACjB,WAAW,8BAAA,EAAgC,UAAU,SAAS,UAEhE,EAAM,eAAe,UAGxB,IAAoB,EAAA,CACvB,MAA2B;AAC1B,IAAI,MAAS,UACX,EAAS,EAAE,UAAU,SAAS,OAAA;AAAA,KAGlC,CAAC,CAAA,CAAK;AAGR,SAAA,EAAA,MAAgB;AACd,QAAI,MAAS,QAAQ;AACnB,YAAM,IAAQ,WAAW,8BAAA;AACzB,aAAA,EAAS,EAAM,UAAU,SAAS,OAAA,GAClC,EAAM,iBAAiB,UAAU,CAAA,GACjC,MAAa,EAAM,oBAAoB,UAAU,CAAA;AAAA,UAEjD,CAAA,EAAS,CAAA;AAAA,KAEV,CAAC,GAAM,CAAA,CAAkB,GAE5B,EAAA,MAAgB;AACd,aAAS,gBAAgB,aAAa,cAAc,CAAA;AAAA,KACnD,CAAC,CAAA,CAAM,GAEV,EAAA,MAAgB;AACd,IAAI,EAAM,eAAa,EAAQ,EAAM,WAAA;AAAA,KACpC,CAAC,EAAM,WAAA,CAAY,GAEf,gBAAA,EAAC,EAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,MAAE,OAAA;AAAA,MAAO,MAAA;AAAA,MAAM,SAAA;AAAA;cAAY,EAAM;AAAA,GAAwC;GCvC1G,IAAA,CAAoB,MAA8D;AAC7F,QAAM,IAAU,EAAmB,GAAA,CAAsB,MAChD,IACH,EAAM,OAAA,CAAQ,GAAK,OACjB,EAAI,CAAA,IAAQ,EAAE,CAAA,GACP,IACN,CAAA,CAAE,IACL;AAEN,MAAI,CAAC,EACH,OAAM,IAAI,MAAM,8DAAA;AAElB,SAAO"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const m=require("./chunk-Dd8m0Ver.cjs"),i=require("./dist-
|
|
1
|
+
const m=require("./chunk-Dd8m0Ver.cjs"),i=require("./dist-SXTf0-_7.cjs");let c=require("react/jsx-runtime"),n=require("react");var s=i.createContext(null),h=e=>{const[t,a]=(0,n.useState)(e.defaultMode||"auto"),[r,u]=(0,n.useState)(()=>e.defaultMode==="auto"?matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e.defaultMode||"light"),d=(0,n.useCallback)(o=>{t==="auto"&&u(o.matches?"dark":"light")},[t]);return(0,n.useEffect)(()=>{if(t==="auto"){const o=matchMedia("(prefers-color-scheme: dark)");return u(o.matches?"dark":"light"),o.addEventListener("change",d),()=>o.removeEventListener("change",d)}else u(t)},[t,d]),(0,n.useEffect)(()=>{document.documentElement.setAttribute("data-theme",r)},[r]),(0,n.useEffect)(()=>{e.defaultMode&&a(e.defaultMode)},[e.defaultMode]),(0,c.jsx)(s.Provider,{value:{theme:r,mode:t,setMode:a},children:e.children})},l=e=>{const t=i.useContextSelector(s,a=>a?e.reduce((r,u)=>(r[u]=a[u],r),{}):null);if(!t)throw new Error("useIBrowserTheme must be used within an ProviderBrowserTheme");return t};Object.defineProperty(exports,"ProviderBrowserTheme",{enumerable:!0,get:function(){return h}});Object.defineProperty(exports,"useIBrowserTheme",{enumerable:!0,get:function(){return l}});
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=context-browser-theme-
|
|
3
|
+
//# sourceMappingURL=context-browser-theme-xixEbalV.cjs.map
|
package/build/{context-browser-theme-Cso_rAT5.cjs.map → context-browser-theme-xixEbalV.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-browser-theme-
|
|
1
|
+
{"version":3,"file":"context-browser-theme-xixEbalV.cjs","names":[],"sources":["../src/contexts/context-browser-theme/context.tsx","../src/contexts/context-browser-theme/context.hooks.ts"],"sourcesContent":["import { FC, useCallback, useEffect, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IBrowserTheme, IBrowserThemeContext, IBrowserThemeMode, IBrowserThemeProvider } from './context.types';\n\nexport const BrowserThemeContext = createContext<IBrowserThemeContext | null>(null);\n\nexport const ProviderBrowserTheme: FC<IBrowserThemeProvider> = (props) => {\n const [mode, setMode] = useState<IBrowserThemeMode>(props.defaultMode || 'auto');\n const [theme, setTheme] = useState<IBrowserTheme>(() => {\n if (props.defaultMode === 'auto') {\n return matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return props.defaultMode || 'light';\n });\n\n const handleMediaChange = useCallback(\n (e: MediaQueryListEvent) => {\n if (mode === 'auto') {\n setTheme(e.matches ? 'dark' : 'light');\n }\n },\n [mode],\n );\n\n useEffect(() => {\n if (mode === 'auto') {\n const media = matchMedia('(prefers-color-scheme: dark)');\n setTheme(media.matches ? 'dark' : 'light');\n media.addEventListener('change', handleMediaChange);\n return () => media.removeEventListener('change', handleMediaChange);\n } else {\n setTheme(mode);\n }\n }, [mode, handleMediaChange]);\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme);\n }, [theme]);\n\n useEffect(() => {\n if (props.defaultMode) setMode(props.defaultMode);\n }, [props.defaultMode]);\n\n return <BrowserThemeContext.Provider value={{ theme, mode, setMode }}>{props.children}</BrowserThemeContext.Provider>;\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { BrowserThemeContext } from './context';\nimport { IBrowserThemeContext, IUseBrowserThemeDependencies } from './context.types';\n\nexport const useIBrowserTheme = (props: IUseBrowserThemeDependencies): IBrowserThemeContext => {\n const context = useContextSelector(BrowserThemeContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useIBrowserTheme must be used within an ProviderBrowserTheme');\n }\n return context;\n};\n"],"mappings":"+HAKA,IAAa,EAAsB,EAAA,cAA2C,IAAA,EAEjE,EAAmD,GAAU,CACxE,KAAM,CAAC,EAAM,CAAA,KAAA,EAAA,UAAuC,EAAM,aAAe,MAAA,EACnE,CAAC,EAAO,CAAA,KAAA,EAAA,UAAA,IACR,EAAM,cAAgB,OACjB,WAAW,8BAAA,EAAgC,QAAU,OAAS,QAEhE,EAAM,aAAe,SAGxB,KAAA,EAAA,aACH,GAA2B,CACtB,IAAS,QACX,EAAS,EAAE,QAAU,OAAS,OAAA,GAGlC,CAAC,CAAA,CAAK,EAGR,SAAA,EAAA,WAAA,IAAgB,CACd,GAAI,IAAS,OAAQ,CACnB,MAAM,EAAQ,WAAW,8BAAA,EACzB,OAAA,EAAS,EAAM,QAAU,OAAS,OAAA,EAClC,EAAM,iBAAiB,SAAU,CAAA,EACjC,IAAa,EAAM,oBAAoB,SAAU,CAAA,OAEjD,EAAS,CAAA,GAEV,CAAC,EAAM,CAAA,CAAkB,KAE5B,EAAA,WAAA,IAAgB,CACd,SAAS,gBAAgB,aAAa,aAAc,CAAA,GACnD,CAAC,CAAA,CAAM,KAEV,EAAA,WAAA,IAAgB,CACV,EAAM,aAAa,EAAQ,EAAM,WAAA,GACpC,CAAC,EAAM,WAAA,CAAY,KAEf,EAAA,KAAC,EAAoB,SAArB,CAA8B,MAAO,CAAE,MAAA,EAAO,KAAA,EAAM,QAAA,YAAY,EAAM,SAAwC,GCvC1G,EAAoB,GAA8D,CAC7F,MAAM,EAAU,EAAA,mBAAmB,EAAsB,GAChD,EACH,EAAM,OAAA,CAAQ,EAAK,KACjB,EAAI,CAAA,EAAQ,EAAE,CAAA,EACP,GACN,CAAA,CAAE,EACL,MAEN,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,8DAAA,EAElB,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-browser-theme-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-browser-theme-xixEbalV.cjs");exports.ProviderBrowserTheme=e.ProviderBrowserTheme;exports.useIBrowserTheme=e.useIBrowserTheme;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const P=require("./chunk-Dd8m0Ver.cjs"),f=require("./logger-
|
|
1
|
+
const P=require("./chunk-Dd8m0Ver.cjs"),f=require("./logger-D3Xu5ef3.cjs");let V=require("react/jsx-runtime"),s=require("react");function C(e){for(var l=1;l<arguments.length;l++){var c=arguments[l];for(var d in c)e[d]=c[d]}return e}var p={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function k(e,l){function c(i,t,r){if(!(typeof document>"u")){r=C({},l,r),typeof r.expires=="number"&&(r.expires=new Date(Date.now()+r.expires*864e5)),r.expires&&(r.expires=r.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var u="";for(var o in r)r[o]&&(u+="; "+o,r[o]!==!0&&(u+="="+r[o].split(";")[0]));return document.cookie=i+"="+e.write(t,i)+u}}function d(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var t=document.cookie?document.cookie.split("; "):[],r={},u=0;u<t.length;u++){var o=t[u].split("="),n=o.slice(1).join("=");try{var a=decodeURIComponent(o[0]);if(r[a]=e.read(n,a),i===a)break}catch{}}return i?r[i]:r}}return Object.create({set:c,get:d,remove:function(i,t){c(i,"",C({},t,{expires:-1}))},withAttributes:function(i){return k(this.converter,C({},this.attributes,i))},withConverter:function(i){return k(C({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(l)},converter:{value:Object.freeze(e)}})}var g=k(p,{path:"/"}),h=(0,s.createContext)(null),S=e=>{const{getCookie:l,setCookie:c,removeCookieValue:d,removeCookieValues:i,checkCookie:t,cookieValues:r}=x(e);return(0,V.jsx)(h.Provider,{value:{getCookie:l,setCookie:c,removeCookieValue:d,removeCookieValues:i,checkCookie:t,cookieValues:r},children:e.children})},x=e=>{const[l,c]=(0,s.useState)(),d=(0,s.useCallback)(o=>{const n=g.get(String(o));return c(a=>({...a,[o]:n?JSON.parse(n):void 0})),n?JSON.parse(n):void 0},[]),i=(0,s.useCallback)((o,n,a)=>{try{g.set(String(o),JSON.stringify(n),a),c(v=>({...v,[o]:n}))}catch{f.logger.info(`Provider Cookie. ChangeCookie error - key:${o}, value:${n}.`)}},[]),t=(0,s.useCallback)((o,n)=>{try{g.remove(String(o),n),c(a=>({...a,[o]:void 0}))}catch{f.logger.info(`Provider Cookie. RemoveCookieValue error - key:${o}.`)}},[]),r=(0,s.useCallback)(()=>{e.validate?.validateKeys?e.validate?.validateKeys.forEach(o=>{t(String(o))}):f.logger.info("Provider Cookie. Validate is not defined.")},[e.validate,t]),u=(0,s.useCallback)(()=>{e.validate?.validateKeys&&e.validate.getValidateCookieValue?e.validate?.validateKeys.forEach(o=>{const n=g.get(String(o));if(n)try{const a=JSON.parse(n);e.validate?.getValidateCookieValue(String(o),a)?c(v=>({...v,[o]:a})):t(String(o))}catch{t(String(o))}else t(String(o))}):f.logger.info("Provider Cookie. Validate is not defined.")},[e.validate,t]);return(0,s.useEffect)(()=>{u()},[u]),(0,s.useEffect)(()=>()=>{c(void 0)},[]),{getCookie:d,setCookie:i,removeCookieValue:t,removeCookieValues:r,checkCookie:u,cookieValues:l}},m=()=>{const e=(0,s.useContext)(h);if(!e)throw new Error("useCookie must be used within an ProviderCookie");return e};Object.defineProperty(exports,"ProviderCookie",{enumerable:!0,get:function(){return S}});Object.defineProperty(exports,"useCookie",{enumerable:!0,get:function(){return m}});
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=context-cookie-
|
|
3
|
+
//# sourceMappingURL=context-cookie-DFgWWGA9.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-cookie-Btkd2aXy.cjs","names":[],"sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { logger } from '@local/cores/logger';\n\nimport Cookies from 'js-cookie';\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ICookieAttributes, ICookieContext, ICookieProvider, IValidCookieObject } from './context.types';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<ICookieContext | 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 IValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ICookieProvider> = (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: ICookieProvider) => {\n const [cookieValues, setCookieValues] = useState<IValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof IValidCookieObject>(name: K): IValidCookieObject[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 IValidCookieObject>(name: K, value: IValidCookieObject[K], options?: ICookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof IValidCookieObject>(name: K, options?: ICookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n logger.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (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 logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n useEffect(() => {\n return () => {\n setCookieValues(undefined);\n };\n }, []);\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import { useContext } from 'react';\n\nimport { CookieContext } from './context';\nimport { ICookieContext } from './context.types';\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 = (): ICookieContext => {\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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-cookie-DFgWWGA9.cjs","names":[],"sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { logger } from '@local/cores/logger';\n\nimport Cookies from 'js-cookie';\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ICookieAttributes, ICookieContext, ICookieProvider, IValidCookieObject } from './context.types';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<ICookieContext | 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 IValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ICookieProvider> = (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: ICookieProvider) => {\n const [cookieValues, setCookieValues] = useState<IValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof IValidCookieObject>(name: K): IValidCookieObject[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 IValidCookieObject>(name: K, value: IValidCookieObject[K], options?: ICookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof IValidCookieObject>(name: K, options?: ICookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n logger.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (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 logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n useEffect(() => {\n return () => {\n setCookieValues(undefined);\n };\n }, []);\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import { useContext } from 'react';\n\nimport { CookieContext } from './context';\nimport { ICookieContext } from './context.types';\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 = (): ICookieContext => {\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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as u } from "./logger-
|
|
1
|
+
import { t as u } from "./logger-QC3A33gh.js";
|
|
2
2
|
import { jsx as V } from "react/jsx-runtime";
|
|
3
3
|
import { createContext as m, useCallback as v, useContext as S, useEffect as h, useState as x } from "react";
|
|
4
4
|
function C(e) {
|
|
@@ -135,4 +135,4 @@ export {
|
|
|
135
135
|
j as t
|
|
136
136
|
};
|
|
137
137
|
|
|
138
|
-
//# sourceMappingURL=context-cookie-
|
|
138
|
+
//# sourceMappingURL=context-cookie-Daq2MZo3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-cookie-5CBhf-gb.js","names":[],"sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { logger } from '@local/cores/logger';\n\nimport Cookies from 'js-cookie';\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ICookieAttributes, ICookieContext, ICookieProvider, IValidCookieObject } from './context.types';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<ICookieContext | 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 IValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ICookieProvider> = (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: ICookieProvider) => {\n const [cookieValues, setCookieValues] = useState<IValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof IValidCookieObject>(name: K): IValidCookieObject[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 IValidCookieObject>(name: K, value: IValidCookieObject[K], options?: ICookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof IValidCookieObject>(name: K, options?: ICookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n logger.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (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 logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n useEffect(() => {\n return () => {\n setCookieValues(undefined);\n };\n }, []);\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import { useContext } from 'react';\n\nimport { CookieContext } from './context';\nimport { ICookieContext } from './context.types';\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 = (): ICookieContext => {\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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-cookie-Daq2MZo3.js","names":[],"sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { logger } from '@local/cores/logger';\n\nimport Cookies from 'js-cookie';\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ICookieAttributes, ICookieContext, ICookieProvider, IValidCookieObject } from './context.types';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<ICookieContext | 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 IValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ICookieProvider> = (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: ICookieProvider) => {\n const [cookieValues, setCookieValues] = useState<IValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof IValidCookieObject>(name: K): IValidCookieObject[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 IValidCookieObject>(name: K, value: IValidCookieObject[K], options?: ICookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof IValidCookieObject>(name: K, options?: ICookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n logger.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (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 logger.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n useEffect(() => {\n return () => {\n setCookieValues(undefined);\n };\n }, []);\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import { useContext } from 'react';\n\nimport { CookieContext } from './context';\nimport { ICookieContext } from './context.types';\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 = (): ICookieContext => {\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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-cookie-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-cookie-DFgWWGA9.cjs");exports.ProviderCookie=e.ProviderCookie;exports.useCookie=e.useCookie;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const U=require("./chunk-Dd8m0Ver.cjs"),v=require("./utils-DCIq-5FL.cjs"),C=require("./functions-CZrZU5U0.cjs"),f=require("./proxy-BDese6Pb.cjs"),O=require("./AnimatePresence-DeKd4Eek.cjs"),L=require("./outside-CXyCk8h1.cjs"),S=require("./hooks-use-deep-compare-memoize.cjs.js"),p=require("./dist-SXTf0-_7.cjs"),b=require("./v4-BDi_Luux.cjs");let x=require("react/jsx-runtime"),t=require("react");var h="fillDarkStable",I=v.CSS_CLASS.context.dialog,q=()=>I.layout,T=e=>({backgroundColor:v.CSS_VARS.palette.fillSecondaryLightStable,zIndex:e.zIndex}),M=e=>({maxWidth:e.propsDialog?.maxWidth||"max-content",maxHeight:e.propsDialog?.maxHeight||"max-content",borderRadius:e.propsDialog?.borderRadius||"12px",background:e.propsDialog?.background?v.CSS_VARS.palette[e.propsDialog.background]:v.CSS_VARS.palette[h],padding:e.propsDialog?.padding||"20px"}),y=p.createContext(null),k=e=>{const[a,l]=(0,t.useState)([]),c=q(),d=(0,t.useCallback)(i=>{l(s=>{const u=s.find(o=>o.id===i);if(u===void 0)return s;const n=u.index;return n===void 0?s:s.filter(o=>o.id!==i).map(o=>{const _=o.index;return _===void 0?o:{...o,index:_>n?_-1:o.index}})})},[]),g=(0,t.useCallback)(i=>{l(s=>s.map(u=>u.id===i.id?{...u,...i}:u))},[]),m=(0,t.useCallback)(i=>{const s=i.id;l(u=>{const n=u.findIndex(_=>_.id===s);let o;if(n!==-1)o=[...u],o[n]={...i,id:s,index:u[n].index};else{o=u.map(E=>{const R=E.index;return R===void 0?E:{...E,index:R+1}});const _={...i,id:s,index:0};o.unshift(_)}return o})},[]),r=(0,t.useMemo)(()=>a.length,[a.length]),D=(0,t.useMemo)(()=>e.zIndex,[e.zIndex]);return(0,t.useEffect)(()=>()=>{l([])},[]),(0,x.jsxs)(y.Provider,{value:{add:m,remove:d,update:g,dialogHistory:a},children:[(0,x.jsx)(O.AnimatePresence,{children:r&&(0,x.jsx)(f.motion.div,{className:c,style:T({zIndex:D}),initial:{opacity:0},exit:{opacity:0},animate:{opacity:1},transition:{type:"spring",duration:.4},children:[...a].reverse().map(i=>(0,x.jsx)(N,{index:i.index,props:i.props,id:i.id,onRemove:i.onRemove},i.id))})}),e.children]})},P=e=>{const[a,l]=(0,t.useState)(!0),c=(0,t.useMemo)(()=>({...M({propsDialog:e.props?.propsDialog})}),[e.props?.propsDialog]),d=(0,t.useMemo)(()=>({position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:e.index===0?"auto":"none"}),[e.index]),g=(0,t.useMemo)(()=>e.props?.propsDialog?.isRemoveOnOutsideClick??!0,[e.props?.propsDialog?.isRemoveOnOutsideClick]),m=(0,t.useCallback)(()=>{e.props?.onRemove?.(),e.onRemove?.()},[e.onRemove,e.props?.onRemove]),r=e.props?.content,D=(0,t.useMemo)(()=>e.id===void 0||r===void 0?null:(0,x.jsx)(r,{remove:m,isAnimating:a,propsCustom:e.props?.propsCustom,id:e.id}),[r,a,e.props?.propsCustom,m,e.id]);return e.index!==void 0&&(0,x.jsx)("div",{style:d,children:(0,x.jsx)(L.Outside,{onOutsideClick:()=>e.index===0&&g&&m?.(),children:(0,x.jsx)(f.motion.dialog,{className:C.setClasses([I.element]),initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},onAnimationComplete:()=>l(!1),transition:{type:"spring",duration:.3,delay:.4},style:c,children:D},e.id)})})},N=(0,t.memo)(P),A=e=>{const a=p.useContextSelector(y,l=>l?e.reduce((c,d)=>(c[d]=l[d],c),{}):null);if(!a)throw new Error("useDialogs must be used within an DialogContext");return a},j=e=>{const{add:a,remove:l,update:c,dialogHistory:d}=A(["add","remove","update","dialogHistory"]),[g,m]=(0,t.useState)(null),r=(0,t.useRef)(null),D=S.useDeepCompareMemoize(e),i=(0,t.useMemo)(()=>g!==null&&d.some(n=>n.id===g),[d,g]),s=(0,t.useCallback)(()=>{const n=r.current;n&&(m(null),r.current=null,l(n))},[l]),u=(0,t.useCallback)(()=>{if(r.current)return;const n=b.v4();m(n),r.current=n,a({id:n,props:D,onRemove:()=>{s(),D?.onRemove?.()}})},[a,D,s]);return(0,t.useEffect)(()=>{const n=r.current;n&&(d.some(o=>o.id===n)||(m(null),r.current=null))},[d]),(0,t.useEffect)(()=>{r.current&&c({id:r.current,props:D})},[D,c]),{add:u,remove:s,id:g,isOpen:i}};Object.defineProperty(exports,"ProviderDialog",{enumerable:!0,get:function(){return k}});Object.defineProperty(exports,"useDialog",{enumerable:!0,get:function(){return j}});Object.defineProperty(exports,"useDialogs",{enumerable:!0,get:function(){return A}});
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=context-dialog-DctdSBC8.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-dialog-DctdSBC8.cjs","names":[],"sources":["../src/contexts/context-dialog/context.constants.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts"],"sourcesContent":["import { IThemePalette } from '@local/styles/utils';\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3;\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4;\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePalette = 'fillDarkStable';\n","import { CSS_CLASS, CSS_VARS } from '@local/styles/utils';\n\nimport { CSSProperties } from 'react';\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n} from './context.constants';\nimport { IDialogElementStyle, IDialogLayoutStyle } from './context.types';\n\nexport const DialogClass = CSS_CLASS.context.dialog;\n\nexport const getDialogLayoutClassName = () => DialogClass.layout;\n\nexport const getDialogLayoutStyle = (props: IDialogLayoutStyle): CSSProperties => ({\n backgroundColor: CSS_VARS.palette.fillSecondaryLightStable,\n zIndex: props.zIndex,\n});\n\nexport const getDialogElementStyle = (props: IDialogElementStyle): CSSProperties => ({\n maxWidth: props.propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n maxHeight: props.propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n borderRadius: props.propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n background: props.propsDialog?.background\n ? CSS_VARS.palette[props.propsDialog.background]\n : CSS_VARS.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND],\n padding: props.propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n});\n","import { Outside } from '@local/areas/outside';\nimport { setClasses } from '@local/styles/utils/functions';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT, DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT } from './context.constants';\nimport { DialogClass, getDialogElementStyle, getDialogLayoutClassName, getDialogLayoutStyle } from './context.styles';\nimport { IDialogContent, IDialogContext, IDialogElement, IDialogProvider } from './context.types';\n\nexport const DialogContext = createContext<IDialogContext | null>(null);\n\nexport const ProviderDialog: FC<IDialogProvider> = (props) => {\n const [dialogHistory, setDialogHistory] = useState<IDialogContent[]>([]);\n const classNameDialogLayout = getDialogLayoutClassName();\n\n const remove: IDialogContext['remove'] = useCallback((id) => {\n setDialogHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (itemToRemove === undefined) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n if (indexToRemove === undefined) return prev;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => {\n const index = item.index;\n if (index === undefined) return item;\n\n return {\n ...item,\n index: index > indexToRemove ? index - 1 : item.index,\n };\n });\n\n return updatedHistory;\n });\n }, []);\n\n const update: IDialogContext['update'] = useCallback((dialog) => {\n setDialogHistory((prev) => {\n return prev.map((item) => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog };\n }\n return item;\n });\n });\n }, []);\n\n const add: IDialogContext['add'] = useCallback((dialog) => {\n const id = dialog.id;\n\n setDialogHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory: IDialogContent[];\n\n if (existingIndex !== -1) {\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index };\n } else {\n updatedHistory = prev.map((item) => {\n const index = item.index;\n if (index === undefined) return item;\n\n return {\n ...item,\n index: index + 1,\n };\n });\n const newContent = { ...dialog, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n }, []);\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length]);\n const zIndex = useMemo(() => props.zIndex, [props.zIndex]);\n\n useEffect(() => {\n return () => {\n setDialogHistory([]);\n };\n }, []);\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <motion.div\n className={classNameDialogLayout}\n style={getDialogLayoutStyle({ zIndex })}\n initial={{\n opacity: 0,\n }}\n exit={{\n opacity: 0,\n }}\n animate={{\n opacity: 1,\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {[...dialogHistory].reverse().map((dialog) => {\n return (\n <MemoizedDialogElement\n key={dialog.id}\n index={dialog.index}\n props={dialog.props}\n id={dialog.id}\n onRemove={dialog.onRemove}\n />\n );\n })}\n </motion.div>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n );\n};\n\nconst DialogElement = (props: IDialogElement<Record<string, unknown>>) => {\n const [isAnimating, setIsAnimating] = useState(true);\n const styleDialogElement = useMemo(() => {\n return {\n ...getDialogElementStyle({\n propsDialog: props.props?.propsDialog,\n }),\n };\n }, [props.props?.propsDialog]);\n const styleDialogLayer = useMemo<CSSProperties>(() => {\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: props.index === 0 ? 'auto' : 'none',\n };\n }, [props.index]);\n\n const isRemoveOnOutsideClick = useMemo(\n () => props.props?.propsDialog?.isRemoveOnOutsideClick ?? true,\n [props.props?.propsDialog?.isRemoveOnOutsideClick],\n );\n const onRemove = useCallback(() => {\n props.props?.onRemove?.();\n props.onRemove?.();\n }, [props.onRemove, props.props?.onRemove]);\n\n const Content = props.props?.content;\n const children = useMemo(() => {\n if (props.id === undefined || Content === undefined) return null;\n\n return <Content remove={onRemove} isAnimating={isAnimating} propsCustom={props.props?.propsCustom} id={props.id} />;\n }, [Content, isAnimating, props.props?.propsCustom, onRemove, props.id]);\n return (\n props.index !== undefined && (\n <div style={styleDialogLayer}>\n <Outside onOutsideClick={() => props.index === 0 && isRemoveOnOutsideClick && onRemove?.()}>\n <motion.dialog\n key={props.id}\n className={setClasses([DialogClass.element])}\n initial={{\n opacity: 0,\n scale: 0.8,\n }}\n animate={{\n opacity: 1,\n scale: 1,\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n }}\n style={styleDialogElement}\n >\n {children}\n </motion.dialog>\n </Outside>\n </div>\n )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useContextSelector } from 'use-context-selector';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { DialogContext } from './context';\nimport { IDialogContext, IDialogItem, IUseDialog, IUseDialogDependencies } from './context.types';\n\nexport const useDialogs = (props: IUseDialogDependencies): IDialogContext => {\n const context = useContextSelector(DialogContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useDialogs must be used within an DialogContext');\n }\n return context;\n};\n\nexport const useDialog = <T extends object = Record<string, unknown>>(props?: IUseDialog<T>): IDialogItem => {\n const { add, remove, update, dialogHistory } = useDialogs(['add', 'remove', 'update', 'dialogHistory']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n const isOpen = useMemo(() => {\n return id !== null && dialogHistory.some((dialog) => dialog.id === id);\n }, [dialogHistory, id]);\n\n const localRemove = useCallback(() => {\n const dialogId = refId.current;\n\n if (!dialogId) return;\n\n setId(null);\n refId.current = null;\n remove(dialogId);\n }, [remove]);\n\n const localAdd: IDialogItem['add'] = useCallback(() => {\n if (refId.current) return;\n const dialogId = uuidv4();\n setId(dialogId);\n refId.current = dialogId;\n add({\n id: dialogId,\n props: propsMemo as IUseDialog<Record<string, unknown>>,\n onRemove: () => {\n localRemove();\n propsMemo?.onRemove?.();\n },\n });\n }, [add, propsMemo, localRemove]);\n\n useEffect(() => {\n const dialogId = refId.current;\n\n if (!dialogId) return;\n\n if (!dialogHistory.some((dialog) => dialog.id === dialogId)) {\n setId(null);\n refId.current = null;\n }\n }, [dialogHistory]);\n\n useEffect(() => {\n if (refId.current) {\n update({ id: refId.current, props: propsMemo as IUseDialog<Record<string, unknown>> });\n }\n }, [propsMemo, update]);\n\n return { add: localAdd, remove: localRemove, id: id, isOpen: isOpen };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { n as O, r as R } from "./utils-BRgi6734.js";
|
|
2
|
+
import { t as C } from "./functions-DzX-pTN8.js";
|
|
3
|
+
import { t as y } from "./proxy-BFHkqO7P.js";
|
|
4
|
+
import { t as T } from "./AnimatePresence-BWc2vFe-.js";
|
|
5
|
+
import { t as h } from "./outside-DopxX0PZ.js";
|
|
6
|
+
import { useDeepCompareMemoize as S } from "./hooks-use-deep-compare-memoize.es.js";
|
|
7
|
+
import { n as N, t as M } from "./dist-ck-7oUux.js";
|
|
8
|
+
import { t as U } from "./v4-CYaPyb-W.js";
|
|
9
|
+
import { jsx as x, jsxs as b } from "react/jsx-runtime";
|
|
10
|
+
import { memo as H, useCallback as p, useEffect as f, useMemo as v, useRef as P, useState as I } from "react";
|
|
11
|
+
var k = "fillDarkStable", A = O.context.dialog, G = () => A.layout, V = (e) => ({
|
|
12
|
+
backgroundColor: R.palette.fillSecondaryLightStable,
|
|
13
|
+
zIndex: e.zIndex
|
|
14
|
+
}), z = (e) => ({
|
|
15
|
+
maxWidth: e.propsDialog?.maxWidth || "max-content",
|
|
16
|
+
maxHeight: e.propsDialog?.maxHeight || "max-content",
|
|
17
|
+
borderRadius: e.propsDialog?.borderRadius || "12px",
|
|
18
|
+
background: e.propsDialog?.background ? R.palette[e.propsDialog.background] : R.palette[k],
|
|
19
|
+
padding: e.propsDialog?.padding || "20px"
|
|
20
|
+
}), L = M(null), ee = (e) => {
|
|
21
|
+
const [a, d] = I([]), u = G(), l = p((n) => {
|
|
22
|
+
d((r) => {
|
|
23
|
+
const s = r.find((o) => o.id === n);
|
|
24
|
+
if (s === void 0) return r;
|
|
25
|
+
const t = s.index;
|
|
26
|
+
return t === void 0 ? r : r.filter((o) => o.id !== n).map((o) => {
|
|
27
|
+
const g = o.index;
|
|
28
|
+
return g === void 0 ? o : {
|
|
29
|
+
...o,
|
|
30
|
+
index: g > t ? g - 1 : o.index
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}, []), D = p((n) => {
|
|
35
|
+
d((r) => r.map((s) => s.id === n.id ? {
|
|
36
|
+
...s,
|
|
37
|
+
...n
|
|
38
|
+
} : s));
|
|
39
|
+
}, []), c = p((n) => {
|
|
40
|
+
const r = n.id;
|
|
41
|
+
d((s) => {
|
|
42
|
+
const t = s.findIndex((g) => g.id === r);
|
|
43
|
+
let o;
|
|
44
|
+
if (t !== -1)
|
|
45
|
+
o = [...s], o[t] = {
|
|
46
|
+
...n,
|
|
47
|
+
id: r,
|
|
48
|
+
index: s[t].index
|
|
49
|
+
};
|
|
50
|
+
else {
|
|
51
|
+
o = s.map((E) => {
|
|
52
|
+
const _ = E.index;
|
|
53
|
+
return _ === void 0 ? E : {
|
|
54
|
+
...E,
|
|
55
|
+
index: _ + 1
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
const g = {
|
|
59
|
+
...n,
|
|
60
|
+
id: r,
|
|
61
|
+
index: 0
|
|
62
|
+
};
|
|
63
|
+
o.unshift(g);
|
|
64
|
+
}
|
|
65
|
+
return o;
|
|
66
|
+
});
|
|
67
|
+
}, []), i = v(() => a.length, [a.length]), m = v(() => e.zIndex, [e.zIndex]);
|
|
68
|
+
return f(() => () => {
|
|
69
|
+
d([]);
|
|
70
|
+
}, []), /* @__PURE__ */ b(L.Provider, {
|
|
71
|
+
value: {
|
|
72
|
+
add: c,
|
|
73
|
+
remove: l,
|
|
74
|
+
update: D,
|
|
75
|
+
dialogHistory: a
|
|
76
|
+
},
|
|
77
|
+
children: [/* @__PURE__ */ x(T, { children: i && /* @__PURE__ */ x(y.div, {
|
|
78
|
+
className: u,
|
|
79
|
+
style: V({ zIndex: m }),
|
|
80
|
+
initial: { opacity: 0 },
|
|
81
|
+
exit: { opacity: 0 },
|
|
82
|
+
animate: { opacity: 1 },
|
|
83
|
+
transition: {
|
|
84
|
+
type: "spring",
|
|
85
|
+
duration: 0.4
|
|
86
|
+
},
|
|
87
|
+
children: [...a].reverse().map((n) => /* @__PURE__ */ x(w, {
|
|
88
|
+
index: n.index,
|
|
89
|
+
props: n.props,
|
|
90
|
+
id: n.id,
|
|
91
|
+
onRemove: n.onRemove
|
|
92
|
+
}, n.id))
|
|
93
|
+
}) }), e.children]
|
|
94
|
+
});
|
|
95
|
+
}, F = (e) => {
|
|
96
|
+
const [a, d] = I(!0), u = v(() => ({ ...z({ propsDialog: e.props?.propsDialog }) }), [e.props?.propsDialog]), l = v(() => ({
|
|
97
|
+
position: "absolute",
|
|
98
|
+
inset: 0,
|
|
99
|
+
display: "flex",
|
|
100
|
+
alignItems: "center",
|
|
101
|
+
justifyContent: "center",
|
|
102
|
+
pointerEvents: e.index === 0 ? "auto" : "none"
|
|
103
|
+
}), [e.index]), D = v(() => e.props?.propsDialog?.isRemoveOnOutsideClick ?? !0, [e.props?.propsDialog?.isRemoveOnOutsideClick]), c = p(() => {
|
|
104
|
+
e.props?.onRemove?.(), e.onRemove?.();
|
|
105
|
+
}, [e.onRemove, e.props?.onRemove]), i = e.props?.content, m = v(() => e.id === void 0 || i === void 0 ? null : /* @__PURE__ */ x(i, {
|
|
106
|
+
remove: c,
|
|
107
|
+
isAnimating: a,
|
|
108
|
+
propsCustom: e.props?.propsCustom,
|
|
109
|
+
id: e.id
|
|
110
|
+
}), [
|
|
111
|
+
i,
|
|
112
|
+
a,
|
|
113
|
+
e.props?.propsCustom,
|
|
114
|
+
c,
|
|
115
|
+
e.id
|
|
116
|
+
]);
|
|
117
|
+
return e.index !== void 0 && /* @__PURE__ */ x("div", {
|
|
118
|
+
style: l,
|
|
119
|
+
children: /* @__PURE__ */ x(h, {
|
|
120
|
+
onOutsideClick: () => e.index === 0 && D && c?.(),
|
|
121
|
+
children: /* @__PURE__ */ x(y.dialog, {
|
|
122
|
+
className: C([A.element]),
|
|
123
|
+
initial: {
|
|
124
|
+
opacity: 0,
|
|
125
|
+
scale: 0.8
|
|
126
|
+
},
|
|
127
|
+
animate: {
|
|
128
|
+
opacity: 1,
|
|
129
|
+
scale: 1
|
|
130
|
+
},
|
|
131
|
+
onAnimationComplete: () => d(!1),
|
|
132
|
+
transition: {
|
|
133
|
+
type: "spring",
|
|
134
|
+
duration: 0.3,
|
|
135
|
+
delay: 0.4
|
|
136
|
+
},
|
|
137
|
+
style: u,
|
|
138
|
+
children: m
|
|
139
|
+
}, e.id)
|
|
140
|
+
})
|
|
141
|
+
});
|
|
142
|
+
}, w = H(F), j = (e) => {
|
|
143
|
+
const a = N(L, (d) => d ? e.reduce((u, l) => (u[l] = d[l], u), {}) : null);
|
|
144
|
+
if (!a) throw new Error("useDialogs must be used within an DialogContext");
|
|
145
|
+
return a;
|
|
146
|
+
}, te = (e) => {
|
|
147
|
+
const { add: a, remove: d, update: u, dialogHistory: l } = j([
|
|
148
|
+
"add",
|
|
149
|
+
"remove",
|
|
150
|
+
"update",
|
|
151
|
+
"dialogHistory"
|
|
152
|
+
]), [D, c] = I(null), i = P(null), m = S(e), n = v(() => D !== null && l.some((t) => t.id === D), [l, D]), r = p(() => {
|
|
153
|
+
const t = i.current;
|
|
154
|
+
t && (c(null), i.current = null, d(t));
|
|
155
|
+
}, [d]), s = p(() => {
|
|
156
|
+
if (i.current) return;
|
|
157
|
+
const t = U();
|
|
158
|
+
c(t), i.current = t, a({
|
|
159
|
+
id: t,
|
|
160
|
+
props: m,
|
|
161
|
+
onRemove: () => {
|
|
162
|
+
r(), m?.onRemove?.();
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}, [
|
|
166
|
+
a,
|
|
167
|
+
m,
|
|
168
|
+
r
|
|
169
|
+
]);
|
|
170
|
+
return f(() => {
|
|
171
|
+
const t = i.current;
|
|
172
|
+
t && (l.some((o) => o.id === t) || (c(null), i.current = null));
|
|
173
|
+
}, [l]), f(() => {
|
|
174
|
+
i.current && u({
|
|
175
|
+
id: i.current,
|
|
176
|
+
props: m
|
|
177
|
+
});
|
|
178
|
+
}, [m, u]), {
|
|
179
|
+
add: s,
|
|
180
|
+
remove: r,
|
|
181
|
+
id: D,
|
|
182
|
+
isOpen: n
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
export {
|
|
186
|
+
j as n,
|
|
187
|
+
ee as r,
|
|
188
|
+
te as t
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
//# sourceMappingURL=context-dialog-DzwL2ElF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-dialog-DzwL2ElF.js","names":[],"sources":["../src/contexts/context-dialog/context.constants.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts"],"sourcesContent":["import { IThemePalette } from '@local/styles/utils';\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3;\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4;\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePalette = 'fillDarkStable';\n","import { CSS_CLASS, CSS_VARS } from '@local/styles/utils';\n\nimport { CSSProperties } from 'react';\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n} from './context.constants';\nimport { IDialogElementStyle, IDialogLayoutStyle } from './context.types';\n\nexport const DialogClass = CSS_CLASS.context.dialog;\n\nexport const getDialogLayoutClassName = () => DialogClass.layout;\n\nexport const getDialogLayoutStyle = (props: IDialogLayoutStyle): CSSProperties => ({\n backgroundColor: CSS_VARS.palette.fillSecondaryLightStable,\n zIndex: props.zIndex,\n});\n\nexport const getDialogElementStyle = (props: IDialogElementStyle): CSSProperties => ({\n maxWidth: props.propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n maxHeight: props.propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n borderRadius: props.propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n background: props.propsDialog?.background\n ? CSS_VARS.palette[props.propsDialog.background]\n : CSS_VARS.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND],\n padding: props.propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n});\n","import { Outside } from '@local/areas/outside';\nimport { setClasses } from '@local/styles/utils/functions';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT, DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT } from './context.constants';\nimport { DialogClass, getDialogElementStyle, getDialogLayoutClassName, getDialogLayoutStyle } from './context.styles';\nimport { IDialogContent, IDialogContext, IDialogElement, IDialogProvider } from './context.types';\n\nexport const DialogContext = createContext<IDialogContext | null>(null);\n\nexport const ProviderDialog: FC<IDialogProvider> = (props) => {\n const [dialogHistory, setDialogHistory] = useState<IDialogContent[]>([]);\n const classNameDialogLayout = getDialogLayoutClassName();\n\n const remove: IDialogContext['remove'] = useCallback((id) => {\n setDialogHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (itemToRemove === undefined) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n if (indexToRemove === undefined) return prev;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => {\n const index = item.index;\n if (index === undefined) return item;\n\n return {\n ...item,\n index: index > indexToRemove ? index - 1 : item.index,\n };\n });\n\n return updatedHistory;\n });\n }, []);\n\n const update: IDialogContext['update'] = useCallback((dialog) => {\n setDialogHistory((prev) => {\n return prev.map((item) => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog };\n }\n return item;\n });\n });\n }, []);\n\n const add: IDialogContext['add'] = useCallback((dialog) => {\n const id = dialog.id;\n\n setDialogHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory: IDialogContent[];\n\n if (existingIndex !== -1) {\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index };\n } else {\n updatedHistory = prev.map((item) => {\n const index = item.index;\n if (index === undefined) return item;\n\n return {\n ...item,\n index: index + 1,\n };\n });\n const newContent = { ...dialog, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n }, []);\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length]);\n const zIndex = useMemo(() => props.zIndex, [props.zIndex]);\n\n useEffect(() => {\n return () => {\n setDialogHistory([]);\n };\n }, []);\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <motion.div\n className={classNameDialogLayout}\n style={getDialogLayoutStyle({ zIndex })}\n initial={{\n opacity: 0,\n }}\n exit={{\n opacity: 0,\n }}\n animate={{\n opacity: 1,\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {[...dialogHistory].reverse().map((dialog) => {\n return (\n <MemoizedDialogElement\n key={dialog.id}\n index={dialog.index}\n props={dialog.props}\n id={dialog.id}\n onRemove={dialog.onRemove}\n />\n );\n })}\n </motion.div>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n );\n};\n\nconst DialogElement = (props: IDialogElement<Record<string, unknown>>) => {\n const [isAnimating, setIsAnimating] = useState(true);\n const styleDialogElement = useMemo(() => {\n return {\n ...getDialogElementStyle({\n propsDialog: props.props?.propsDialog,\n }),\n };\n }, [props.props?.propsDialog]);\n const styleDialogLayer = useMemo<CSSProperties>(() => {\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: props.index === 0 ? 'auto' : 'none',\n };\n }, [props.index]);\n\n const isRemoveOnOutsideClick = useMemo(\n () => props.props?.propsDialog?.isRemoveOnOutsideClick ?? true,\n [props.props?.propsDialog?.isRemoveOnOutsideClick],\n );\n const onRemove = useCallback(() => {\n props.props?.onRemove?.();\n props.onRemove?.();\n }, [props.onRemove, props.props?.onRemove]);\n\n const Content = props.props?.content;\n const children = useMemo(() => {\n if (props.id === undefined || Content === undefined) return null;\n\n return <Content remove={onRemove} isAnimating={isAnimating} propsCustom={props.props?.propsCustom} id={props.id} />;\n }, [Content, isAnimating, props.props?.propsCustom, onRemove, props.id]);\n return (\n props.index !== undefined && (\n <div style={styleDialogLayer}>\n <Outside onOutsideClick={() => props.index === 0 && isRemoveOnOutsideClick && onRemove?.()}>\n <motion.dialog\n key={props.id}\n className={setClasses([DialogClass.element])}\n initial={{\n opacity: 0,\n scale: 0.8,\n }}\n animate={{\n opacity: 1,\n scale: 1,\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n }}\n style={styleDialogElement}\n >\n {children}\n </motion.dialog>\n </Outside>\n </div>\n )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useContextSelector } from 'use-context-selector';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { DialogContext } from './context';\nimport { IDialogContext, IDialogItem, IUseDialog, IUseDialogDependencies } from './context.types';\n\nexport const useDialogs = (props: IUseDialogDependencies): IDialogContext => {\n const context = useContextSelector(DialogContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useDialogs must be used within an DialogContext');\n }\n return context;\n};\n\nexport const useDialog = <T extends object = Record<string, unknown>>(props?: IUseDialog<T>): IDialogItem => {\n const { add, remove, update, dialogHistory } = useDialogs(['add', 'remove', 'update', 'dialogHistory']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n const isOpen = useMemo(() => {\n return id !== null && dialogHistory.some((dialog) => dialog.id === id);\n }, [dialogHistory, id]);\n\n const localRemove = useCallback(() => {\n const dialogId = refId.current;\n\n if (!dialogId) return;\n\n setId(null);\n refId.current = null;\n remove(dialogId);\n }, [remove]);\n\n const localAdd: IDialogItem['add'] = useCallback(() => {\n if (refId.current) return;\n const dialogId = uuidv4();\n setId(dialogId);\n refId.current = dialogId;\n add({\n id: dialogId,\n props: propsMemo as IUseDialog<Record<string, unknown>>,\n onRemove: () => {\n localRemove();\n propsMemo?.onRemove?.();\n },\n });\n }, [add, propsMemo, localRemove]);\n\n useEffect(() => {\n const dialogId = refId.current;\n\n if (!dialogId) return;\n\n if (!dialogHistory.some((dialog) => dialog.id === dialogId)) {\n setId(null);\n refId.current = null;\n }\n }, [dialogHistory]);\n\n useEffect(() => {\n if (refId.current) {\n update({ id: refId.current, props: propsMemo as IUseDialog<Record<string, unknown>> });\n }\n }, [propsMemo, update]);\n\n return { add: localAdd, remove: localRemove, id: id, isOpen: isOpen };\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-dialog-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-dialog-DctdSBC8.cjs");exports.ProviderDialog=e.ProviderDialog;exports.useDialog=e.useDialog;exports.useDialogs=e.useDialogs;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as f } from "./context-permission-
|
|
1
|
+
import { t as f } from "./context-permission-Cj70kL4A.js";
|
|
2
2
|
import { jsx as v } from "react/jsx-runtime";
|
|
3
3
|
import { createContext as E, useContext as P, useEffect as r, useState as i } from "react";
|
|
4
4
|
var s = E(null), G = (o) => {
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
C as t
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
//# sourceMappingURL=context-geolocation-
|
|
42
|
+
//# sourceMappingURL=context-geolocation-B_KYGlfQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-geolocation-
|
|
1
|
+
{"version":3,"file":"context-geolocation-B_KYGlfQ.js","names":[],"sources":["../src/contexts/context-geolocation/context.tsx","../src/contexts/context-geolocation/context.hooks.ts"],"sourcesContent":["import { usePermission } from '@local/contexts/context-permission';\n\nimport { createContext, FC, useEffect, useState } from 'react';\n\nimport { IGeolocationContext, IGeolocationProvider } from './context.types';\n\nexport const GeolocationContext = createContext<IGeolocationContext | null>(null);\n\nexport const ProviderGeolocation: FC<IGeolocationProvider> = (props) => {\n const { geolocationPermission, requestGeolocationPermission } = usePermission();\n\n const [location, setLocation] = useState<GeolocationPosition | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setError(error);\n };\n\n if (geolocationPermission === 'granted') {\n navigator.geolocation.getCurrentPosition(handleSuccess, handleError);\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n\n useEffect(() => {\n if (props.isAskEntrance) {\n if (geolocationPermission !== 'granted') {\n requestGeolocationPermission();\n }\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n return (\n <GeolocationContext.Provider\n value={{\n requestGeolocationPermission,\n geolocationPermission,\n location,\n error,\n }}\n >\n {props.children}\n </GeolocationContext.Provider>\n );\n};\n","import { useContext } from 'react';\n\nimport { GeolocationContext } from './context';\nimport { IGeolocationContext } from './context.types';\n\nexport const useGeolocation = (): IGeolocationContext => {\n const context = useContext(GeolocationContext);\n if (!context) {\n throw new Error('useGeolocation must be used within an ProviderGeolocation');\n }\n return context;\n};\n"],"mappings":";;;AAMA,IAAa,IAAqB,EAA0C,IAAA,GAE/D,IAAA,CAAiD,MAAU;AACtE,QAAM,EAAE,uBAAA,GAAuB,8BAAA,EAAA,IAAiC,EAAA,GAE1D,CAAC,GAAU,CAAA,IAAe,EAAqC,IAAA,GAC/D,CAAC,GAAO,CAAA,IAAY,EAA0C,IAAA;AAGpE,SAAA,EAAA,MAAgB;AACd,UAAM,IAAA,CAAiB,MAAkC;AACvD,MAAA,EAAY,CAAA;AAAA,OAGR,IAAA,CAAe,MAAoC;AACvD,MAAA,EAAS,CAAA;AAAA;AAGX,IAAI,MAA0B,aAC5B,UAAU,YAAY,mBAAmB,GAAe,CAAA;AAAA,KAEzD;AAAA,IAAC;AAAA,IAAuB,EAAM;AAAA,IAAe;AAAA,GAA6B,GAE7E,EAAA,MAAgB;AACd,IAAI,EAAM,iBACJ,MAA0B,aAC5B,EAAA;AAAA,KAGH;AAAA,IAAC;AAAA,IAAuB,EAAM;AAAA,IAAe;AAAA,GAA6B,GAE3E,gBAAA,EAAC,EAAmB,UAApB;AAAA,IACE,OAAO;AAAA,MACL,8BAAA;AAAA,MACA,uBAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA;cAGD,EAAM;AAAA,GACqB;GCzCrB,IAAA,MAA4C;AACvD,QAAM,IAAU,EAAW,CAAA;AAC3B,MAAI,CAAC,EACH,OAAM,IAAI,MAAM,2DAAA;AAElB,SAAO"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const m=require("./chunk-Dd8m0Ver.cjs"),f=require("./context-permission-
|
|
1
|
+
const m=require("./chunk-Dd8m0Ver.cjs"),f=require("./context-permission-BP9hPUcR.cjs");let P=require("react/jsx-runtime"),t=require("react");var i=(0,t.createContext)(null),v=e=>{const{geolocationPermission:r,requestGeolocationPermission:n}=f.usePermission(),[c,s]=(0,t.useState)(null),[u,a]=(0,t.useState)(null);return(0,t.useEffect)(()=>{const l=o=>{s(o)},d=o=>{a(o)};r==="granted"&&navigator.geolocation.getCurrentPosition(l,d)},[r,e.isAskEntrance,n]),(0,t.useEffect)(()=>{e.isAskEntrance&&r!=="granted"&&n()},[r,e.isAskEntrance,n]),(0,P.jsx)(i.Provider,{value:{requestGeolocationPermission:n,geolocationPermission:r,location:c,error:u},children:e.children})},g=()=>{const e=(0,t.useContext)(i);if(!e)throw new Error("useGeolocation must be used within an ProviderGeolocation");return e};Object.defineProperty(exports,"ProviderGeolocation",{enumerable:!0,get:function(){return v}});Object.defineProperty(exports,"useGeolocation",{enumerable:!0,get:function(){return g}});
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=context-geolocation-
|
|
3
|
+
//# sourceMappingURL=context-geolocation-bP0_455H.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-geolocation-
|
|
1
|
+
{"version":3,"file":"context-geolocation-bP0_455H.cjs","names":[],"sources":["../src/contexts/context-geolocation/context.tsx","../src/contexts/context-geolocation/context.hooks.ts"],"sourcesContent":["import { usePermission } from '@local/contexts/context-permission';\n\nimport { createContext, FC, useEffect, useState } from 'react';\n\nimport { IGeolocationContext, IGeolocationProvider } from './context.types';\n\nexport const GeolocationContext = createContext<IGeolocationContext | null>(null);\n\nexport const ProviderGeolocation: FC<IGeolocationProvider> = (props) => {\n const { geolocationPermission, requestGeolocationPermission } = usePermission();\n\n const [location, setLocation] = useState<GeolocationPosition | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setError(error);\n };\n\n if (geolocationPermission === 'granted') {\n navigator.geolocation.getCurrentPosition(handleSuccess, handleError);\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n\n useEffect(() => {\n if (props.isAskEntrance) {\n if (geolocationPermission !== 'granted') {\n requestGeolocationPermission();\n }\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n return (\n <GeolocationContext.Provider\n value={{\n requestGeolocationPermission,\n geolocationPermission,\n location,\n error,\n }}\n >\n {props.children}\n </GeolocationContext.Provider>\n );\n};\n","import { useContext } from 'react';\n\nimport { GeolocationContext } from './context';\nimport { IGeolocationContext } from './context.types';\n\nexport const useGeolocation = (): IGeolocationContext => {\n const context = useContext(GeolocationContext);\n if (!context) {\n throw new Error('useGeolocation must be used within an ProviderGeolocation');\n }\n return context;\n};\n"],"mappings":"6IAMA,IAAa,KAAA,EAAA,eAA+D,IAAA,EAE/D,EAAiD,GAAU,CACtE,KAAM,CAAE,sBAAA,EAAuB,6BAAA,CAAA,EAAiC,EAAA,cAAA,EAE1D,CAAC,EAAU,CAAA,KAAA,EAAA,UAAoD,IAAA,EAC/D,CAAC,EAAO,CAAA,KAAA,EAAA,UAAsD,IAAA,EAGpE,SAAA,EAAA,WAAA,IAAgB,CACd,MAAM,EAAiB,GAAkC,CACvD,EAAY,CAAA,GAGR,EAAe,GAAoC,CACvD,EAAS,CAAA,GAGP,IAA0B,WAC5B,UAAU,YAAY,mBAAmB,EAAe,CAAA,GAEzD,CAAC,EAAuB,EAAM,cAAe,EAA6B,KAE7E,EAAA,WAAA,IAAgB,CACV,EAAM,eACJ,IAA0B,WAC5B,EAAA,GAGH,CAAC,EAAuB,EAAM,cAAe,EAA6B,KAE3E,EAAA,KAAC,EAAmB,SAApB,CACE,MAAO,CACL,6BAAA,EACA,sBAAA,EACA,SAAA,EACA,MAAA,YAGD,EAAM,SACqB,GCzCrB,EAAA,IAA4C,CACvD,MAAM,KAAA,EAAA,YAAqB,CAAA,EAC3B,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,2DAAA,EAElB,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-geolocation-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-geolocation-bP0_455H.cjs");exports.ProviderGeolocation=e.ProviderGeolocation;exports.useGeolocation=e.useGeolocation;
|