@jenesei-software/jenesei-kit-react 2.0.0 → 2.0.1

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.
Files changed (185) hide show
  1. package/build/{AnimatePresence-BByJ67dn.js → AnimatePresence-19yP-TCg.js} +2 -2
  2. package/build/{AnimatePresence-BByJ67dn.js.map → AnimatePresence-19yP-TCg.js.map} +1 -1
  3. package/build/{AnimatePresence-BtUPiqYm.cjs → AnimatePresence-BdBJCJuf.cjs} +2 -2
  4. package/build/{AnimatePresence-BtUPiqYm.cjs.map → AnimatePresence-BdBJCJuf.cjs.map} +1 -1
  5. package/build/area-outside.cjs.js +1 -1
  6. package/build/area-outside.es.js +1 -1
  7. package/build/area-preview.cjs.js +1 -1
  8. package/build/area-preview.es.js +1 -1
  9. package/build/area-skeleton.cjs.js +1 -1
  10. package/build/area-skeleton.es.js +1 -1
  11. package/build/build-info.txt +3 -3
  12. package/build/{button-D8zdhI-0.js → button-BbGiFvok.js} +2 -2
  13. package/build/{button-D8zdhI-0.js.map → button-BbGiFvok.js.map} +1 -1
  14. package/build/{button-C5PgNYns.cjs → button-BuPpgfL_.cjs} +2 -2
  15. package/build/{button-C5PgNYns.cjs.map → button-BuPpgfL_.cjs.map} +1 -1
  16. package/build/{checkbox-Ba0-4wxk.js → checkbox-CXxWDklX.js} +3 -3
  17. package/build/{checkbox-Ba0-4wxk.js.map → checkbox-CXxWDklX.js.map} +1 -1
  18. package/build/{checkbox-BtkbSjHq.cjs → checkbox-qgc_Ntc3.cjs} +2 -2
  19. package/build/{checkbox-BtkbSjHq.cjs.map → checkbox-qgc_Ntc3.cjs.map} +1 -1
  20. package/build/chunk-Dd8m0Ver.cjs +1 -0
  21. package/build/{chunk-D1xtDmiO.js → chunk-cI0lbGMq.js} +7 -7
  22. package/build/{component-6HgOL-7c.js → component-BHyXT2-h.js} +2 -2
  23. package/build/{component-6HgOL-7c.js.map → component-BHyXT2-h.js.map} +1 -1
  24. package/build/component-button.cjs.js +1 -1
  25. package/build/component-button.es.js +1 -1
  26. package/build/component-checkbox.cjs.js +1 -1
  27. package/build/component-checkbox.es.js +1 -1
  28. package/build/component-date-picker.cjs.js +1 -1
  29. package/build/component-date-picker.es.js +1 -1
  30. package/build/component-icon.cjs.js +1 -1
  31. package/build/component-icon.es.js +1 -1
  32. package/build/component-input-otp.cjs.js +1 -1
  33. package/build/component-input-otp.es.js +1 -1
  34. package/build/component-input.cjs.js +1 -1
  35. package/build/component-input.es.js +1 -1
  36. package/build/{component-BjdeqpEq.cjs → component-jsn2T8Hu.cjs} +2 -2
  37. package/build/{component-BjdeqpEq.cjs.map → component-jsn2T8Hu.cjs.map} +1 -1
  38. package/build/component-pagination.cjs.js +1 -1
  39. package/build/component-pagination.es.js +1 -1
  40. package/build/component-popover.cjs.js +1 -1
  41. package/build/component-select.cjs.js +1 -1
  42. package/build/component-select.es.js +1 -1
  43. package/build/component-separator.cjs.js +1 -1
  44. package/build/component-stack.cjs.js +1 -1
  45. package/build/component-stack.es.js +1 -1
  46. package/build/component-textarea.cjs.js +1 -1
  47. package/build/component-textarea.es.js +1 -1
  48. package/build/component-toggle.cjs.js +1 -1
  49. package/build/component-toggle.es.js +1 -1
  50. package/build/component-tooltip.cjs.js +1 -1
  51. package/build/component-typography.cjs.js +1 -1
  52. package/build/components-error.cjs.js +1 -1
  53. package/build/components-error.es.js +1 -1
  54. package/build/{context-app-4_kY3Qcd.js → context-app-CMK9g6MI.js} +4 -4
  55. package/build/{context-app-4_kY3Qcd.js.map → context-app-CMK9g6MI.js.map} +1 -1
  56. package/build/{context-app-DKsS6_WR.cjs → context-app-HhFcx1wY.cjs} +2 -2
  57. package/build/{context-app-DKsS6_WR.cjs.map → context-app-HhFcx1wY.cjs.map} +1 -1
  58. package/build/context-app.cjs.js +1 -1
  59. package/build/context-app.es.js +1 -1
  60. package/build/{context-browser-theme-CPhqqRUP.js → context-browser-theme-Cb6siWO0.js} +2 -2
  61. package/build/{context-browser-theme-CPhqqRUP.js.map → context-browser-theme-Cb6siWO0.js.map} +1 -1
  62. package/build/{context-browser-theme-o9geUlSH.cjs → context-browser-theme-Cso_rAT5.cjs} +2 -2
  63. package/build/{context-browser-theme-o9geUlSH.cjs.map → context-browser-theme-Cso_rAT5.cjs.map} +1 -1
  64. package/build/context-browser-theme.cjs.js +1 -1
  65. package/build/context-browser-theme.es.js +1 -1
  66. package/build/{context-cookie-CvTU44MD.cjs → context-cookie-Btkd2aXy.cjs} +2 -2
  67. package/build/{context-cookie-CvTU44MD.cjs.map → context-cookie-Btkd2aXy.cjs.map} +1 -1
  68. package/build/context-cookie.cjs.js +1 -1
  69. package/build/{context-dialog-CCnhd1EY.cjs → context-dialog-B67-_jMH.cjs} +2 -2
  70. package/build/{context-dialog-CCnhd1EY.cjs.map → context-dialog-B67-_jMH.cjs.map} +1 -1
  71. package/build/{context-dialog-HLeQ5WNn.js → context-dialog-CxGGmBqC.js} +5 -5
  72. package/build/{context-dialog-HLeQ5WNn.js.map → context-dialog-CxGGmBqC.js.map} +1 -1
  73. package/build/context-dialog.cjs.js +1 -1
  74. package/build/context-dialog.es.js +1 -1
  75. package/build/{context-geolocation-ffFFV4kn.cjs → context-geolocation-CV4hV0NX.cjs} +2 -2
  76. package/build/{context-geolocation-ffFFV4kn.cjs.map → context-geolocation-CV4hV0NX.cjs.map} +1 -1
  77. package/build/context-geolocation.cjs.js +1 -1
  78. package/build/{context-local-storage-kmxWNK_4.cjs → context-local-storage-DUKHVPAA.cjs} +2 -2
  79. package/build/{context-local-storage-kmxWNK_4.cjs.map → context-local-storage-DUKHVPAA.cjs.map} +1 -1
  80. package/build/context-local-storage.cjs.js +1 -1
  81. package/build/{context-permission-K3tWOiAx.cjs → context-permission-DrcIwK9y.cjs} +2 -2
  82. package/build/{context-permission-K3tWOiAx.cjs.map → context-permission-DrcIwK9y.cjs.map} +1 -1
  83. package/build/context-permission.cjs.js +1 -1
  84. package/build/{context-screen-width-CEsyIyg6.js → context-screen-width-CFexCIzV.js} +2 -2
  85. package/build/{context-screen-width-CEsyIyg6.js.map → context-screen-width-CFexCIzV.js.map} +1 -1
  86. package/build/{context-screen-width-ind6z7Ny.cjs → context-screen-width-hcRkxzy7.cjs} +2 -2
  87. package/build/{context-screen-width-ind6z7Ny.cjs.map → context-screen-width-hcRkxzy7.cjs.map} +1 -1
  88. package/build/context-screen-width.cjs.js +1 -1
  89. package/build/context-screen-width.es.js +1 -1
  90. package/build/{context-sonner-L0OMEvZE.cjs → context-sonner-4gBa1F7G.cjs} +2 -2
  91. package/build/{context-sonner-L0OMEvZE.cjs.map → context-sonner-4gBa1F7G.cjs.map} +1 -1
  92. package/build/{context-sonner-Bniiz914.js → context-sonner-qDPLFpD5.js} +6 -6
  93. package/build/{context-sonner-Bniiz914.js.map → context-sonner-qDPLFpD5.js.map} +1 -1
  94. package/build/context-sonner.cjs.js +1 -1
  95. package/build/context-sonner.es.js +1 -1
  96. package/build/{date-picker-CQUe3ZXt.cjs → date-picker-CPNNIEa-.cjs} +2 -2
  97. package/build/{date-picker-CQUe3ZXt.cjs.map → date-picker-CPNNIEa-.cjs.map} +1 -1
  98. package/build/{date-picker-z3LcE7Ab.js → date-picker-Uuce_InW.js} +5 -5
  99. package/build/{date-picker-z3LcE7Ab.js.map → date-picker-Uuce_InW.js.map} +1 -1
  100. package/build/{dist-Dq_YJa2q.js → dist-BV0C3tLK.js} +2 -2
  101. package/build/{dist-Dq_YJa2q.js.map → dist-BV0C3tLK.js.map} +1 -1
  102. package/build/{dist-C8r_OdG1.cjs → dist-DswBAjW1.cjs} +2 -2
  103. package/build/{dist-C8r_OdG1.cjs.map → dist-DswBAjW1.cjs.map} +1 -1
  104. package/build/{error--kiPVmoi.cjs → error-DzkkNL2H.cjs} +2 -2
  105. package/build/{error--kiPVmoi.cjs.map → error-DzkkNL2H.cjs.map} +1 -1
  106. package/build/{error-D1UNY-0f.js → error-L2fvWcNv.js} +2 -2
  107. package/build/{error-D1UNY-0f.js.map → error-L2fvWcNv.js.map} +1 -1
  108. package/build/hooks-use-debounced-callback.cjs.js +1 -1
  109. package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
  110. package/build/hooks-use-deep-compare-memoize.es.js +2 -2
  111. package/build/hooks-use-deep-memo.cjs.js +1 -1
  112. package/build/hooks-use-deep-memo.es.js +2 -2
  113. package/build/hooks-use-merge-refs.cjs.js +1 -1
  114. package/build/hooks-use-overflowing-advanced.cjs.js +1 -1
  115. package/build/hooks-use-overflowing-in-container.cjs.js +1 -1
  116. package/build/hooks-use-overflowing.cjs.js +1 -1
  117. package/build/hooks-use-responsive-layout.cjs.js +1 -1
  118. package/build/hooks-use-responsive-layout.es.js +1 -1
  119. package/build/hooks-use-typography-styles.cjs.js +1 -1
  120. package/build/{icon-CreblPsB.cjs → icon-CoIQwke4.cjs} +2 -2
  121. package/build/{icon-CreblPsB.cjs.map → icon-CoIQwke4.cjs.map} +1 -1
  122. package/build/{icon-BG6R5Lfa.js → icon-DzAWOQJg.js} +2 -2
  123. package/build/{icon-BG6R5Lfa.js.map → icon-DzAWOQJg.js.map} +1 -1
  124. package/build/index.cjs.js +1 -1
  125. package/build/index.es.js +21 -21
  126. package/build/{input-DqMLnOz5.js → input-CV02F03L.js} +2 -2
  127. package/build/{input-DqMLnOz5.js.map → input-CV02F03L.js.map} +1 -1
  128. package/build/{input-otp-DPp3qmvI.js → input-otp-B9cYxJ7X.js} +3 -3
  129. package/build/{input-otp-DPp3qmvI.js.map → input-otp-B9cYxJ7X.js.map} +1 -1
  130. package/build/{input-otp-Z_wz6o6L.cjs → input-otp-BVRCfoRK.cjs} +2 -2
  131. package/build/{input-otp-Z_wz6o6L.cjs.map → input-otp-BVRCfoRK.cjs.map} +1 -1
  132. package/build/{input-CWcWWMCp.cjs → input-zXF5f99Z.cjs} +2 -2
  133. package/build/{input-CWcWWMCp.cjs.map → input-zXF5f99Z.cjs.map} +1 -1
  134. package/build/isEqual-DeC2HFe5.cjs +3 -0
  135. package/build/{isEqual-wc3RBuBi.cjs.map → isEqual-DeC2HFe5.cjs.map} +1 -1
  136. package/build/{isEqual-VCZu3vai.js → isEqual-Qb81B2zH.js} +4 -3
  137. package/build/{isEqual-VCZu3vai.js.map → isEqual-Qb81B2zH.js.map} +1 -1
  138. package/build/{motion-BeQRGZxW.cjs → motion-CAPq8wSn.cjs} +2 -2
  139. package/build/{motion-BeQRGZxW.cjs.map → motion-CAPq8wSn.cjs.map} +1 -1
  140. package/build/{motion-Ot_yGWVJ.js → motion-Dt6TyEjN.js} +3 -3
  141. package/build/{motion-Ot_yGWVJ.js.map → motion-Dt6TyEjN.js.map} +1 -1
  142. package/build/{outside-DJ1B9sBT.cjs → outside-B3nRnDGb.cjs} +2 -2
  143. package/build/{outside-DJ1B9sBT.cjs.map → outside-B3nRnDGb.cjs.map} +1 -1
  144. package/build/{outside-BtjOuCPD.js → outside-DpK1pI8b.js} +2 -2
  145. package/build/{outside-BtjOuCPD.js.map → outside-DpK1pI8b.js.map} +1 -1
  146. package/build/{pagination-BnvQ1aha.cjs → pagination-Dbs4Lrpt.cjs} +2 -2
  147. package/build/{pagination-BnvQ1aha.cjs.map → pagination-Dbs4Lrpt.cjs.map} +1 -1
  148. package/build/{pagination-CpaP3Svg.js → pagination-YXSjZsMZ.js} +5 -5
  149. package/build/{pagination-CpaP3Svg.js.map → pagination-YXSjZsMZ.js.map} +1 -1
  150. package/build/{popover-fte_EMYr.cjs → popover-CgwGn-55.cjs} +2 -2
  151. package/build/{popover-fte_EMYr.cjs.map → popover-CgwGn-55.cjs.map} +1 -1
  152. package/build/{preview-BvJN6QoV.js → preview-C_yFxoFH.js} +4 -4
  153. package/build/{preview-BvJN6QoV.js.map → preview-C_yFxoFH.js.map} +1 -1
  154. package/build/{preview-CG76AiC9.cjs → preview-dT7fmxcc.cjs} +2 -2
  155. package/build/{preview-CG76AiC9.cjs.map → preview-dT7fmxcc.cjs.map} +1 -1
  156. package/build/{proxy-D2Z8K6jr.cjs → proxy-_gZenxVU.cjs} +2 -2
  157. package/build/{proxy-D2Z8K6jr.cjs.map → proxy-_gZenxVU.cjs.map} +1 -1
  158. package/build/{proxy-DTLy-pV-.js → proxy-wCWa57J3.js} +2 -2
  159. package/build/{proxy-DTLy-pV-.js.map → proxy-wCWa57J3.js.map} +1 -1
  160. package/build/{select-BQtWzaxE.cjs → select-B0adRX2_.cjs} +4 -4
  161. package/build/{select-BQtWzaxE.cjs.map → select-B0adRX2_.cjs.map} +1 -1
  162. package/build/{select-B4JeEvIF.js → select-D7EyxR2l.js} +10 -10
  163. package/build/{select-B4JeEvIF.js.map → select-D7EyxR2l.js.map} +1 -1
  164. package/build/{separator-BXoT44nC.cjs → separator-CbeH8Lug.cjs} +2 -2
  165. package/build/{separator-BXoT44nC.cjs.map → separator-CbeH8Lug.cjs.map} +1 -1
  166. package/build/{skeleton-BOfnrUaI.cjs → skeleton-BoVFwt7y.cjs} +2 -2
  167. package/build/{skeleton-BOfnrUaI.cjs.map → skeleton-BoVFwt7y.cjs.map} +1 -1
  168. package/build/{skeleton-Bzr92XmL.js → skeleton-DNwTI6w0.js} +2 -2
  169. package/build/{skeleton-Bzr92XmL.js.map → skeleton-DNwTI6w0.js.map} +1 -1
  170. package/build/style-motion.cjs.js +1 -1
  171. package/build/style-motion.es.js +1 -1
  172. package/build/style-utils.cjs.js +1 -1
  173. package/build/{textarea-BRzorAFw.cjs → textarea-CbZSeqGR.cjs} +2 -2
  174. package/build/{textarea-BRzorAFw.cjs.map → textarea-CbZSeqGR.cjs.map} +1 -1
  175. package/build/{textarea-BssfjUe3.js → textarea-ChkjV_Ha.js} +2 -2
  176. package/build/{textarea-BssfjUe3.js.map → textarea-ChkjV_Ha.js.map} +1 -1
  177. package/build/{toggle-CCfZoBpW.js → toggle-I6YvEX4w.js} +2 -2
  178. package/build/{toggle-CCfZoBpW.js.map → toggle-I6YvEX4w.js.map} +1 -1
  179. package/build/{toggle-BFp9Nmas.cjs → toggle-gYw5FUp-.cjs} +2 -2
  180. package/build/{toggle-BFp9Nmas.cjs.map → toggle-gYw5FUp-.cjs.map} +1 -1
  181. package/build/{typography-whjfut7N.cjs → typography-DcxhX_9e.cjs} +2 -2
  182. package/build/{typography-whjfut7N.cjs.map → typography-DcxhX_9e.cjs.map} +1 -1
  183. package/package.json +1 -5
  184. package/build/chunk-CW3en5xf.cjs +0 -1
  185. package/build/isEqual-wc3RBuBi.cjs +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"context-browser-theme-o9geUlSH.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
+ {"version":3,"file":"context-browser-theme-Cso_rAT5.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-CW3en5xf.cjs"),e=require("./context-browser-theme-o9geUlSH.cjs");exports.ProviderBrowserTheme=e.ProviderBrowserTheme;exports.useIBrowserTheme=e.useIBrowserTheme;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-browser-theme-Cso_rAT5.cjs");exports.ProviderBrowserTheme=e.ProviderBrowserTheme;exports.useIBrowserTheme=e.useIBrowserTheme;
@@ -1,4 +1,4 @@
1
- import { n as r, t as o } from "./context-browser-theme-CPhqqRUP.js";
1
+ import { n as r, t as o } from "./context-browser-theme-Cb6siWO0.js";
2
2
  export {
3
3
  r as ProviderBrowserTheme,
4
4
  o as useIBrowserTheme
@@ -1,3 +1,3 @@
1
- const P=require("./chunk-CW3en5xf.cjs"),f=require("./logger-DZFY33QY.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}});
1
+ const P=require("./chunk-Dd8m0Ver.cjs"),f=require("./logger-DZFY33QY.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-CvTU44MD.cjs.map
3
+ //# sourceMappingURL=context-cookie-Btkd2aXy.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-cookie-CvTU44MD.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-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 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-CW3en5xf.cjs"),e=require("./context-cookie-CvTU44MD.cjs");exports.ProviderCookie=e.ProviderCookie;exports.useCookie=e.useCookie;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-cookie-Btkd2aXy.cjs");exports.ProviderCookie=e.ProviderCookie;exports.useCookie=e.useCookie;
@@ -1,3 +1,3 @@
1
- const j=require("./chunk-CW3en5xf.cjs"),R=require("./proxy-D2Z8K6jr.cjs"),O=require("./AnimatePresence-BtUPiqYm.cjs"),v=require("./utils-DtinAjAU.cjs"),L=require("./functions-Dwo54amB.cjs"),y=require("./hooks-use-deep-compare-memoize.cjs.js"),S=require("./outside-DJ1B9sBT.cjs"),A=require("./dist-C8r_OdG1.cjs"),b=require("./v4-BDi_Luux.cjs");let g=require("react/jsx-runtime"),t=require("react");var q="fillDarkStable",I=v.CSS_CLASS.context.dialog,T=()=>I.layout,h=e=>({backgroundColor:v.CSS_VARS.palette.fillSecondaryLightStable,zIndex:e.zIndex}),k=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[q],padding:e.propsDialog?.padding||"20px"}),f=A.createContext(null),M=e=>{const[i,a]=(0,t.useState)([]),l=T(),d=(0,t.useCallback)(n=>{a(r=>{const u=r.find(o=>o.id===n);if(u===void 0)return r;const x=u.index;return x===void 0?r:r.filter(o=>o.id!==n).map(o=>{const D=o.index;return D===void 0?o:{...o,index:D>x?D-1:o.index}})})},[]),c=(0,t.useCallback)(n=>{a(r=>r.map(u=>u.id===n.id?{...u,...n}:u))},[]),s=(0,t.useCallback)(n=>{const r=n.id;a(u=>{const x=u.findIndex(D=>D.id===r);let o;if(x!==-1)o=[...u],o[x]={...n,id:r,index:u[x].index};else{o=u.map(p=>{const E=p.index;return E===void 0?p:{...p,index:E+1}});const D={...n,id:r,index:0};o.unshift(D)}return o})},[]),m=(0,t.useMemo)(()=>i.length,[i.length]),_=(0,t.useMemo)(()=>e.zIndex,[e.zIndex]);return(0,t.useEffect)(()=>()=>{a([])},[]),(0,g.jsxs)(f.Provider,{value:{add:s,remove:d,update:c,dialogHistory:i},children:[(0,g.jsx)(O.AnimatePresence,{children:m&&(0,g.jsx)(R.motion.div,{className:l,style:h({zIndex:_}),initial:{opacity:0},exit:{opacity:0},animate:{opacity:1},transition:{type:"spring",duration:.4},children:i.map(n=>(0,g.jsx)(N,{index:n.index,props:n.props,id:n.id,onRemove:n.onRemove},n.id))})}),e.children]})},P=e=>{const[i,a]=(0,t.useState)(!0),l=(0,t.useMemo)(()=>({...k({propsDialog:e.props?.propsDialog}),zIndex:-(e.index??0)}),[e.props?.propsDialog,e.index]),d=(0,t.useMemo)(()=>e.props?.propsDialog?.isRemoveOnOutsideClick??!0,[e.props?.propsDialog?.isRemoveOnOutsideClick]),c=(0,t.useCallback)(()=>{e.props?.onRemove?.(),e.onRemove?.()},[e.onRemove,e.props?.onRemove]),s=(0,t.useMemo)(()=>e.props?.content?.({remove:c,isAnimating:i,propsCustom:e.props.propsCustom}),[e.props?.content,i,e?.props?.propsCustom,c]);return e.index!==void 0&&(0,g.jsx)(S.Outside,{onOutsideClick:()=>d&&c?.(),children:(0,g.jsx)(R.motion.dialog,{className:L.setClasses([I.element]),initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},onAnimationComplete:()=>a(!1),transition:{type:"spring",duration:.3,delay:.4},style:l,children:s},e.id)})},N=(0,t.memo)(P),C=e=>{const i=A.useContextSelector(f,a=>a?e.reduce((l,d)=>(l[d]=a[d],l),{}):null);if(!i)throw new Error("useDialogs must be used within an DialogContext");return i},U=e=>{const{add:i,remove:a,update:l}=C(["add","remove","update"]),[d,c]=(0,t.useState)(null),s=(0,t.useRef)(null),m=y.useDeepCompareMemoize(e),_=(0,t.useCallback)(()=>{s.current&&(c(null),a(s.current),s.current=null)},[a]),n=(0,t.useCallback)(()=>{if(s.current)return;const r=b.v4();c(r),s.current=r,i({id:r,props:m,onRemove:()=>{_(),m?.onRemove?.()}})},[i,m,_]);return(0,t.useEffect)(()=>{s.current&&l({id:s.current,props:m})},[m,l]),{add:n,remove:_,id:d}};Object.defineProperty(exports,"ProviderDialog",{enumerable:!0,get:function(){return M}});Object.defineProperty(exports,"useDialog",{enumerable:!0,get:function(){return U}});Object.defineProperty(exports,"useDialogs",{enumerable:!0,get:function(){return C}});
1
+ const j=require("./chunk-Dd8m0Ver.cjs"),R=require("./proxy-_gZenxVU.cjs"),O=require("./AnimatePresence-BdBJCJuf.cjs"),v=require("./utils-DtinAjAU.cjs"),L=require("./functions-Dwo54amB.cjs"),y=require("./hooks-use-deep-compare-memoize.cjs.js"),S=require("./outside-B3nRnDGb.cjs"),A=require("./dist-DswBAjW1.cjs"),b=require("./v4-BDi_Luux.cjs");let g=require("react/jsx-runtime"),t=require("react");var q="fillDarkStable",I=v.CSS_CLASS.context.dialog,T=()=>I.layout,h=e=>({backgroundColor:v.CSS_VARS.palette.fillSecondaryLightStable,zIndex:e.zIndex}),k=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[q],padding:e.propsDialog?.padding||"20px"}),f=A.createContext(null),M=e=>{const[i,a]=(0,t.useState)([]),l=T(),d=(0,t.useCallback)(n=>{a(r=>{const u=r.find(o=>o.id===n);if(u===void 0)return r;const x=u.index;return x===void 0?r:r.filter(o=>o.id!==n).map(o=>{const D=o.index;return D===void 0?o:{...o,index:D>x?D-1:o.index}})})},[]),c=(0,t.useCallback)(n=>{a(r=>r.map(u=>u.id===n.id?{...u,...n}:u))},[]),s=(0,t.useCallback)(n=>{const r=n.id;a(u=>{const x=u.findIndex(D=>D.id===r);let o;if(x!==-1)o=[...u],o[x]={...n,id:r,index:u[x].index};else{o=u.map(p=>{const E=p.index;return E===void 0?p:{...p,index:E+1}});const D={...n,id:r,index:0};o.unshift(D)}return o})},[]),m=(0,t.useMemo)(()=>i.length,[i.length]),_=(0,t.useMemo)(()=>e.zIndex,[e.zIndex]);return(0,t.useEffect)(()=>()=>{a([])},[]),(0,g.jsxs)(f.Provider,{value:{add:s,remove:d,update:c,dialogHistory:i},children:[(0,g.jsx)(O.AnimatePresence,{children:m&&(0,g.jsx)(R.motion.div,{className:l,style:h({zIndex:_}),initial:{opacity:0},exit:{opacity:0},animate:{opacity:1},transition:{type:"spring",duration:.4},children:i.map(n=>(0,g.jsx)(N,{index:n.index,props:n.props,id:n.id,onRemove:n.onRemove},n.id))})}),e.children]})},P=e=>{const[i,a]=(0,t.useState)(!0),l=(0,t.useMemo)(()=>({...k({propsDialog:e.props?.propsDialog}),zIndex:-(e.index??0)}),[e.props?.propsDialog,e.index]),d=(0,t.useMemo)(()=>e.props?.propsDialog?.isRemoveOnOutsideClick??!0,[e.props?.propsDialog?.isRemoveOnOutsideClick]),c=(0,t.useCallback)(()=>{e.props?.onRemove?.(),e.onRemove?.()},[e.onRemove,e.props?.onRemove]),s=(0,t.useMemo)(()=>e.props?.content?.({remove:c,isAnimating:i,propsCustom:e.props.propsCustom}),[e.props?.content,i,e?.props?.propsCustom,c]);return e.index!==void 0&&(0,g.jsx)(S.Outside,{onOutsideClick:()=>d&&c?.(),children:(0,g.jsx)(R.motion.dialog,{className:L.setClasses([I.element]),initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},onAnimationComplete:()=>a(!1),transition:{type:"spring",duration:.3,delay:.4},style:l,children:s},e.id)})},N=(0,t.memo)(P),C=e=>{const i=A.useContextSelector(f,a=>a?e.reduce((l,d)=>(l[d]=a[d],l),{}):null);if(!i)throw new Error("useDialogs must be used within an DialogContext");return i},U=e=>{const{add:i,remove:a,update:l}=C(["add","remove","update"]),[d,c]=(0,t.useState)(null),s=(0,t.useRef)(null),m=y.useDeepCompareMemoize(e),_=(0,t.useCallback)(()=>{s.current&&(c(null),a(s.current),s.current=null)},[a]),n=(0,t.useCallback)(()=>{if(s.current)return;const r=b.v4();c(r),s.current=r,i({id:r,props:m,onRemove:()=>{_(),m?.onRemove?.()}})},[i,m,_]);return(0,t.useEffect)(()=>{s.current&&l({id:s.current,props:m})},[m,l]),{add:n,remove:_,id:d}};Object.defineProperty(exports,"ProviderDialog",{enumerable:!0,get:function(){return M}});Object.defineProperty(exports,"useDialog",{enumerable:!0,get:function(){return U}});Object.defineProperty(exports,"useDialogs",{enumerable:!0,get:function(){return C}});
2
2
 
3
- //# sourceMappingURL=context-dialog-CCnhd1EY.cjs.map
3
+ //# sourceMappingURL=context-dialog-B67-_jMH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-dialog-CCnhd1EY.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 { 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.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 zIndex: -(props.index ?? 0),\n };\n }, [props.props?.propsDialog, 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 children = useMemo(\n () => props.props?.content?.({ remove: onRemove, isAnimating: isAnimating, propsCustom: props.props.propsCustom }),\n [props.props?.content, isAnimating, props?.props?.propsCustom, onRemove],\n );\n return (\n props.index !== undefined && (\n <Outside onOutsideClick={() => 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 )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, 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 } = useDialogs(['add', 'remove', 'update']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n\n const localRemove = useCallback(() => {\n if (refId.current) {\n setId(null);\n remove(refId.current);\n refId.current = null;\n }\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 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 };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"context-dialog-B67-_jMH.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 { 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.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 zIndex: -(props.index ?? 0),\n };\n }, [props.props?.propsDialog, 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 children = useMemo(\n () => props.props?.content?.({ remove: onRemove, isAnimating: isAnimating, propsCustom: props.props.propsCustom }),\n [props.props?.content, isAnimating, props?.props?.propsCustom, onRemove],\n );\n return (\n props.index !== undefined && (\n <Outside onOutsideClick={() => 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 )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, 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 } = useDialogs(['add', 'remove', 'update']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n\n const localRemove = useCallback(() => {\n if (refId.current) {\n setId(null);\n remove(refId.current);\n refId.current = null;\n }\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 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 };\n};\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { t as f } from "./proxy-DTLy-pV-.js";
2
- import { t as C } from "./AnimatePresence-BByJ67dn.js";
1
+ import { t as f } from "./proxy-wCWa57J3.js";
2
+ import { t as C } from "./AnimatePresence-19yP-TCg.js";
3
3
  import { n as y, r as R } from "./utils-Cona48dZ.js";
4
4
  import { t as T } from "./functions-CLGf7hqw.js";
5
5
  import { useDeepCompareMemoize as h } from "./hooks-use-deep-compare-memoize.es.js";
6
- import { t as S } from "./outside-BtjOuCPD.js";
7
- import { n as N, t as M } from "./dist-Dq_YJa2q.js";
6
+ import { t as S } from "./outside-DpK1pI8b.js";
7
+ import { n as N, t as M } from "./dist-BV0C3tLK.js";
8
8
  import { t as U } from "./v4-CYaPyb-W.js";
9
9
  import { jsx as g, jsxs as P } from "react/jsx-runtime";
10
10
  import { memo as b, useCallback as x, useEffect as A, useMemo as v, useRef as k, useState as _ } from "react";
@@ -173,4 +173,4 @@ export {
173
173
  te as t
174
174
  };
175
175
 
176
- //# sourceMappingURL=context-dialog-HLeQ5WNn.js.map
176
+ //# sourceMappingURL=context-dialog-CxGGmBqC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-dialog-HLeQ5WNn.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 { 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.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 zIndex: -(props.index ?? 0),\n };\n }, [props.props?.propsDialog, 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 children = useMemo(\n () => props.props?.content?.({ remove: onRemove, isAnimating: isAnimating, propsCustom: props.props.propsCustom }),\n [props.props?.content, isAnimating, props?.props?.propsCustom, onRemove],\n );\n return (\n props.index !== undefined && (\n <Outside onOutsideClick={() => 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 )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, 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 } = useDialogs(['add', 'remove', 'update']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n\n const localRemove = useCallback(() => {\n if (refId.current) {\n setId(null);\n remove(refId.current);\n refId.current = null;\n }\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 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 };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"context-dialog-CxGGmBqC.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 { 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.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 zIndex: -(props.index ?? 0),\n };\n }, [props.props?.propsDialog, 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 children = useMemo(\n () => props.props?.content?.({ remove: onRemove, isAnimating: isAnimating, propsCustom: props.props.propsCustom }),\n [props.props?.content, isAnimating, props?.props?.propsCustom, onRemove],\n );\n return (\n props.index !== undefined && (\n <Outside onOutsideClick={() => 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 )\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { useCallback, useEffect, 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 } = useDialogs(['add', 'remove', 'update']);\n const [id, setId] = useState<string | null>(null);\n const refId = useRef<string | null>(null);\n const propsMemo = useDeepCompareMemoize(props);\n\n const localRemove = useCallback(() => {\n if (refId.current) {\n setId(null);\n remove(refId.current);\n refId.current = null;\n }\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 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 };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-CW3en5xf.cjs"),e=require("./context-dialog-CCnhd1EY.cjs");exports.ProviderDialog=e.ProviderDialog;exports.useDialog=e.useDialog;exports.useDialogs=e.useDialogs;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-dialog-B67-_jMH.cjs");exports.ProviderDialog=e.ProviderDialog;exports.useDialog=e.useDialog;exports.useDialogs=e.useDialogs;
@@ -1,4 +1,4 @@
1
- import { n as a, r, t as s } from "./context-dialog-HLeQ5WNn.js";
1
+ import { n as a, r, t as s } from "./context-dialog-CxGGmBqC.js";
2
2
  export {
3
3
  r as ProviderDialog,
4
4
  s as useDialog,
@@ -1,3 +1,3 @@
1
- const m=require("./chunk-CW3en5xf.cjs"),f=require("./context-permission-K3tWOiAx.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}});
1
+ const m=require("./chunk-Dd8m0Ver.cjs"),f=require("./context-permission-DrcIwK9y.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-ffFFV4kn.cjs.map
3
+ //# sourceMappingURL=context-geolocation-CV4hV0NX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-geolocation-ffFFV4kn.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
+ {"version":3,"file":"context-geolocation-CV4hV0NX.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-CW3en5xf.cjs"),e=require("./context-geolocation-ffFFV4kn.cjs");exports.ProviderGeolocation=e.ProviderGeolocation;exports.useGeolocation=e.useGeolocation;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-geolocation-CV4hV0NX.cjs");exports.ProviderGeolocation=e.ProviderGeolocation;exports.useGeolocation=e.useGeolocation;
@@ -1,3 +1,3 @@
1
- const P=require("./chunk-CW3en5xf.cjs"),g=require("./logger-DZFY33QY.cjs");let L=require("react/jsx-runtime"),r=require("react");var d=(0,r.createContext)(null),f=a=>{const{getLocalStorage:i,setLocalStorage:l,removeLocalStorageValue:n,removeLocalStorageValues:u,checkLocalStorage:o,localStorageValues:S}=V(a);return(0,L.jsx)(d.Provider,{value:{getLocalStorage:i,setLocalStorage:l,removeLocalStorageValue:n,removeLocalStorageValues:u,checkLocalStorage:o,localStorageValues:S},children:a.children})},V=a=>{const[i,l]=(0,r.useState)(),n=(0,r.useCallback)(e=>{const t=localStorage.getItem(e);return l(c=>({...c,[e]:t?JSON.parse(t):void 0})),t?JSON.parse(t):void 0},[]),u=(0,r.useCallback)((e,t)=>{try{localStorage.setItem(String(e),JSON.stringify(t)),l(c=>({...c,[e]:t}))}catch{g.logger.info(`Provider LocalStorage. ChangeLocalStorage error - key:${e}, value:${t}.`)}},[]),o=(0,r.useCallback)(e=>{try{localStorage.removeItem(String(e)),l(t=>({...t,[e]:void 0}))}catch{g.logger.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${e}.`)}},[]),S=(0,r.useCallback)(()=>{a.validate?.validateKeys?a.validate?.validateKeys.forEach(e=>{o(String(e))}):g.logger.info("Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.")},[a.validate,o]),s=(0,r.useCallback)(()=>{a.validate?.validateKeys&&a.validate.getValidateLocalStorageValue?a.validate?.validateKeys.forEach(e=>{const t=localStorage.getItem(e);if(t)try{const c=JSON.parse(t);a.validate?.getValidateLocalStorageValue(String(e),c)?l(v=>({...v,[e]:c})):o(String(e))}catch{o(String(e))}else o(String(e))}):g.logger.info("Provider LocalStorage. CheckLocalStorage - validate is not defined.")},[a.validate,o]);return(0,r.useEffect)(()=>{s()},[s]),(0,r.useEffect)(()=>()=>{l(void 0)},[]),{getLocalStorage:n,setLocalStorage:u,removeLocalStorageValue:o,removeLocalStorageValues:S,checkLocalStorage:s,localStorageValues:i}},h=()=>{const a=(0,r.useContext)(d);if(!a)throw new Error("useLocalStorage must be used within an ProviderLocalStorage");return a};Object.defineProperty(exports,"ProviderLocalStorage",{enumerable:!0,get:function(){return f}});Object.defineProperty(exports,"useLocalStorage",{enumerable:!0,get:function(){return h}});
1
+ const P=require("./chunk-Dd8m0Ver.cjs"),g=require("./logger-DZFY33QY.cjs");let L=require("react/jsx-runtime"),r=require("react");var d=(0,r.createContext)(null),f=a=>{const{getLocalStorage:i,setLocalStorage:l,removeLocalStorageValue:n,removeLocalStorageValues:u,checkLocalStorage:o,localStorageValues:S}=V(a);return(0,L.jsx)(d.Provider,{value:{getLocalStorage:i,setLocalStorage:l,removeLocalStorageValue:n,removeLocalStorageValues:u,checkLocalStorage:o,localStorageValues:S},children:a.children})},V=a=>{const[i,l]=(0,r.useState)(),n=(0,r.useCallback)(e=>{const t=localStorage.getItem(e);return l(c=>({...c,[e]:t?JSON.parse(t):void 0})),t?JSON.parse(t):void 0},[]),u=(0,r.useCallback)((e,t)=>{try{localStorage.setItem(String(e),JSON.stringify(t)),l(c=>({...c,[e]:t}))}catch{g.logger.info(`Provider LocalStorage. ChangeLocalStorage error - key:${e}, value:${t}.`)}},[]),o=(0,r.useCallback)(e=>{try{localStorage.removeItem(String(e)),l(t=>({...t,[e]:void 0}))}catch{g.logger.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${e}.`)}},[]),S=(0,r.useCallback)(()=>{a.validate?.validateKeys?a.validate?.validateKeys.forEach(e=>{o(String(e))}):g.logger.info("Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.")},[a.validate,o]),s=(0,r.useCallback)(()=>{a.validate?.validateKeys&&a.validate.getValidateLocalStorageValue?a.validate?.validateKeys.forEach(e=>{const t=localStorage.getItem(e);if(t)try{const c=JSON.parse(t);a.validate?.getValidateLocalStorageValue(String(e),c)?l(v=>({...v,[e]:c})):o(String(e))}catch{o(String(e))}else o(String(e))}):g.logger.info("Provider LocalStorage. CheckLocalStorage - validate is not defined.")},[a.validate,o]);return(0,r.useEffect)(()=>{s()},[s]),(0,r.useEffect)(()=>()=>{l(void 0)},[]),{getLocalStorage:n,setLocalStorage:u,removeLocalStorageValue:o,removeLocalStorageValues:S,checkLocalStorage:s,localStorageValues:i}},h=()=>{const a=(0,r.useContext)(d);if(!a)throw new Error("useLocalStorage must be used within an ProviderLocalStorage");return a};Object.defineProperty(exports,"ProviderLocalStorage",{enumerable:!0,get:function(){return f}});Object.defineProperty(exports,"useLocalStorage",{enumerable:!0,get:function(){return h}});
2
2
 
3
- //# sourceMappingURL=context-local-storage-kmxWNK_4.cjs.map
3
+ //# sourceMappingURL=context-local-storage-DUKHVPAA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-local-storage-kmxWNK_4.cjs","names":[],"sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.hooks.ts"],"sourcesContent":["import { logger } from '@local/cores/logger';\n\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ILocalStorageContext, ILocalStorageProvider, IValidLocalStorageObject } from './context.types';\n\nexport const LocalStorageContext = createContext<ILocalStorageContext | null>(null);\n\n/**\n * Provider component for managing local storage.\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 IValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ILocalStorageProvider> = (props) => {\n const {\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n } = useProviderLocalStorage(props);\n\n return (\n <LocalStorageContext.Provider\n value={{\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n }}\n >\n {props.children}\n </LocalStorageContext.Provider>\n );\n};\n\nconst useProviderLocalStorage = (props: ILocalStorageProvider) => {\n const [localStorageValues, setLocalStorageValues] = useState<IValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof IValidLocalStorageObject>(name: K): IValidLocalStorageObject[K] | undefined => {\n const localStorageValue = localStorage.getItem(name);\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: localStorageValue ? JSON.parse(localStorageValue) : undefined,\n }));\n return localStorageValue ? JSON.parse(localStorageValue) : undefined;\n },\n [],\n );\n\n const changeLocalStorage = useCallback(\n <K extends keyof IValidLocalStorageObject>(name: K, value: IValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof IValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n logger.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n logger.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate?.validateKeys && props.validate.getValidateLocalStorageValue) {\n props.validate?.validateKeys.forEach((key) => {\n const localStorageValue = localStorage.getItem(key);\n if (localStorageValue) {\n try {\n const parsedValue = JSON.parse(localStorageValue);\n if (!props.validate?.getValidateLocalStorageValue(String(key) as never, parsedValue as never)) {\n removeLocalStorageValue(String(key) as never);\n } else {\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeLocalStorageValue(String(key) as never);\n }\n } else {\n removeLocalStorageValue(String(key) as never);\n }\n });\n } else {\n logger.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\n\n useEffect(() => {\n return () => {\n setLocalStorageValues(undefined);\n };\n }, []);\n\n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n };\n};\n","import { useContext } from 'react';\n\nimport { LocalStorageContext } from './context';\nimport { ILocalStorageContext } from './context.types';\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): ILocalStorageContext => {\n const context = useContext(LocalStorageContext);\n if (!context) {\n throw new Error('useLocalStorage must be used within an ProviderLocalStorage');\n }\n return context;\n};\n"],"mappings":"iIAMA,IAAa,KAAA,EAAA,eAAiE,IAAA,EAmBjE,EAAmD,GAAU,CACxE,KAAM,CACJ,gBAAA,EACA,gBAAA,EACA,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,CAAA,EACE,EAAwB,CAAA,EAE5B,SACE,EAAA,KAAC,EAAoB,SAArB,CACE,MAAO,CACL,gBAAA,EACA,gBAAA,EACA,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,YAGD,EAAM,SACsB,GAI7B,EAA2B,GAAiC,CAChE,KAAM,CAAC,EAAoB,CAAA,KAAA,EAAA,UAAA,EAErB,KAAA,EAAA,aACuC,GAAqD,CAC9F,MAAM,EAAoB,aAAa,QAAQ,CAAA,EAC/C,OAAA,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAO,EAAoB,KAAK,MAAM,CAAA,EAAqB,QAC7D,EACM,EAAoB,KAAK,MAAM,CAAA,EAAqB,QAE7D,CAAA,CAAE,EAGE,KAAA,EAAA,aAAA,CACuC,EAAS,IAAuC,CACzF,GAAI,CACF,aAAa,QAAQ,OAAO,CAAA,EAAO,KAAK,UAAU,CAAA,CAAM,EACxD,EAAuB,IAAe,CAAE,GAAG,GAAY,CAAA,EAAO,GAAO,OAC/D,CACN,EAAA,OAAO,KAAK,yDAAyD,CAAA,WAAe,CAAA,GAAM,IAG9F,CAAA,CAAE,EAGE,KAAA,EAAA,aAAiF,GAAY,CACjG,GAAI,CACF,aAAa,WAAW,OAAO,CAAA,CAAK,EACpC,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAO,QACT,OACK,CACN,EAAA,OAAO,KAAK,8DAA8D,CAAA,GAAK,IAEhF,CAAA,CAAE,EAEC,KAAA,EAAA,aAAA,IAA6C,CAC7C,EAAM,UAAU,aAClB,EAAM,UAAU,aAAa,QAAS,GAAQ,CAC5C,EAAwB,OAAO,CAAA,CAAI,IAGrC,EAAA,OAAO,KAAK,4EAAA,GAEb,CAAC,EAAM,SAAU,CAAA,CAAwB,EAEtC,KAAA,EAAA,aAAA,IAAsC,CACtC,EAAM,UAAU,cAAgB,EAAM,SAAS,6BACjD,EAAM,UAAU,aAAa,QAAS,GAAQ,CAC5C,MAAM,EAAoB,aAAa,QAAQ,CAAA,EAC/C,GAAI,EACF,GAAI,CACF,MAAM,EAAc,KAAK,MAAM,CAAA,EAC1B,EAAM,UAAU,6BAA6B,OAAO,CAAA,EAAe,CAAA,EAGtE,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAM,GACR,EALD,EAAwB,OAAO,CAAA,CAAI,OAO/B,CACN,EAAwB,OAAO,CAAA,CAAI,OAGrC,EAAwB,OAAO,CAAA,CAAI,IAIvC,EAAA,OAAO,KAAK,qEAAA,GAEb,CAAC,EAAM,SAAU,CAAA,CAAwB,EAE5C,SAAA,EAAA,WAAA,IAAgB,CACd,EAAA,GACC,CAAC,CAAA,CAAkB,KAEtB,EAAA,WAAA,IACE,IAAa,CACX,EAAsB,MAAA,GAEvB,CAAA,CAAE,EAEE,CACL,gBAAA,EACA,gBAAiB,EACjB,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,ICvIS,EAAA,IAA8C,CACzD,MAAM,KAAA,EAAA,YAAqB,CAAA,EAC3B,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,6DAAA,EAElB,OAAO"}
1
+ {"version":3,"file":"context-local-storage-DUKHVPAA.cjs","names":[],"sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.hooks.ts"],"sourcesContent":["import { logger } from '@local/cores/logger';\n\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { ILocalStorageContext, ILocalStorageProvider, IValidLocalStorageObject } from './context.types';\n\nexport const LocalStorageContext = createContext<ILocalStorageContext | null>(null);\n\n/**\n * Provider component for managing local storage.\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 IValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ILocalStorageProvider> = (props) => {\n const {\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n } = useProviderLocalStorage(props);\n\n return (\n <LocalStorageContext.Provider\n value={{\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n }}\n >\n {props.children}\n </LocalStorageContext.Provider>\n );\n};\n\nconst useProviderLocalStorage = (props: ILocalStorageProvider) => {\n const [localStorageValues, setLocalStorageValues] = useState<IValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof IValidLocalStorageObject>(name: K): IValidLocalStorageObject[K] | undefined => {\n const localStorageValue = localStorage.getItem(name);\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: localStorageValue ? JSON.parse(localStorageValue) : undefined,\n }));\n return localStorageValue ? JSON.parse(localStorageValue) : undefined;\n },\n [],\n );\n\n const changeLocalStorage = useCallback(\n <K extends keyof IValidLocalStorageObject>(name: K, value: IValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n logger.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof IValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n logger.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n logger.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate?.validateKeys && props.validate.getValidateLocalStorageValue) {\n props.validate?.validateKeys.forEach((key) => {\n const localStorageValue = localStorage.getItem(key);\n if (localStorageValue) {\n try {\n const parsedValue = JSON.parse(localStorageValue);\n if (!props.validate?.getValidateLocalStorageValue(String(key) as never, parsedValue as never)) {\n removeLocalStorageValue(String(key) as never);\n } else {\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeLocalStorageValue(String(key) as never);\n }\n } else {\n removeLocalStorageValue(String(key) as never);\n }\n });\n } else {\n logger.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\n\n useEffect(() => {\n return () => {\n setLocalStorageValues(undefined);\n };\n }, []);\n\n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n };\n};\n","import { useContext } from 'react';\n\nimport { LocalStorageContext } from './context';\nimport { ILocalStorageContext } from './context.types';\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): ILocalStorageContext => {\n const context = useContext(LocalStorageContext);\n if (!context) {\n throw new Error('useLocalStorage must be used within an ProviderLocalStorage');\n }\n return context;\n};\n"],"mappings":"iIAMA,IAAa,KAAA,EAAA,eAAiE,IAAA,EAmBjE,EAAmD,GAAU,CACxE,KAAM,CACJ,gBAAA,EACA,gBAAA,EACA,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,CAAA,EACE,EAAwB,CAAA,EAE5B,SACE,EAAA,KAAC,EAAoB,SAArB,CACE,MAAO,CACL,gBAAA,EACA,gBAAA,EACA,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,YAGD,EAAM,SACsB,GAI7B,EAA2B,GAAiC,CAChE,KAAM,CAAC,EAAoB,CAAA,KAAA,EAAA,UAAA,EAErB,KAAA,EAAA,aACuC,GAAqD,CAC9F,MAAM,EAAoB,aAAa,QAAQ,CAAA,EAC/C,OAAA,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAO,EAAoB,KAAK,MAAM,CAAA,EAAqB,QAC7D,EACM,EAAoB,KAAK,MAAM,CAAA,EAAqB,QAE7D,CAAA,CAAE,EAGE,KAAA,EAAA,aAAA,CACuC,EAAS,IAAuC,CACzF,GAAI,CACF,aAAa,QAAQ,OAAO,CAAA,EAAO,KAAK,UAAU,CAAA,CAAM,EACxD,EAAuB,IAAe,CAAE,GAAG,GAAY,CAAA,EAAO,GAAO,OAC/D,CACN,EAAA,OAAO,KAAK,yDAAyD,CAAA,WAAe,CAAA,GAAM,IAG9F,CAAA,CAAE,EAGE,KAAA,EAAA,aAAiF,GAAY,CACjG,GAAI,CACF,aAAa,WAAW,OAAO,CAAA,CAAK,EACpC,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAO,QACT,OACK,CACN,EAAA,OAAO,KAAK,8DAA8D,CAAA,GAAK,IAEhF,CAAA,CAAE,EAEC,KAAA,EAAA,aAAA,IAA6C,CAC7C,EAAM,UAAU,aAClB,EAAM,UAAU,aAAa,QAAS,GAAQ,CAC5C,EAAwB,OAAO,CAAA,CAAI,IAGrC,EAAA,OAAO,KAAK,4EAAA,GAEb,CAAC,EAAM,SAAU,CAAA,CAAwB,EAEtC,KAAA,EAAA,aAAA,IAAsC,CACtC,EAAM,UAAU,cAAgB,EAAM,SAAS,6BACjD,EAAM,UAAU,aAAa,QAAS,GAAQ,CAC5C,MAAM,EAAoB,aAAa,QAAQ,CAAA,EAC/C,GAAI,EACF,GAAI,CACF,MAAM,EAAc,KAAK,MAAM,CAAA,EAC1B,EAAM,UAAU,6BAA6B,OAAO,CAAA,EAAe,CAAA,EAGtE,EAAuB,IAAe,CACpC,GAAG,GACF,CAAA,EAAM,GACR,EALD,EAAwB,OAAO,CAAA,CAAI,OAO/B,CACN,EAAwB,OAAO,CAAA,CAAI,OAGrC,EAAwB,OAAO,CAAA,CAAI,IAIvC,EAAA,OAAO,KAAK,qEAAA,GAEb,CAAC,EAAM,SAAU,CAAA,CAAwB,EAE5C,SAAA,EAAA,WAAA,IAAgB,CACd,EAAA,GACC,CAAC,CAAA,CAAkB,KAEtB,EAAA,WAAA,IACE,IAAa,CACX,EAAsB,MAAA,GAEvB,CAAA,CAAE,EAEE,CACL,gBAAA,EACA,gBAAiB,EACjB,wBAAA,EACA,yBAAA,EACA,kBAAA,EACA,mBAAA,ICvIS,EAAA,IAA8C,CACzD,MAAM,KAAA,EAAA,YAAqB,CAAA,EAC3B,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,6DAAA,EAElB,OAAO"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-CW3en5xf.cjs"),e=require("./context-local-storage-kmxWNK_4.cjs");exports.ProviderLocalStorage=e.ProviderLocalStorage;exports.useLocalStorage=e.useLocalStorage;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-local-storage-DUKHVPAA.cjs");exports.ProviderLocalStorage=e.ProviderLocalStorage;exports.useLocalStorage=e.useLocalStorage;
@@ -1,3 +1,3 @@
1
- const v=require("./chunk-CW3en5xf.cjs"),s=require("./logger-DZFY33QY.cjs");let f=require("react/jsx-runtime"),e=require("react");var c=(0,e.createContext)(null),d=o=>{const{pushNotificationSupported:i}=g(),{isBiometricSupported:t}=P(),{notificationPermission:r,requestNotificationPermission:a,isNotificationPermissionLoading:n}=w(),{geolocationPermission:u,requestGeolocationPermission:l}=m();return(0,f.jsx)(c.Provider,{value:{isBiometricSupported:t,geolocationPermission:u,pushNotificationSupported:i,requestGeolocationPermission:l,notificationPermission:r,requestNotificationPermission:a,isNotificationPermissionLoading:n},children:o.children})},P=()=>{const[o,i]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{(async()=>{try{window.PublicKeyCredential&&typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable=="function"?i(await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()):i(!1)}catch(r){s.logger.error("Error checking biometric availability:",r),i(!1)}})()},[]),{isBiometricSupported:o}},m=()=>{const[o,i]=(0,e.useState)(null);return(0,e.useEffect)(()=>{"permissions"in window.navigator&&window.navigator.permissions.query({name:"geolocation"}).then(t=>{i(t.state),t.onchange=()=>{i(t.state)}})},[]),{geolocationPermission:o,requestGeolocationPermission:(0,e.useCallback)(()=>{"geolocation"in window.navigator?window.navigator.geolocation.getCurrentPosition(()=>i("granted"),()=>i("denied")):s.logger.warn("Provider Permission. Geolocation is not supported in this browser.")},[])}},w=()=>{const[o,i]=(0,e.useState)(null),[t,r]=(0,e.useState)(!1),a=(0,e.useCallback)(async()=>{if(r(!0),"Notification"in window)try{r(!0);const n=await window.Notification.requestPermission();return i(n),r(!1),n}catch(n){s.logger.error("Provider Permission. Failed to request notification permission:",n)}else s.logger.warn("Provider Permission. Notifications are not supported in this browser.");r(!1)},[]);return(0,e.useEffect)(()=>{"Notification"in window&&i(window.Notification.permission)},[]),{notificationPermission:o,requestNotificationPermission:a,isNotificationPermissionLoading:t}},g=()=>{const[o,i]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{"PushManager"in window&&i(!0)},[]),{pushNotificationSupported:o}},p=()=>{const o=(0,e.useContext)(c);if(!o)throw new Error("usePermission must be used within an PermissionProvider");return o};Object.defineProperty(exports,"ProviderPermission",{enumerable:!0,get:function(){return d}});Object.defineProperty(exports,"usePermission",{enumerable:!0,get:function(){return p}});
1
+ const v=require("./chunk-Dd8m0Ver.cjs"),s=require("./logger-DZFY33QY.cjs");let f=require("react/jsx-runtime"),e=require("react");var c=(0,e.createContext)(null),d=o=>{const{pushNotificationSupported:i}=g(),{isBiometricSupported:t}=P(),{notificationPermission:r,requestNotificationPermission:a,isNotificationPermissionLoading:n}=w(),{geolocationPermission:u,requestGeolocationPermission:l}=m();return(0,f.jsx)(c.Provider,{value:{isBiometricSupported:t,geolocationPermission:u,pushNotificationSupported:i,requestGeolocationPermission:l,notificationPermission:r,requestNotificationPermission:a,isNotificationPermissionLoading:n},children:o.children})},P=()=>{const[o,i]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{(async()=>{try{window.PublicKeyCredential&&typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable=="function"?i(await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()):i(!1)}catch(r){s.logger.error("Error checking biometric availability:",r),i(!1)}})()},[]),{isBiometricSupported:o}},m=()=>{const[o,i]=(0,e.useState)(null);return(0,e.useEffect)(()=>{"permissions"in window.navigator&&window.navigator.permissions.query({name:"geolocation"}).then(t=>{i(t.state),t.onchange=()=>{i(t.state)}})},[]),{geolocationPermission:o,requestGeolocationPermission:(0,e.useCallback)(()=>{"geolocation"in window.navigator?window.navigator.geolocation.getCurrentPosition(()=>i("granted"),()=>i("denied")):s.logger.warn("Provider Permission. Geolocation is not supported in this browser.")},[])}},w=()=>{const[o,i]=(0,e.useState)(null),[t,r]=(0,e.useState)(!1),a=(0,e.useCallback)(async()=>{if(r(!0),"Notification"in window)try{r(!0);const n=await window.Notification.requestPermission();return i(n),r(!1),n}catch(n){s.logger.error("Provider Permission. Failed to request notification permission:",n)}else s.logger.warn("Provider Permission. Notifications are not supported in this browser.");r(!1)},[]);return(0,e.useEffect)(()=>{"Notification"in window&&i(window.Notification.permission)},[]),{notificationPermission:o,requestNotificationPermission:a,isNotificationPermissionLoading:t}},g=()=>{const[o,i]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{"PushManager"in window&&i(!0)},[]),{pushNotificationSupported:o}},p=()=>{const o=(0,e.useContext)(c);if(!o)throw new Error("usePermission must be used within an PermissionProvider");return o};Object.defineProperty(exports,"ProviderPermission",{enumerable:!0,get:function(){return d}});Object.defineProperty(exports,"usePermission",{enumerable:!0,get:function(){return p}});
2
2
 
3
- //# sourceMappingURL=context-permission-K3tWOiAx.cjs.map
3
+ //# sourceMappingURL=context-permission-DrcIwK9y.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-permission-K3tWOiAx.cjs","names":[],"sources":["../src/contexts/context-permission/context.tsx","../src/contexts/context-permission/context.hooks.ts"],"sourcesContent":["import { logger } from '@local/cores/logger';\n\nimport { createContext, useCallback, useEffect, useState } from 'react';\n\nimport { IPermissionContext, IPermissionProvider } from './context.types';\n\nexport const PermissionContext = createContext<IPermissionContext | null>(null);\n\nexport const ProviderPermission = (props: IPermissionProvider) => {\n const { pushNotificationSupported } = usePushNotificationSupported();\n const { isBiometricSupported } = useBiometricSupported();\n const { notificationPermission, requestNotificationPermission, isNotificationPermissionLoading } =\n useNotificationPermission();\n const { geolocationPermission, requestGeolocationPermission } = useGeolocationPermission();\n\n return (\n <PermissionContext.Provider\n value={{\n isBiometricSupported,\n geolocationPermission,\n pushNotificationSupported,\n requestGeolocationPermission,\n notificationPermission,\n requestNotificationPermission,\n isNotificationPermissionLoading,\n }}\n >\n {props.children}\n </PermissionContext.Provider>\n );\n};\n\nconst useBiometricSupported = () => {\n const [isBiometricSupported, setIsBiometricSupported] = useState(false);\n\n useEffect(() => {\n const checkBiometricAvailability = async () => {\n try {\n if (\n window.PublicKeyCredential &&\n typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable === 'function'\n ) {\n const available = await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();\n setIsBiometricSupported(available);\n } else {\n setIsBiometricSupported(false);\n }\n } catch (error) {\n logger.error('Error checking biometric availability:', error);\n setIsBiometricSupported(false);\n }\n };\n\n checkBiometricAvailability();\n }, []);\n\n return { isBiometricSupported };\n};\n\nconst useGeolocationPermission = () => {\n // eslint-disable-next-line no-undef\n const [geolocationPermission, setGeolocationPermission] = useState<PermissionState | null>(null);\n\n useEffect(() => {\n if ('permissions' in window.navigator) {\n window.navigator.permissions.query({ name: 'geolocation' }).then((permissionStatus) => {\n setGeolocationPermission(permissionStatus.state);\n permissionStatus.onchange = () => {\n setGeolocationPermission(permissionStatus.state);\n };\n });\n }\n }, []);\n\n const requestGeolocationPermission = useCallback(() => {\n if ('geolocation' in window.navigator) {\n window.navigator.geolocation.getCurrentPosition(\n () => setGeolocationPermission('granted'),\n () => setGeolocationPermission('denied'),\n );\n } else {\n logger.warn('Provider Permission. Geolocation is not supported in this browser.');\n }\n }, []);\n\n return { geolocationPermission, requestGeolocationPermission };\n};\n\nconst useNotificationPermission = () => {\n // eslint-disable-next-line no-undef\n const [notificationPermission, setNotificationPermission] = useState<NotificationPermission | null>(null);\n const [isNotificationPermissionLoading, setIsNotificationPermissionLoading] = useState<boolean>(false);\n\n const requestNotificationPermission = useCallback(async () => {\n setIsNotificationPermissionLoading(true);\n if ('Notification' in window) {\n try {\n setIsNotificationPermissionLoading(true);\n const permission = await window.Notification.requestPermission();\n setNotificationPermission(permission);\n setIsNotificationPermissionLoading(false);\n return permission;\n } catch (error) {\n logger.error('Provider Permission. Failed to request notification permission:', error);\n }\n } else {\n logger.warn('Provider Permission. Notifications are not supported in this browser.');\n }\n setIsNotificationPermissionLoading(false);\n }, []);\n\n useEffect(() => {\n if ('Notification' in window) {\n setNotificationPermission(window.Notification.permission);\n }\n }, []);\n\n return { notificationPermission, requestNotificationPermission, isNotificationPermissionLoading };\n};\n\nconst usePushNotificationSupported = () => {\n const [pushNotificationSupported, setPushNotificationSupported] = useState<boolean>(false);\n\n useEffect(() => {\n if ('PushManager' in window) {\n setPushNotificationSupported(true);\n }\n }, []);\n\n return { pushNotificationSupported };\n};\n","import { useContext } from 'react';\n\nimport { PermissionContext } from './context';\nimport { IPermissionContext } from './context.types';\n\n/**\n * Custom hook to access the PermissionContext.\n */\nexport const usePermission = (): IPermissionContext => {\n const context = useContext(PermissionContext);\n if (!context) {\n throw new Error('usePermission must be used within an PermissionProvider');\n }\n return context;\n};\n"],"mappings":"iIAMA,IAAa,KAAA,EAAA,eAA6D,IAAA,EAE7D,EAAsB,GAA+B,CAChE,KAAM,CAAE,0BAAA,CAAA,EAA8B,EAAA,EAChC,CAAE,qBAAA,CAAA,EAAyB,EAAA,EAC3B,CAAE,uBAAA,EAAwB,8BAAA,EAA+B,gCAAA,CAAA,EAC7D,EAAA,EACI,CAAE,sBAAA,EAAuB,6BAAA,CAAA,EAAiC,EAAA,EAEhE,SACE,EAAA,KAAC,EAAkB,SAAnB,CACE,MAAO,CACL,qBAAA,EACA,sBAAA,EACA,0BAAA,EACA,6BAAA,EACA,uBAAA,EACA,8BAAA,EACA,gCAAA,YAGD,EAAM,SACoB,GAI3B,EAAA,IAA8B,CAClC,KAAM,CAAC,EAAsB,CAAA,KAAA,EAAA,UAAoC,EAAA,EAEjE,SAAA,EAAA,WAAA,IAAgB,EACqB,SAAY,CAC7C,GAAI,CAEA,OAAO,qBACP,OAAO,OAAO,oBAAoB,+CAAkD,WAGpF,EADkB,MAAM,OAAO,oBAAoB,8CAAA,CAA+C,EAGlG,EAAwB,EAAA,QAEnB,EAAO,CACd,EAAA,OAAO,MAAM,yCAA0C,CAAA,EACvD,EAAwB,EAAA,KAI5B,GACC,CAAA,CAAE,EAEE,CAAE,qBAAA,CAAA,GAGL,EAAA,IAAiC,CAErC,KAAM,CAAC,EAAuB,CAAA,KAAA,EAAA,UAA6D,IAAA,EAE3F,SAAA,EAAA,WAAA,IAAgB,CACV,gBAAiB,OAAO,WAC1B,OAAO,UAAU,YAAY,MAAM,CAAE,KAAM,aAAA,CAAe,EAAE,KAAM,GAAqB,CACrF,EAAyB,EAAiB,KAAA,EAC1C,EAAiB,SAAA,IAAiB,CAChC,EAAyB,EAAiB,KAAA,MAI/C,CAAA,CAAE,EAaE,CAAE,sBAAA,EAAuB,gCAAA,EAAA,aAAA,IAXuB,CACjD,gBAAiB,OAAO,UAC1B,OAAO,UAAU,YAAY,mBAAA,IACrB,EAAyB,SAAA,EAAU,IACnC,EAAyB,QAAA,CAAS,EAG1C,EAAA,OAAO,KAAK,oEAAA,GAEb,CAAA,CAAE,IAKD,EAAA,IAAkC,CAEtC,KAAM,CAAC,EAAwB,CAAA,KAAA,EAAA,UAAqE,IAAA,EAC9F,CAAC,EAAiC,CAAA,KAAA,EAAA,UAAwD,EAAA,EAE1F,KAAA,EAAA,aAA4C,SAAY,CAE5D,GADA,EAAmC,EAAA,EAC/B,iBAAkB,OACpB,GAAI,CACF,EAAmC,EAAA,EACnC,MAAM,EAAa,MAAM,OAAO,aAAa,kBAAA,EAC7C,OAAA,EAA0B,CAAA,EAC1B,EAAmC,EAAA,EAC5B,QACA,EAAO,CACd,EAAA,OAAO,MAAM,kEAAmE,CAAA,OAGlF,EAAA,OAAO,KAAK,uEAAA,EAEd,EAAmC,EAAA,GAClC,CAAA,CAAE,EAEL,SAAA,EAAA,WAAA,IAAgB,CACV,iBAAkB,QACpB,EAA0B,OAAO,aAAa,UAAA,GAE/C,CAAA,CAAE,EAEE,CAAE,uBAAA,EAAwB,8BAAA,EAA+B,gCAAA,IAG5D,EAAA,IAAqC,CACzC,KAAM,CAAC,EAA2B,CAAA,KAAA,EAAA,UAAkD,EAAA,EAEpF,SAAA,EAAA,WAAA,IAAgB,CACV,gBAAiB,QACnB,EAA6B,EAAA,GAE9B,CAAA,CAAE,EAEE,CAAE,0BAAA,CAAA,GCzHE,EAAA,IAA0C,CACrD,MAAM,KAAA,EAAA,YAAqB,CAAA,EAC3B,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,yDAAA,EAElB,OAAO"}
1
+ {"version":3,"file":"context-permission-DrcIwK9y.cjs","names":[],"sources":["../src/contexts/context-permission/context.tsx","../src/contexts/context-permission/context.hooks.ts"],"sourcesContent":["import { logger } from '@local/cores/logger';\n\nimport { createContext, useCallback, useEffect, useState } from 'react';\n\nimport { IPermissionContext, IPermissionProvider } from './context.types';\n\nexport const PermissionContext = createContext<IPermissionContext | null>(null);\n\nexport const ProviderPermission = (props: IPermissionProvider) => {\n const { pushNotificationSupported } = usePushNotificationSupported();\n const { isBiometricSupported } = useBiometricSupported();\n const { notificationPermission, requestNotificationPermission, isNotificationPermissionLoading } =\n useNotificationPermission();\n const { geolocationPermission, requestGeolocationPermission } = useGeolocationPermission();\n\n return (\n <PermissionContext.Provider\n value={{\n isBiometricSupported,\n geolocationPermission,\n pushNotificationSupported,\n requestGeolocationPermission,\n notificationPermission,\n requestNotificationPermission,\n isNotificationPermissionLoading,\n }}\n >\n {props.children}\n </PermissionContext.Provider>\n );\n};\n\nconst useBiometricSupported = () => {\n const [isBiometricSupported, setIsBiometricSupported] = useState(false);\n\n useEffect(() => {\n const checkBiometricAvailability = async () => {\n try {\n if (\n window.PublicKeyCredential &&\n typeof window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable === 'function'\n ) {\n const available = await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();\n setIsBiometricSupported(available);\n } else {\n setIsBiometricSupported(false);\n }\n } catch (error) {\n logger.error('Error checking biometric availability:', error);\n setIsBiometricSupported(false);\n }\n };\n\n checkBiometricAvailability();\n }, []);\n\n return { isBiometricSupported };\n};\n\nconst useGeolocationPermission = () => {\n // eslint-disable-next-line no-undef\n const [geolocationPermission, setGeolocationPermission] = useState<PermissionState | null>(null);\n\n useEffect(() => {\n if ('permissions' in window.navigator) {\n window.navigator.permissions.query({ name: 'geolocation' }).then((permissionStatus) => {\n setGeolocationPermission(permissionStatus.state);\n permissionStatus.onchange = () => {\n setGeolocationPermission(permissionStatus.state);\n };\n });\n }\n }, []);\n\n const requestGeolocationPermission = useCallback(() => {\n if ('geolocation' in window.navigator) {\n window.navigator.geolocation.getCurrentPosition(\n () => setGeolocationPermission('granted'),\n () => setGeolocationPermission('denied'),\n );\n } else {\n logger.warn('Provider Permission. Geolocation is not supported in this browser.');\n }\n }, []);\n\n return { geolocationPermission, requestGeolocationPermission };\n};\n\nconst useNotificationPermission = () => {\n // eslint-disable-next-line no-undef\n const [notificationPermission, setNotificationPermission] = useState<NotificationPermission | null>(null);\n const [isNotificationPermissionLoading, setIsNotificationPermissionLoading] = useState<boolean>(false);\n\n const requestNotificationPermission = useCallback(async () => {\n setIsNotificationPermissionLoading(true);\n if ('Notification' in window) {\n try {\n setIsNotificationPermissionLoading(true);\n const permission = await window.Notification.requestPermission();\n setNotificationPermission(permission);\n setIsNotificationPermissionLoading(false);\n return permission;\n } catch (error) {\n logger.error('Provider Permission. Failed to request notification permission:', error);\n }\n } else {\n logger.warn('Provider Permission. Notifications are not supported in this browser.');\n }\n setIsNotificationPermissionLoading(false);\n }, []);\n\n useEffect(() => {\n if ('Notification' in window) {\n setNotificationPermission(window.Notification.permission);\n }\n }, []);\n\n return { notificationPermission, requestNotificationPermission, isNotificationPermissionLoading };\n};\n\nconst usePushNotificationSupported = () => {\n const [pushNotificationSupported, setPushNotificationSupported] = useState<boolean>(false);\n\n useEffect(() => {\n if ('PushManager' in window) {\n setPushNotificationSupported(true);\n }\n }, []);\n\n return { pushNotificationSupported };\n};\n","import { useContext } from 'react';\n\nimport { PermissionContext } from './context';\nimport { IPermissionContext } from './context.types';\n\n/**\n * Custom hook to access the PermissionContext.\n */\nexport const usePermission = (): IPermissionContext => {\n const context = useContext(PermissionContext);\n if (!context) {\n throw new Error('usePermission must be used within an PermissionProvider');\n }\n return context;\n};\n"],"mappings":"iIAMA,IAAa,KAAA,EAAA,eAA6D,IAAA,EAE7D,EAAsB,GAA+B,CAChE,KAAM,CAAE,0BAAA,CAAA,EAA8B,EAAA,EAChC,CAAE,qBAAA,CAAA,EAAyB,EAAA,EAC3B,CAAE,uBAAA,EAAwB,8BAAA,EAA+B,gCAAA,CAAA,EAC7D,EAAA,EACI,CAAE,sBAAA,EAAuB,6BAAA,CAAA,EAAiC,EAAA,EAEhE,SACE,EAAA,KAAC,EAAkB,SAAnB,CACE,MAAO,CACL,qBAAA,EACA,sBAAA,EACA,0BAAA,EACA,6BAAA,EACA,uBAAA,EACA,8BAAA,EACA,gCAAA,YAGD,EAAM,SACoB,GAI3B,EAAA,IAA8B,CAClC,KAAM,CAAC,EAAsB,CAAA,KAAA,EAAA,UAAoC,EAAA,EAEjE,SAAA,EAAA,WAAA,IAAgB,EACqB,SAAY,CAC7C,GAAI,CAEA,OAAO,qBACP,OAAO,OAAO,oBAAoB,+CAAkD,WAGpF,EADkB,MAAM,OAAO,oBAAoB,8CAAA,CAA+C,EAGlG,EAAwB,EAAA,QAEnB,EAAO,CACd,EAAA,OAAO,MAAM,yCAA0C,CAAA,EACvD,EAAwB,EAAA,KAI5B,GACC,CAAA,CAAE,EAEE,CAAE,qBAAA,CAAA,GAGL,EAAA,IAAiC,CAErC,KAAM,CAAC,EAAuB,CAAA,KAAA,EAAA,UAA6D,IAAA,EAE3F,SAAA,EAAA,WAAA,IAAgB,CACV,gBAAiB,OAAO,WAC1B,OAAO,UAAU,YAAY,MAAM,CAAE,KAAM,aAAA,CAAe,EAAE,KAAM,GAAqB,CACrF,EAAyB,EAAiB,KAAA,EAC1C,EAAiB,SAAA,IAAiB,CAChC,EAAyB,EAAiB,KAAA,MAI/C,CAAA,CAAE,EAaE,CAAE,sBAAA,EAAuB,gCAAA,EAAA,aAAA,IAXuB,CACjD,gBAAiB,OAAO,UAC1B,OAAO,UAAU,YAAY,mBAAA,IACrB,EAAyB,SAAA,EAAU,IACnC,EAAyB,QAAA,CAAS,EAG1C,EAAA,OAAO,KAAK,oEAAA,GAEb,CAAA,CAAE,IAKD,EAAA,IAAkC,CAEtC,KAAM,CAAC,EAAwB,CAAA,KAAA,EAAA,UAAqE,IAAA,EAC9F,CAAC,EAAiC,CAAA,KAAA,EAAA,UAAwD,EAAA,EAE1F,KAAA,EAAA,aAA4C,SAAY,CAE5D,GADA,EAAmC,EAAA,EAC/B,iBAAkB,OACpB,GAAI,CACF,EAAmC,EAAA,EACnC,MAAM,EAAa,MAAM,OAAO,aAAa,kBAAA,EAC7C,OAAA,EAA0B,CAAA,EAC1B,EAAmC,EAAA,EAC5B,QACA,EAAO,CACd,EAAA,OAAO,MAAM,kEAAmE,CAAA,OAGlF,EAAA,OAAO,KAAK,uEAAA,EAEd,EAAmC,EAAA,GAClC,CAAA,CAAE,EAEL,SAAA,EAAA,WAAA,IAAgB,CACV,iBAAkB,QACpB,EAA0B,OAAO,aAAa,UAAA,GAE/C,CAAA,CAAE,EAEE,CAAE,uBAAA,EAAwB,8BAAA,EAA+B,gCAAA,IAG5D,EAAA,IAAqC,CACzC,KAAM,CAAC,EAA2B,CAAA,KAAA,EAAA,UAAkD,EAAA,EAEpF,SAAA,EAAA,WAAA,IAAgB,CACV,gBAAiB,QACnB,EAA6B,EAAA,GAE9B,CAAA,CAAE,EAEE,CAAE,0BAAA,CAAA,GCzHE,EAAA,IAA0C,CACrD,MAAM,KAAA,EAAA,YAAqB,CAAA,EAC3B,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,yDAAA,EAElB,OAAO"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-CW3en5xf.cjs"),e=require("./context-permission-K3tWOiAx.cjs");exports.ProviderPermission=e.ProviderPermission;exports.usePermission=e.usePermission;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-permission-DrcIwK9y.cjs");exports.ProviderPermission=e.ProviderPermission;exports.usePermission=e.usePermission;
@@ -1,5 +1,5 @@
1
1
  import { r as p } from "./utils-Cona48dZ.js";
2
- import { n as w, t as l } from "./dist-Dq_YJa2q.js";
2
+ import { n as w, t as l } from "./dist-BV0C3tLK.js";
3
3
  import { jsx as h } from "react/jsx-runtime";
4
4
  import { useCallback as m, useEffect as s, useRef as v, useState as c } from "react";
5
5
  var f = l(null), b = typeof window < "u" && window.innerWidth > window.innerHeight ? "landscape" : "portrait", k = () => typeof window > "u" ? "default" : Object.entries(p.screen.breakpoint).map(([r, t]) => ({
@@ -50,4 +50,4 @@ export {
50
50
  C as t
51
51
  };
52
52
 
53
- //# sourceMappingURL=context-screen-width-CEsyIyg6.js.map
53
+ //# sourceMappingURL=context-screen-width-CFexCIzV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-screen-width-CEsyIyg6.js","names":[],"sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemeBreakpoint } from '@local/styles/utils';\n\nimport { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IScreenWidthContext, IScreenWidthProvider } from './context.types';\n\nexport const ScreenWidthContext = createContext<IScreenWidthContext | null>(null);\n\nconst defaultOrientation =\n typeof window !== 'undefined' && window.innerWidth > window.innerHeight ? 'landscape' : 'portrait';\n\nconst getDefaultBreakpoint = (): IScreenWidthContext['breakpoint'] => {\n if (typeof window === 'undefined') return 'default';\n\n const breakpoints = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => ({\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp: parseInt(value.replace(/\\D/g, ''), 10),\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const matched = breakpoints.find(({ bp }) => window.innerWidth <= bp);\n return matched?.key ?? 'default';\n};\n\nconst defaultBreakpoint: IScreenWidthContext['breakpoint'] = getDefaultBreakpoint();\n\nexport const ProviderScreenWidth: FC<IScreenWidthProvider> = (props) => {\n const [breakpoint, setBreakpoint] = useState<IScreenWidthContext['breakpoint']>(defaultBreakpoint);\n const [orientation, setOrientation] = useState<IScreenWidthContext['orientation']>(defaultOrientation);\n\n const queriesRef = useRef<Array<{\n key: IThemeBreakpoint;\n mq: MediaQueryList;\n }> | null>(null);\n\n if (queriesRef.current === null && typeof window !== 'undefined') {\n queriesRef.current = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => {\n const bp = parseInt(value.replace(/\\D/g, ''), 10);\n return {\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp,\n };\n })\n .sort((a, b) => a.bp - b.bp)\n .map(({ key, bp }) => ({\n key,\n mq: window.matchMedia(`(max-width: ${bp}px)`),\n }));\n }\n\n const updateBreakpoint = useCallback(() => {\n if (!queriesRef.current) return;\n const matched = queriesRef.current.find(({ mq }) => mq.matches);\n setBreakpoint(matched?.key ?? 'default');\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n const newWidth = window.innerWidth;\n const newOrientation = newWidth > window.innerHeight ? 'landscape' : 'portrait';\n\n setOrientation(newOrientation);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n if (!queriesRef.current) return;\n\n queriesRef.current.forEach(({ mq }) => {\n mq.addEventListener('change', updateBreakpoint);\n });\n updateBreakpoint();\n\n return () => {\n queriesRef.current?.forEach(({ mq }) => {\n mq.removeEventListener('change', updateBreakpoint);\n });\n };\n }, [updateBreakpoint]);\n\n return (\n <ScreenWidthContext.Provider\n value={{\n breakpoint,\n orientation,\n type: props.type ?? 'breakpoint',\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { ScreenWidthContext } from './context';\nimport { IScreenWidthContext, IUseScreenWidthDependencies } from './context.types';\n\nexport const useScreenWidth = (props: IUseScreenWidthDependencies): IScreenWidthContext => {\n const context = useContextSelector(ScreenWidthContext, (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('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"mappings":";;;;AAOA,IAAa,IAAqB,EAA0C,IAAA,GAEtE,IACJ,OAAO,SAAW,OAAe,OAAO,aAAa,OAAO,cAAc,cAAc,YAEpF,IAAA,MACA,OAAO,SAAW,MAAoB,YAEtB,OAAO,QAAQ,EAAS,OAAO,UAAA,EAChD,IAAA,CAAK,CAAC,GAAK,CAAA,OAAY;AAAA,EACjB,KAAA;AAAA,EACL,IAAI,SAAS,EAAM,QAAQ,OAAO,EAAA,GAAK,EAAA;EACxC,EACA,KAAA,CAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EAAA,EAEC,KAAA,CAAM,EAAE,IAAA,EAAA,MAAS,OAAO,cAAc,CAAA,GAClD,OAAO,WAGnB,IAAuD,EAAA,GAEhD,IAAA,CAAiD,MAAU;AACtE,QAAM,CAAC,GAAY,CAAA,IAAiB,EAA4C,CAAA,GAC1E,CAAC,GAAa,CAAA,IAAkB,EAA6C,CAAA,GAE7E,IAAa,EAGR,IAAA;AAEX,EAAI,EAAW,YAAY,QAAQ,OAAO,SAAW,QACnD,EAAW,UAAU,OAAO,QAAQ,EAAS,OAAO,UAAA,EACjD,IAAA,CAAK,CAAC,GAAK,CAAA,OAEH;AAAA,IACA,KAAA;AAAA,IACL,IAHS,SAAS,EAAM,QAAQ,OAAO,EAAA,GAAK,EAAA;AAAA,MAM/C,KAAA,CAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EAAA,EACxB,IAAA,CAAK,EAAE,KAAA,GAAK,IAAA,EAAA,OAAU;AAAA,IACrB,KAAA;AAAA,IACA,IAAI,OAAO,WAAW,eAAe,CAAA,KAAG;AAAA,IACzC;AAGL,QAAM,IAAmB,EAAA,MAAkB;AACzC,IAAK,EAAW,WAEhB,EADgB,EAAW,QAAQ,KAAA,CAAM,EAAE,IAAA,EAAA,MAAS,EAAG,OAAA,GAChC,OAAO,SAAA;AAAA,KAC7B,CAAA,CAAE;AAEL,SAAA,EAAA,MAAgB;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAM,IAAA,MAAqB;AAIzB,MAAA,EAHiB,OAAO,aACU,OAAO,cAAc,cAAc,UAAA;AAAA;AAKvE,kBAAO,iBAAiB,UAAU,CAAA,GAClC,MAAa,OAAO,oBAAoB,UAAU,CAAA;AAAA,KACjD,CAAA,CAAE,GAEL,EAAA,MAAgB;AACd,QAAK,EAAW;AAEhB,aAAA,EAAW,QAAQ,QAAA,CAAS,EAAE,IAAA,EAAA,MAAS;AACrC,QAAA,EAAG,iBAAiB,UAAU,CAAA;AAAA,UAEhC,EAAA,GAEA,MAAa;AACX,QAAA,EAAW,SAAS,QAAA,CAAS,EAAE,IAAA,EAAA,MAAS;AACtC,UAAA,EAAG,oBAAoB,UAAU,CAAA;AAAA;;KAGpC,CAAC,CAAA,CAAiB,GAGnB,gBAAA,EAAC,EAAmB,UAApB;AAAA,IACE,OAAO;AAAA,MACL,YAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAM,EAAM,QAAQ;AAAA;cAGrB,EAAM;AAAA,GACqB;GC5FrB,IAAA,CAAkB,MAA4D;AACzF,QAAM,IAAU,EAAmB,GAAA,CAAqB,MAC/C,IACH,EAAM,OAAA,CAAQ,GAAK,OACjB,EAAI,CAAA,IAAQ,EAAE,CAAA,GACP,IACN,CAAA,CAAE,IACL;AAEN,MAAI,CAAC,EACH,OAAM,IAAI,MAAM,2DAAA;AAElB,SAAO"}
1
+ {"version":3,"file":"context-screen-width-CFexCIzV.js","names":[],"sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemeBreakpoint } from '@local/styles/utils';\n\nimport { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IScreenWidthContext, IScreenWidthProvider } from './context.types';\n\nexport const ScreenWidthContext = createContext<IScreenWidthContext | null>(null);\n\nconst defaultOrientation =\n typeof window !== 'undefined' && window.innerWidth > window.innerHeight ? 'landscape' : 'portrait';\n\nconst getDefaultBreakpoint = (): IScreenWidthContext['breakpoint'] => {\n if (typeof window === 'undefined') return 'default';\n\n const breakpoints = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => ({\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp: parseInt(value.replace(/\\D/g, ''), 10),\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const matched = breakpoints.find(({ bp }) => window.innerWidth <= bp);\n return matched?.key ?? 'default';\n};\n\nconst defaultBreakpoint: IScreenWidthContext['breakpoint'] = getDefaultBreakpoint();\n\nexport const ProviderScreenWidth: FC<IScreenWidthProvider> = (props) => {\n const [breakpoint, setBreakpoint] = useState<IScreenWidthContext['breakpoint']>(defaultBreakpoint);\n const [orientation, setOrientation] = useState<IScreenWidthContext['orientation']>(defaultOrientation);\n\n const queriesRef = useRef<Array<{\n key: IThemeBreakpoint;\n mq: MediaQueryList;\n }> | null>(null);\n\n if (queriesRef.current === null && typeof window !== 'undefined') {\n queriesRef.current = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => {\n const bp = parseInt(value.replace(/\\D/g, ''), 10);\n return {\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp,\n };\n })\n .sort((a, b) => a.bp - b.bp)\n .map(({ key, bp }) => ({\n key,\n mq: window.matchMedia(`(max-width: ${bp}px)`),\n }));\n }\n\n const updateBreakpoint = useCallback(() => {\n if (!queriesRef.current) return;\n const matched = queriesRef.current.find(({ mq }) => mq.matches);\n setBreakpoint(matched?.key ?? 'default');\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n const newWidth = window.innerWidth;\n const newOrientation = newWidth > window.innerHeight ? 'landscape' : 'portrait';\n\n setOrientation(newOrientation);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n if (!queriesRef.current) return;\n\n queriesRef.current.forEach(({ mq }) => {\n mq.addEventListener('change', updateBreakpoint);\n });\n updateBreakpoint();\n\n return () => {\n queriesRef.current?.forEach(({ mq }) => {\n mq.removeEventListener('change', updateBreakpoint);\n });\n };\n }, [updateBreakpoint]);\n\n return (\n <ScreenWidthContext.Provider\n value={{\n breakpoint,\n orientation,\n type: props.type ?? 'breakpoint',\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { ScreenWidthContext } from './context';\nimport { IScreenWidthContext, IUseScreenWidthDependencies } from './context.types';\n\nexport const useScreenWidth = (props: IUseScreenWidthDependencies): IScreenWidthContext => {\n const context = useContextSelector(ScreenWidthContext, (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('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"mappings":";;;;AAOA,IAAa,IAAqB,EAA0C,IAAA,GAEtE,IACJ,OAAO,SAAW,OAAe,OAAO,aAAa,OAAO,cAAc,cAAc,YAEpF,IAAA,MACA,OAAO,SAAW,MAAoB,YAEtB,OAAO,QAAQ,EAAS,OAAO,UAAA,EAChD,IAAA,CAAK,CAAC,GAAK,CAAA,OAAY;AAAA,EACjB,KAAA;AAAA,EACL,IAAI,SAAS,EAAM,QAAQ,OAAO,EAAA,GAAK,EAAA;EACxC,EACA,KAAA,CAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EAAA,EAEC,KAAA,CAAM,EAAE,IAAA,EAAA,MAAS,OAAO,cAAc,CAAA,GAClD,OAAO,WAGnB,IAAuD,EAAA,GAEhD,IAAA,CAAiD,MAAU;AACtE,QAAM,CAAC,GAAY,CAAA,IAAiB,EAA4C,CAAA,GAC1E,CAAC,GAAa,CAAA,IAAkB,EAA6C,CAAA,GAE7E,IAAa,EAGR,IAAA;AAEX,EAAI,EAAW,YAAY,QAAQ,OAAO,SAAW,QACnD,EAAW,UAAU,OAAO,QAAQ,EAAS,OAAO,UAAA,EACjD,IAAA,CAAK,CAAC,GAAK,CAAA,OAEH;AAAA,IACA,KAAA;AAAA,IACL,IAHS,SAAS,EAAM,QAAQ,OAAO,EAAA,GAAK,EAAA;AAAA,MAM/C,KAAA,CAAM,GAAG,MAAM,EAAE,KAAK,EAAE,EAAA,EACxB,IAAA,CAAK,EAAE,KAAA,GAAK,IAAA,EAAA,OAAU;AAAA,IACrB,KAAA;AAAA,IACA,IAAI,OAAO,WAAW,eAAe,CAAA,KAAG;AAAA,IACzC;AAGL,QAAM,IAAmB,EAAA,MAAkB;AACzC,IAAK,EAAW,WAEhB,EADgB,EAAW,QAAQ,KAAA,CAAM,EAAE,IAAA,EAAA,MAAS,EAAG,OAAA,GAChC,OAAO,SAAA;AAAA,KAC7B,CAAA,CAAE;AAEL,SAAA,EAAA,MAAgB;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAM,IAAA,MAAqB;AAIzB,MAAA,EAHiB,OAAO,aACU,OAAO,cAAc,cAAc,UAAA;AAAA;AAKvE,kBAAO,iBAAiB,UAAU,CAAA,GAClC,MAAa,OAAO,oBAAoB,UAAU,CAAA;AAAA,KACjD,CAAA,CAAE,GAEL,EAAA,MAAgB;AACd,QAAK,EAAW;AAEhB,aAAA,EAAW,QAAQ,QAAA,CAAS,EAAE,IAAA,EAAA,MAAS;AACrC,QAAA,EAAG,iBAAiB,UAAU,CAAA;AAAA,UAEhC,EAAA,GAEA,MAAa;AACX,QAAA,EAAW,SAAS,QAAA,CAAS,EAAE,IAAA,EAAA,MAAS;AACtC,UAAA,EAAG,oBAAoB,UAAU,CAAA;AAAA;;KAGpC,CAAC,CAAA,CAAiB,GAGnB,gBAAA,EAAC,EAAmB,UAApB;AAAA,IACE,OAAO;AAAA,MACL,YAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAM,EAAM,QAAQ;AAAA;cAGrB,EAAM;AAAA,GACqB;GC5FrB,IAAA,CAAkB,MAA4D;AACzF,QAAM,IAAU,EAAmB,GAAA,CAAqB,MAC/C,IACH,EAAM,OAAA,CAAQ,GAAK,OACjB,EAAI,CAAA,IAAQ,EAAE,CAAA,GACP,IACN,CAAA,CAAE,IACL;AAEN,MAAI,CAAC,EACH,OAAM,IAAI,MAAM,2DAAA;AAElB,SAAO"}
@@ -1,3 +1,3 @@
1
- const m=require("./chunk-CW3en5xf.cjs"),s=require("./utils-DtinAjAU.cjs"),f=require("./dist-C8r_OdG1.cjs");let l=require("react/jsx-runtime"),i=require("react");var p=f.createContext(null),w=typeof window<"u"&&window.innerWidth>window.innerHeight?"landscape":"portrait",h=()=>typeof window>"u"?"default":Object.entries(s.CSS_VARS.screen.breakpoint).map(([r,t])=>({key:r,bp:parseInt(t.replace(/\D/g,""),10)})).sort((r,t)=>r.bp-t.bp).find(({bp:r})=>window.innerWidth<=r)?.key??"default",b=h(),v=r=>{const[t,a]=(0,i.useState)(b),[d,o]=(0,i.useState)(w),n=(0,i.useRef)(null);n.current===null&&typeof window<"u"&&(n.current=Object.entries(s.CSS_VARS.screen.breakpoint).map(([e,u])=>({key:e,bp:parseInt(u.replace(/\D/g,""),10)})).sort((e,u)=>e.bp-u.bp).map(({key:e,bp:u})=>({key:e,mq:window.matchMedia(`(max-width: ${u}px)`)})));const c=(0,i.useCallback)(()=>{n.current&&a(n.current.find(({mq:e})=>e.matches)?.key??"default")},[]);return(0,i.useEffect)(()=>{if(typeof window>"u")return;const e=()=>{o(window.innerWidth>window.innerHeight?"landscape":"portrait")};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,i.useEffect)(()=>{if(n.current)return n.current.forEach(({mq:e})=>{e.addEventListener("change",c)}),c(),()=>{n.current?.forEach(({mq:e})=>{e.removeEventListener("change",c)})}},[c]),(0,l.jsx)(p.Provider,{value:{breakpoint:t,orientation:d,type:r.type??"breakpoint"},children:r.children})},S=r=>{const t=f.useContextSelector(p,a=>a?r.reduce((d,o)=>(d[o]=a[o],d),{}):null);if(!t)throw new Error("useScreenWidth must be used within an ProviderScreenWidth");return t};Object.defineProperty(exports,"ProviderScreenWidth",{enumerable:!0,get:function(){return v}});Object.defineProperty(exports,"useScreenWidth",{enumerable:!0,get:function(){return S}});
1
+ const m=require("./chunk-Dd8m0Ver.cjs"),s=require("./utils-DtinAjAU.cjs"),f=require("./dist-DswBAjW1.cjs");let l=require("react/jsx-runtime"),i=require("react");var p=f.createContext(null),w=typeof window<"u"&&window.innerWidth>window.innerHeight?"landscape":"portrait",h=()=>typeof window>"u"?"default":Object.entries(s.CSS_VARS.screen.breakpoint).map(([r,t])=>({key:r,bp:parseInt(t.replace(/\D/g,""),10)})).sort((r,t)=>r.bp-t.bp).find(({bp:r})=>window.innerWidth<=r)?.key??"default",b=h(),v=r=>{const[t,a]=(0,i.useState)(b),[d,o]=(0,i.useState)(w),n=(0,i.useRef)(null);n.current===null&&typeof window<"u"&&(n.current=Object.entries(s.CSS_VARS.screen.breakpoint).map(([e,u])=>({key:e,bp:parseInt(u.replace(/\D/g,""),10)})).sort((e,u)=>e.bp-u.bp).map(({key:e,bp:u})=>({key:e,mq:window.matchMedia(`(max-width: ${u}px)`)})));const c=(0,i.useCallback)(()=>{n.current&&a(n.current.find(({mq:e})=>e.matches)?.key??"default")},[]);return(0,i.useEffect)(()=>{if(typeof window>"u")return;const e=()=>{o(window.innerWidth>window.innerHeight?"landscape":"portrait")};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,i.useEffect)(()=>{if(n.current)return n.current.forEach(({mq:e})=>{e.addEventListener("change",c)}),c(),()=>{n.current?.forEach(({mq:e})=>{e.removeEventListener("change",c)})}},[c]),(0,l.jsx)(p.Provider,{value:{breakpoint:t,orientation:d,type:r.type??"breakpoint"},children:r.children})},S=r=>{const t=f.useContextSelector(p,a=>a?r.reduce((d,o)=>(d[o]=a[o],d),{}):null);if(!t)throw new Error("useScreenWidth must be used within an ProviderScreenWidth");return t};Object.defineProperty(exports,"ProviderScreenWidth",{enumerable:!0,get:function(){return v}});Object.defineProperty(exports,"useScreenWidth",{enumerable:!0,get:function(){return S}});
2
2
 
3
- //# sourceMappingURL=context-screen-width-ind6z7Ny.cjs.map
3
+ //# sourceMappingURL=context-screen-width-hcRkxzy7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-screen-width-ind6z7Ny.cjs","names":[],"sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemeBreakpoint } from '@local/styles/utils';\n\nimport { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IScreenWidthContext, IScreenWidthProvider } from './context.types';\n\nexport const ScreenWidthContext = createContext<IScreenWidthContext | null>(null);\n\nconst defaultOrientation =\n typeof window !== 'undefined' && window.innerWidth > window.innerHeight ? 'landscape' : 'portrait';\n\nconst getDefaultBreakpoint = (): IScreenWidthContext['breakpoint'] => {\n if (typeof window === 'undefined') return 'default';\n\n const breakpoints = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => ({\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp: parseInt(value.replace(/\\D/g, ''), 10),\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const matched = breakpoints.find(({ bp }) => window.innerWidth <= bp);\n return matched?.key ?? 'default';\n};\n\nconst defaultBreakpoint: IScreenWidthContext['breakpoint'] = getDefaultBreakpoint();\n\nexport const ProviderScreenWidth: FC<IScreenWidthProvider> = (props) => {\n const [breakpoint, setBreakpoint] = useState<IScreenWidthContext['breakpoint']>(defaultBreakpoint);\n const [orientation, setOrientation] = useState<IScreenWidthContext['orientation']>(defaultOrientation);\n\n const queriesRef = useRef<Array<{\n key: IThemeBreakpoint;\n mq: MediaQueryList;\n }> | null>(null);\n\n if (queriesRef.current === null && typeof window !== 'undefined') {\n queriesRef.current = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => {\n const bp = parseInt(value.replace(/\\D/g, ''), 10);\n return {\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp,\n };\n })\n .sort((a, b) => a.bp - b.bp)\n .map(({ key, bp }) => ({\n key,\n mq: window.matchMedia(`(max-width: ${bp}px)`),\n }));\n }\n\n const updateBreakpoint = useCallback(() => {\n if (!queriesRef.current) return;\n const matched = queriesRef.current.find(({ mq }) => mq.matches);\n setBreakpoint(matched?.key ?? 'default');\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n const newWidth = window.innerWidth;\n const newOrientation = newWidth > window.innerHeight ? 'landscape' : 'portrait';\n\n setOrientation(newOrientation);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n if (!queriesRef.current) return;\n\n queriesRef.current.forEach(({ mq }) => {\n mq.addEventListener('change', updateBreakpoint);\n });\n updateBreakpoint();\n\n return () => {\n queriesRef.current?.forEach(({ mq }) => {\n mq.removeEventListener('change', updateBreakpoint);\n });\n };\n }, [updateBreakpoint]);\n\n return (\n <ScreenWidthContext.Provider\n value={{\n breakpoint,\n orientation,\n type: props.type ?? 'breakpoint',\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { ScreenWidthContext } from './context';\nimport { IScreenWidthContext, IUseScreenWidthDependencies } from './context.types';\n\nexport const useScreenWidth = (props: IUseScreenWidthDependencies): IScreenWidthContext => {\n const context = useContextSelector(ScreenWidthContext, (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('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"mappings":"iKAOA,IAAa,EAAqB,EAAA,cAA0C,IAAA,EAEtE,EACJ,OAAO,OAAW,KAAe,OAAO,WAAa,OAAO,YAAc,YAAc,WAEpF,EAAA,IACA,OAAO,OAAW,IAAoB,UAEtB,OAAO,QAAQ,EAAA,SAAS,OAAO,UAAA,EAChD,IAAA,CAAK,CAAC,EAAK,CAAA,KAAY,CACjB,IAAA,EACL,GAAI,SAAS,EAAM,QAAQ,MAAO,EAAA,EAAK,EAAA,GACxC,EACA,KAAA,CAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAA,EAEC,KAAA,CAAM,CAAE,GAAA,CAAA,IAAS,OAAO,YAAc,CAAA,GAClD,KAAO,UAGnB,EAAuD,EAAA,EAEhD,EAAiD,GAAU,CACtE,KAAM,CAAC,EAAY,CAAA,KAAA,EAAA,UAA6D,CAAA,EAC1E,CAAC,EAAa,CAAA,KAAA,EAAA,UAA+D,CAAA,EAE7E,KAAA,EAAA,QAGK,IAAA,EAEP,EAAW,UAAY,MAAQ,OAAO,OAAW,MACnD,EAAW,QAAU,OAAO,QAAQ,EAAA,SAAS,OAAO,UAAA,EACjD,IAAA,CAAK,CAAC,EAAK,CAAA,KAEH,CACA,IAAA,EACL,GAHS,SAAS,EAAM,QAAQ,MAAO,EAAA,EAAK,EAAA,KAM/C,KAAA,CAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAA,EACxB,IAAA,CAAK,CAAE,IAAA,EAAK,GAAA,CAAA,KAAU,CACrB,IAAA,EACA,GAAI,OAAO,WAAW,eAAe,CAAA,KAAG,GACzC,GAGL,MAAM,KAAA,EAAA,aAAA,IAAqC,CACpC,EAAW,SAEhB,EADgB,EAAW,QAAQ,KAAA,CAAM,CAAE,GAAA,CAAA,IAAS,EAAG,OAAA,GAChC,KAAO,SAAA,GAC7B,CAAA,CAAE,EAEL,SAAA,EAAA,WAAA,IAAgB,CACd,GAAI,OAAO,OAAW,IAAa,OAEnC,MAAM,EAAA,IAAqB,CAIzB,EAHiB,OAAO,WACU,OAAO,YAAc,YAAc,UAAA,GAKvE,cAAO,iBAAiB,SAAU,CAAA,EAClC,IAAa,OAAO,oBAAoB,SAAU,CAAA,GACjD,CAAA,CAAE,KAEL,EAAA,WAAA,IAAgB,CACd,GAAK,EAAW,QAEhB,OAAA,EAAW,QAAQ,QAAA,CAAS,CAAE,GAAA,CAAA,IAAS,CACrC,EAAG,iBAAiB,SAAU,CAAA,IAEhC,EAAA,EAEA,IAAa,CACX,EAAW,SAAS,QAAA,CAAS,CAAE,GAAA,CAAA,IAAS,CACtC,EAAG,oBAAoB,SAAU,CAAA,MAGpC,CAAC,CAAA,CAAiB,KAGnB,EAAA,KAAC,EAAmB,SAApB,CACE,MAAO,CACL,WAAA,EACA,YAAA,EACA,KAAM,EAAM,MAAQ,uBAGrB,EAAM,SACqB,GC5FrB,EAAkB,GAA4D,CACzF,MAAM,EAAU,EAAA,mBAAmB,EAAqB,GAC/C,EACH,EAAM,OAAA,CAAQ,EAAK,KACjB,EAAI,CAAA,EAAQ,EAAE,CAAA,EACP,GACN,CAAA,CAAE,EACL,MAEN,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,2DAAA,EAElB,OAAO"}
1
+ {"version":3,"file":"context-screen-width-hcRkxzy7.cjs","names":[],"sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemeBreakpoint } from '@local/styles/utils';\n\nimport { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport { IScreenWidthContext, IScreenWidthProvider } from './context.types';\n\nexport const ScreenWidthContext = createContext<IScreenWidthContext | null>(null);\n\nconst defaultOrientation =\n typeof window !== 'undefined' && window.innerWidth > window.innerHeight ? 'landscape' : 'portrait';\n\nconst getDefaultBreakpoint = (): IScreenWidthContext['breakpoint'] => {\n if (typeof window === 'undefined') return 'default';\n\n const breakpoints = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => ({\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp: parseInt(value.replace(/\\D/g, ''), 10),\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const matched = breakpoints.find(({ bp }) => window.innerWidth <= bp);\n return matched?.key ?? 'default';\n};\n\nconst defaultBreakpoint: IScreenWidthContext['breakpoint'] = getDefaultBreakpoint();\n\nexport const ProviderScreenWidth: FC<IScreenWidthProvider> = (props) => {\n const [breakpoint, setBreakpoint] = useState<IScreenWidthContext['breakpoint']>(defaultBreakpoint);\n const [orientation, setOrientation] = useState<IScreenWidthContext['orientation']>(defaultOrientation);\n\n const queriesRef = useRef<Array<{\n key: IThemeBreakpoint;\n mq: MediaQueryList;\n }> | null>(null);\n\n if (queriesRef.current === null && typeof window !== 'undefined') {\n queriesRef.current = Object.entries(CSS_VARS.screen.breakpoint)\n .map(([key, value]) => {\n const bp = parseInt(value.replace(/\\D/g, ''), 10);\n return {\n key: key as keyof typeof CSS_VARS.screen.breakpoint,\n bp,\n };\n })\n .sort((a, b) => a.bp - b.bp)\n .map(({ key, bp }) => ({\n key,\n mq: window.matchMedia(`(max-width: ${bp}px)`),\n }));\n }\n\n const updateBreakpoint = useCallback(() => {\n if (!queriesRef.current) return;\n const matched = queriesRef.current.find(({ mq }) => mq.matches);\n setBreakpoint(matched?.key ?? 'default');\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n const newWidth = window.innerWidth;\n const newOrientation = newWidth > window.innerHeight ? 'landscape' : 'portrait';\n\n setOrientation(newOrientation);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n if (!queriesRef.current) return;\n\n queriesRef.current.forEach(({ mq }) => {\n mq.addEventListener('change', updateBreakpoint);\n });\n updateBreakpoint();\n\n return () => {\n queriesRef.current?.forEach(({ mq }) => {\n mq.removeEventListener('change', updateBreakpoint);\n });\n };\n }, [updateBreakpoint]);\n\n return (\n <ScreenWidthContext.Provider\n value={{\n breakpoint,\n orientation,\n type: props.type ?? 'breakpoint',\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { ScreenWidthContext } from './context';\nimport { IScreenWidthContext, IUseScreenWidthDependencies } from './context.types';\n\nexport const useScreenWidth = (props: IUseScreenWidthDependencies): IScreenWidthContext => {\n const context = useContextSelector(ScreenWidthContext, (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('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"mappings":"iKAOA,IAAa,EAAqB,EAAA,cAA0C,IAAA,EAEtE,EACJ,OAAO,OAAW,KAAe,OAAO,WAAa,OAAO,YAAc,YAAc,WAEpF,EAAA,IACA,OAAO,OAAW,IAAoB,UAEtB,OAAO,QAAQ,EAAA,SAAS,OAAO,UAAA,EAChD,IAAA,CAAK,CAAC,EAAK,CAAA,KAAY,CACjB,IAAA,EACL,GAAI,SAAS,EAAM,QAAQ,MAAO,EAAA,EAAK,EAAA,GACxC,EACA,KAAA,CAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAA,EAEC,KAAA,CAAM,CAAE,GAAA,CAAA,IAAS,OAAO,YAAc,CAAA,GAClD,KAAO,UAGnB,EAAuD,EAAA,EAEhD,EAAiD,GAAU,CACtE,KAAM,CAAC,EAAY,CAAA,KAAA,EAAA,UAA6D,CAAA,EAC1E,CAAC,EAAa,CAAA,KAAA,EAAA,UAA+D,CAAA,EAE7E,KAAA,EAAA,QAGK,IAAA,EAEP,EAAW,UAAY,MAAQ,OAAO,OAAW,MACnD,EAAW,QAAU,OAAO,QAAQ,EAAA,SAAS,OAAO,UAAA,EACjD,IAAA,CAAK,CAAC,EAAK,CAAA,KAEH,CACA,IAAA,EACL,GAHS,SAAS,EAAM,QAAQ,MAAO,EAAA,EAAK,EAAA,KAM/C,KAAA,CAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAA,EACxB,IAAA,CAAK,CAAE,IAAA,EAAK,GAAA,CAAA,KAAU,CACrB,IAAA,EACA,GAAI,OAAO,WAAW,eAAe,CAAA,KAAG,GACzC,GAGL,MAAM,KAAA,EAAA,aAAA,IAAqC,CACpC,EAAW,SAEhB,EADgB,EAAW,QAAQ,KAAA,CAAM,CAAE,GAAA,CAAA,IAAS,EAAG,OAAA,GAChC,KAAO,SAAA,GAC7B,CAAA,CAAE,EAEL,SAAA,EAAA,WAAA,IAAgB,CACd,GAAI,OAAO,OAAW,IAAa,OAEnC,MAAM,EAAA,IAAqB,CAIzB,EAHiB,OAAO,WACU,OAAO,YAAc,YAAc,UAAA,GAKvE,cAAO,iBAAiB,SAAU,CAAA,EAClC,IAAa,OAAO,oBAAoB,SAAU,CAAA,GACjD,CAAA,CAAE,KAEL,EAAA,WAAA,IAAgB,CACd,GAAK,EAAW,QAEhB,OAAA,EAAW,QAAQ,QAAA,CAAS,CAAE,GAAA,CAAA,IAAS,CACrC,EAAG,iBAAiB,SAAU,CAAA,IAEhC,EAAA,EAEA,IAAa,CACX,EAAW,SAAS,QAAA,CAAS,CAAE,GAAA,CAAA,IAAS,CACtC,EAAG,oBAAoB,SAAU,CAAA,MAGpC,CAAC,CAAA,CAAiB,KAGnB,EAAA,KAAC,EAAmB,SAApB,CACE,MAAO,CACL,WAAA,EACA,YAAA,EACA,KAAM,EAAM,MAAQ,uBAGrB,EAAM,SACqB,GC5FrB,EAAkB,GAA4D,CACzF,MAAM,EAAU,EAAA,mBAAmB,EAAqB,GAC/C,EACH,EAAM,OAAA,CAAQ,EAAK,KACjB,EAAI,CAAA,EAAQ,EAAE,CAAA,EACP,GACN,CAAA,CAAE,EACL,MAEN,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,2DAAA,EAElB,OAAO"}