@jenesei-software/jenesei-kit-react 1.3.10 → 1.3.12

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 (222) hide show
  1. package/build/{area-BC64nSGj.js → area-BWxBop5m.js} +2 -2
  2. package/build/area-BWxBop5m.js.map +1 -0
  3. package/build/{area-DRqAofd0.js → area-CD8KKIM0.js} +2 -2
  4. package/build/area-CD8KKIM0.js.map +1 -0
  5. package/build/area-CZkDIeGx.cjs +2 -0
  6. package/build/area-CZkDIeGx.cjs.map +1 -0
  7. package/build/{area-C6QOr2Kd.cjs → area-CmCMHnRA.cjs} +2 -2
  8. package/build/area-CmCMHnRA.cjs.map +1 -0
  9. package/build/{area-BYuHpaUX.js → area-DEwj0-O3.js} +5 -5
  10. package/build/area-DEwj0-O3.js.map +1 -0
  11. package/build/{area-oZm7ewxw.cjs → area-DRsIULcw.cjs} +2 -2
  12. package/build/{area-oZm7ewxw.cjs.map → area-DRsIULcw.cjs.map} +1 -1
  13. package/build/{area-D7906bXA.cjs → area-Dup_lUb9.cjs} +2 -2
  14. package/build/area-Dup_lUb9.cjs.map +1 -0
  15. package/build/area-outside.cjs.js +1 -1
  16. package/build/area-outside.es.js +1 -1
  17. package/build/area-preview.cjs.js +1 -1
  18. package/build/area-preview.es.js +1 -1
  19. package/build/{area-CkM4ZN2F.js → area-sDVSuS3G.js} +2 -2
  20. package/build/{area-CkM4ZN2F.js.map → area-sDVSuS3G.js.map} +1 -1
  21. package/build/area-scroll.cjs.js +1 -1
  22. package/build/area-scroll.d.ts +1 -1
  23. package/build/area-scroll.es.js +1 -1
  24. package/build/area-skeleton.cjs.js +1 -1
  25. package/build/area-skeleton.d.ts +1 -1
  26. package/build/area-skeleton.es.js +1 -1
  27. package/build/area-smooth.cjs.js +1 -1
  28. package/build/area-smooth.d.ts +1 -1
  29. package/build/area-smooth.es.js +1 -1
  30. package/build/area.hooks-Bk04M7mk.js.map +1 -1
  31. package/build/area.hooks-C_UKZzcb.cjs.map +1 -1
  32. package/build/build-info.txt +3 -3
  33. package/build/{component--Oo5_3xq.cjs → component-8NOxwZJO.cjs} +2 -2
  34. package/build/component-8NOxwZJO.cjs.map +1 -0
  35. package/build/{component-C67KboOB.cjs → component-BVnHSTJd.cjs} +2 -2
  36. package/build/{component-C67KboOB.cjs.map → component-BVnHSTJd.cjs.map} +1 -1
  37. package/build/component-CLqcB5mM.cjs.map +1 -1
  38. package/build/{component-DJYgewYg.js → component-CN6att4f.js} +2 -2
  39. package/build/{component-DJYgewYg.js.map → component-CN6att4f.js.map} +1 -1
  40. package/build/component-DHM9pbab.js.map +1 -1
  41. package/build/{component-BYox4gmt.cjs → component-DdJt3LEF.cjs} +2 -2
  42. package/build/component-DdJt3LEF.cjs.map +1 -0
  43. package/build/{component-B1bvPlyB.cjs → component-DnJo66DS.cjs} +2 -2
  44. package/build/{component-B1bvPlyB.cjs.map → component-DnJo66DS.cjs.map} +1 -1
  45. package/build/{component-BcHiCCC9.js → component-DpVp9dB1.js} +2 -2
  46. package/build/component-DpVp9dB1.js.map +1 -0
  47. package/build/component-GKvpOWlO.cjs +28 -0
  48. package/build/component-GKvpOWlO.cjs.map +1 -0
  49. package/build/{component-DKMsOpqH.js → component-GtWqnaqk.js} +2 -2
  50. package/build/{component-DKMsOpqH.js.map → component-GtWqnaqk.js.map} +1 -1
  51. package/build/{component-CvW0MIM8.js → component-P-3bwi3_.js} +3 -3
  52. package/build/component-P-3bwi3_.js.map +1 -0
  53. package/build/component-accordion.cjs.js +1 -1
  54. package/build/component-accordion.d.ts +1 -1
  55. package/build/component-accordion.es.js +1 -1
  56. package/build/component-button-group.cjs.js +1 -1
  57. package/build/component-button-group.es.js +1 -1
  58. package/build/component-button.cjs.js +1 -1
  59. package/build/component-button.es.js +1 -1
  60. package/build/{component-CY7lfJVv.cjs → component-cRmWWDr_.cjs} +2 -2
  61. package/build/component-cRmWWDr_.cjs.map +1 -0
  62. package/build/component-checkbox-group.cjs.js +1 -1
  63. package/build/component-checkbox-group.es.js +1 -1
  64. package/build/component-checkbox.cjs.js +1 -1
  65. package/build/component-checkbox.es.js +1 -1
  66. package/build/component-date-picker.cjs.js +1 -1
  67. package/build/component-date-picker.es.js +1 -1
  68. package/build/{component-WUYE2soZ.js → component-feWPgACX.js} +2 -2
  69. package/build/component-feWPgACX.js.map +1 -0
  70. package/build/component-image-button.cjs.js +1 -1
  71. package/build/component-image-button.es.js +1 -1
  72. package/build/component-image-select.cjs.js +1 -1
  73. package/build/component-image-select.es.js +1 -1
  74. package/build/component-image-slider.cjs.js +1 -1
  75. package/build/component-image-slider.d.ts +1 -1
  76. package/build/component-image-slider.es.js +1 -1
  77. package/build/component-image.cjs.js +1 -1
  78. package/build/component-image.es.js +1 -1
  79. package/build/component-map.cjs.js +1 -1
  80. package/build/component-map.es.js +1 -1
  81. package/build/{component-jPZYT5iL.js → component-mzzOCXSx.js} +12 -12
  82. package/build/component-mzzOCXSx.js.map +1 -0
  83. package/build/component-pagination.cjs.js +1 -1
  84. package/build/component-pagination.es.js +1 -1
  85. package/build/component-select.cjs.js +1 -1
  86. package/build/component-select.es.js +1 -1
  87. package/build/component-stack.cjs.js +1 -1
  88. package/build/component-stack.d.ts +5 -7
  89. package/build/component-stack.es.js +1 -1
  90. package/build/component-tooltip.cjs.js +1 -1
  91. package/build/component-tooltip.es.js +1 -1
  92. package/build/component-typography.cjs.js +1 -1
  93. package/build/component-typography.es.js +1 -1
  94. package/build/{component.components-f-tFdB6f.js → component.components-C-EEYFsd.js} +2 -2
  95. package/build/{component.components-f-tFdB6f.js.map → component.components-C-EEYFsd.js.map} +1 -1
  96. package/build/{component.components-CeKyOsDE.cjs → component.components-CC3IeZon.cjs} +2 -2
  97. package/build/{component.components-CeKyOsDE.cjs.map → component.components-CC3IeZon.cjs.map} +1 -1
  98. package/build/{component.constants-BrJrCmlA.js → component.constants-34RZJIiQ.js} +3 -3
  99. package/build/component.constants-34RZJIiQ.js.map +1 -0
  100. package/build/{component.constants-amkB3VHg.js → component.constants-BxnfHAYp.js} +6 -6
  101. package/build/component.constants-BxnfHAYp.js.map +1 -0
  102. package/build/{component.constants-DRPyaSU8.cjs → component.constants-CpRgeAIu.cjs} +2 -2
  103. package/build/component.constants-CpRgeAIu.cjs.map +1 -0
  104. package/build/{component.constants-B9xzGc3A.cjs → component.constants-D6AJ1xmO.cjs} +2 -2
  105. package/build/component.constants-D6AJ1xmO.cjs.map +1 -0
  106. package/build/{component.styles-BTsmbWT6.cjs → component.styles-B-bndnRM.cjs} +2 -2
  107. package/build/component.styles-B-bndnRM.cjs.map +1 -0
  108. package/build/component.styles-B0L4jbOO.js.map +1 -1
  109. package/build/component.styles-BDKsgd6y.js.map +1 -1
  110. package/build/{component.styles-CPWNnqqm.js → component.styles-BEaqQuF_.js} +3 -3
  111. package/build/{component.styles-CPWNnqqm.js.map → component.styles-BEaqQuF_.js.map} +1 -1
  112. package/build/component.styles-BGYbrzvh.js.map +1 -1
  113. package/build/component.styles-BKnUDWqO.cjs.map +1 -1
  114. package/build/{component.styles-BpvpyZax.cjs → component.styles-Bb7_KygZ.cjs} +2 -2
  115. package/build/{component.styles-BpvpyZax.cjs.map → component.styles-Bb7_KygZ.cjs.map} +1 -1
  116. package/build/{component.styles-iHE8mmya.cjs → component.styles-C4xnWrvJ.cjs} +2 -2
  117. package/build/component.styles-C4xnWrvJ.cjs.map +1 -0
  118. package/build/{component.styles-DjoG6jr2.js → component.styles-CJC0h3Ed.js} +2 -2
  119. package/build/component.styles-CJC0h3Ed.js.map +1 -0
  120. package/build/component.styles-DS0ofW1Y.js.map +1 -1
  121. package/build/{component.styles-nl99kkS3.js → component.styles-DTnknwt_.js} +2 -2
  122. package/build/{component.styles-nl99kkS3.js.map → component.styles-DTnknwt_.js.map} +1 -1
  123. package/build/{component.styles-DARNjy9P.js → component.styles-DWS6xT-y.js} +2 -2
  124. package/build/{component.styles-DARNjy9P.js.map → component.styles-DWS6xT-y.js.map} +1 -1
  125. package/build/{component.styles-DWGUgUoF.cjs → component.styles-DbWj2stq.cjs} +2 -2
  126. package/build/{component.styles-DWGUgUoF.cjs.map → component.styles-DbWj2stq.cjs.map} +1 -1
  127. package/build/component.styles-Dpg-__rn.cjs.map +1 -1
  128. package/build/{component.styles-DOnQEUrI.js → component.styles-DwtZ7CY4.js} +7 -7
  129. package/build/component.styles-DwtZ7CY4.js.map +1 -0
  130. package/build/{component.styles-mhkAuWyU.cjs → component.styles-PNgt36ZD.cjs} +2 -2
  131. package/build/{component.styles-mhkAuWyU.cjs.map → component.styles-PNgt36ZD.cjs.map} +1 -1
  132. package/build/{component.styles-Dpo373cZ.cjs → component.styles-Py-IeQ2q.cjs} +2 -2
  133. package/build/component.styles-Py-IeQ2q.cjs.map +1 -0
  134. package/build/component.styles-ZU_GyVub.cjs.map +1 -1
  135. package/build/component.styles-gZHy-64x.cjs.map +1 -1
  136. package/build/{component.styles--PEjCgcA.js → component.styles-mcm1LgEr.js} +3 -3
  137. package/build/{component.styles--PEjCgcA.js.map → component.styles-mcm1LgEr.js.map} +1 -1
  138. package/build/component.types-BBQ18Npa.js.map +1 -1
  139. package/build/{component.types-CSnoBg2y.js → component.types-BhmQrqBu.js} +5 -5
  140. package/build/component.types-BhmQrqBu.js.map +1 -0
  141. package/build/{component.types-CWp0NPUN.cjs → component.types-CfR3RBsV.cjs} +2 -2
  142. package/build/{component.types-CWp0NPUN.cjs.map → component.types-CfR3RBsV.cjs.map} +1 -1
  143. package/build/component.types-DraGq1j_.cjs.map +1 -1
  144. package/build/context-app.cjs.js +1 -1
  145. package/build/context-app.es.js +1 -1
  146. package/build/context-dialog.cjs.js +1 -1
  147. package/build/context-dialog.es.js +1 -1
  148. package/build/context-permission.d.ts +4 -4
  149. package/build/context-sonner.cjs.js +1 -1
  150. package/build/context-sonner.es.js +1 -1
  151. package/build/{context.constants-CvkvB0XC.js → context.constants-BCpaUfFz.js} +2 -2
  152. package/build/context.constants-BCpaUfFz.js.map +1 -0
  153. package/build/{context.constants-ByXsACU7.cjs → context.constants-BLQ_1jZI.cjs} +2 -2
  154. package/build/context.constants-BLQ_1jZI.cjs.map +1 -0
  155. package/build/{context.constants-DRimaVcG.js → context.constants-DOMoMUoD.js} +2 -2
  156. package/build/context.constants-DOMoMUoD.js.map +1 -0
  157. package/build/{context.constants-CTr1U0kI.cjs → context.constants-cm50ZUiS.cjs} +2 -2
  158. package/build/{context.constants-CTr1U0kI.cjs.map → context.constants-cm50ZUiS.cjs.map} +1 -1
  159. package/build/context.functions-80N-5MqM.cjs.map +1 -1
  160. package/build/context.functions-B8FDl7nJ.js.map +1 -1
  161. package/build/context.functions-BD15C8_y.js.map +1 -1
  162. package/build/context.functions-CQ9GerPb.js.map +1 -1
  163. package/build/context.functions-ar41xFVo.cjs.map +1 -1
  164. package/build/context.functions-ohI9H54j.cjs.map +1 -1
  165. package/build/context.hooks-7ydA7mGj.js.map +1 -1
  166. package/build/context.hooks-BIsapq-0.cjs.map +1 -1
  167. package/build/context.hooks-BmwyZ1p3.js.map +1 -1
  168. package/build/context.hooks-BzMTkJNv.js.map +1 -1
  169. package/build/{context.hooks-kga1DMrX.js → context.hooks-Cmgo0uqV.js} +2 -2
  170. package/build/context.hooks-Cmgo0uqV.js.map +1 -0
  171. package/build/context.hooks-D13tbrva.cjs.map +1 -1
  172. package/build/{context.hooks-DOygH-Yj.cjs → context.hooks-XBiTuVyt.cjs} +2 -2
  173. package/build/context.hooks-XBiTuVyt.cjs.map +1 -0
  174. package/build/context.hooks-u408Pxw8.cjs.map +1 -1
  175. package/build/index.cjs.js +1 -1
  176. package/build/index.d.ts +9 -11
  177. package/build/index.es.js +23 -23
  178. package/build/motion-CIQfrLky.js.map +1 -1
  179. package/build/motion-DgB7M2Hn.cjs.map +1 -1
  180. package/build/style-error.d.ts +6 -6
  181. package/build/style-fRZ6xrVp.cjs.map +1 -1
  182. package/build/style-plT9Ah7t.js.map +1 -1
  183. package/build/use-Bp8UVw4Y.js.map +1 -1
  184. package/build/use-C1l0O0Qo.cjs.map +1 -1
  185. package/build/{use-Dg449cuf.cjs → use-ClugPshj.cjs} +2 -2
  186. package/build/{use-Dg449cuf.cjs.map → use-ClugPshj.cjs.map} +1 -1
  187. package/build/use-DT0XgvJT.js.map +1 -1
  188. package/build/use-IhzeVumv.cjs.map +1 -1
  189. package/build/{use-DLVWi2kS.js → use-_V1SKE0-.js} +6 -6
  190. package/build/{use-DLVWi2kS.js.map → use-_V1SKE0-.js.map} +1 -1
  191. package/package.json +4 -3
  192. package/build/area-BC64nSGj.js.map +0 -1
  193. package/build/area-BYuHpaUX.js.map +0 -1
  194. package/build/area-C6QOr2Kd.cjs.map +0 -1
  195. package/build/area-C6XuN6wk.cjs +0 -2
  196. package/build/area-C6XuN6wk.cjs.map +0 -1
  197. package/build/area-D7906bXA.cjs.map +0 -1
  198. package/build/area-DRqAofd0.js.map +0 -1
  199. package/build/component--Oo5_3xq.cjs.map +0 -1
  200. package/build/component-BV_7tGiu.cjs +0 -28
  201. package/build/component-BV_7tGiu.cjs.map +0 -1
  202. package/build/component-BYox4gmt.cjs.map +0 -1
  203. package/build/component-BcHiCCC9.js.map +0 -1
  204. package/build/component-CY7lfJVv.cjs.map +0 -1
  205. package/build/component-CvW0MIM8.js.map +0 -1
  206. package/build/component-WUYE2soZ.js.map +0 -1
  207. package/build/component-jPZYT5iL.js.map +0 -1
  208. package/build/component.constants-B9xzGc3A.cjs.map +0 -1
  209. package/build/component.constants-BrJrCmlA.js.map +0 -1
  210. package/build/component.constants-DRPyaSU8.cjs.map +0 -1
  211. package/build/component.constants-amkB3VHg.js.map +0 -1
  212. package/build/component.styles-BTsmbWT6.cjs.map +0 -1
  213. package/build/component.styles-DOnQEUrI.js.map +0 -1
  214. package/build/component.styles-DjoG6jr2.js.map +0 -1
  215. package/build/component.styles-Dpo373cZ.cjs.map +0 -1
  216. package/build/component.styles-iHE8mmya.cjs.map +0 -1
  217. package/build/component.types-CSnoBg2y.js.map +0 -1
  218. package/build/context.constants-ByXsACU7.cjs.map +0 -1
  219. package/build/context.constants-CvkvB0XC.js.map +0 -1
  220. package/build/context.constants-DRimaVcG.js.map +0 -1
  221. package/build/context.hooks-DOygH-Yj.cjs.map +0 -1
  222. package/build/context.hooks-kga1DMrX.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.constants-BLQ_1jZI.cjs","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { Outside } from '@local/areas/outside';\n\nimport { AnimatePresence } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps,\n} from '.';\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null);\n\nexport const ProviderDialog: FC<ProviderDialogProps> = (props) => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([]);\n\n const remove: DialogContextProps<object>['remove'] = useCallback((id) => {\n setDialogHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index!;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index! > indexToRemove ? item.index! - 1 : item.index,\n }));\n\n return updatedHistory;\n });\n }, []);\n\n const update: DialogContextProps<object>['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: DialogContextProps<object>['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;\n if (existingIndex !== -1) {\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index };\n } else {\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index! + 1,\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 return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={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 const index = dialog.index;\n const content = dialog.content;\n const id = dialog.id;\n const props = dialog.props;\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n );\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n );\n};\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true);\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\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={{\n zIndex: -props.index!,\n }}\n $isDisabledOutline={props.props?.propsDialog?.isDisabledOutline}\n $isOutlineBoxShadow={props.props?.propsDialog?.isOutlineBoxShadow}\n $isReadOnly={props.props?.propsDialog?.isReadOnly}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.';\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext);\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog');\n }\n return context;\n};\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs();\n const [id, setId] = useState<string | null>(null);\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n (dialog) => {\n const find = dialogHistory.find((item) => item.id === dialog.id);\n if (!id || !find) {\n const id = dialog.id || uuidv4();\n setId(id);\n add({ ...(dialog as T), props: props, id });\n }\n },\n [add, dialogHistory, id, props],\n );\n const localRemove = useCallback(() => {\n if (id) {\n remove(id);\n setId(null);\n }\n }, [id, remove]);\n\n const propsMemo = useDeepCompareMemoize(props);\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo });\n }\n }, [id, propsMemo, update]);\n\n return { add: localAdd, remove: localRemove, id };\n};\n","import { motion } from 'framer-motion';\nimport styled from 'styled-components';\n\nimport { addOutline } from '@local/styles/add';\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 DialogElementWrapperProps,\n DialogLayoutProps,\n} from '.';\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.palette.black50};\n z-index: ${(props) => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`;\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${(props) => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${(props) => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${(props) => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${(props) =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${(props) => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`;\nexport const DialogContent = styled(motion.div)``;\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme';\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: IThemePaletteKeys = 'whiteStandard';\n"],"names":["DialogContext","createContext","MemoizedDialogElement","memo","props","isAnimating","setIsAnimating","useState","Outside","onOutsideClick","remove","children","jsx","DialogElementWrapper","initial","opacity","scale","animate","onAnimationComplete","transition","type","duration","DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT","delay","DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT","style","zIndex","index","$isDisabledOutline","_b","_a","propsDialog","isDisabledOutline","$isOutlineBoxShadow","_d","_c","isOutlineBoxShadow","$isReadOnly","_f","_e","isReadOnly","$propsDialog","_g","content","id","useDialogs","context","useContext","Error","DialogLayout","styled","motion","div","theme","palette","black50","$zIndex","dialog","addOutline","maxWidth","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH","maxHeight","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT","borderRadius","DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS","background","DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND","padding","DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING","DialogContent","dialogHistory","setDialogHistory","useCallback","prev","itemToRemove","find","item","indexToRemove","filter","map","update","add","existingIndex","findIndex","updatedHistory","newContent","unshift","dialogHistoryLength","useMemo","length","jsxs","Provider","value","AnimatePresence","exit","setId","localAdd","uuidv4","localRemove","propsMemo","useDeepCompareMemoize","useEffect"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { createContext, memo, useMemo, useState, useCallback, useContext } from "react";
2
2
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
3
- import { c as Button } from "./component-DJYgewYg.js";
3
+ import { c as Button } from "./component-CN6att4f.js";
4
4
  import { I as Icon } from "./component.styles-DS0ofW1Y.js";
5
5
  import { motion, AnimatePresence } from "framer-motion";
6
6
  import styled, { useTheme, css } from "styled-components";
@@ -389,4 +389,4 @@ export {
389
389
  DEFAULT_PROVIDER_SONNER_BUTTON as m,
390
390
  useSonner as u
391
391
  };
392
- //# sourceMappingURL=context.constants-DRimaVcG.js.map
392
+ //# sourceMappingURL=context.constants-DOMoMUoD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.constants-DOMoMUoD.js","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon name={props.icon} type='id' size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n","import { addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n"],"names":["_a","uuidv4","promise","jsxs","jsx","Fragment"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-B1bvPlyB.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
1
+ "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-DnJo66DS.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
2
2
  position: fixed;
3
3
  z-index: ${e=>e.$zIndex};
4
4
  max-height: calc(100dvh - 20px);
@@ -95,4 +95,4 @@
95
95
  align-items: center;
96
96
  justify-content: flex-start;
97
97
  `,v=r.div``,h=100,g=.04,j=100,E=.3,b="black",R=60,$={content:"Undo",onClick:()=>{}};exports.DEFAULT_PROVIDER_SONNER_BUTTON=$,exports.DEFAULT_PROVIDER_SONNER_DURATION=E,exports.DEFAULT_PROVIDER_SONNER_GENRE=b,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=R,exports.DEFAULT_PROVIDER_SONNER_SCALE=g,exports.DEFAULT_PROVIDER_SONNER_Y=j,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=h,exports.ProviderSonner=t=>{var i,l,a,u,p,m;const f=e.useMemo(()=>t.visibleToasts,[t.visibleToasts]),v=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.description},[null==(i=null==t?void 0:t.default)?void 0:i.description]),g=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.title},[null==(l=null==t?void 0:t.default)?void 0:l.title]),j=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.button},[null==(a=null==t?void 0:t.default)?void 0:a.button]),E=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.hidingTime},[null==(u=null==t?void 0:t.default)?void 0:u.hidingTime]),R=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.hidingMode)??"clickOnButton"},[null==(p=null==t?void 0:t.default)?void 0:p.hidingMode]),y=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.genre)??b},[null==(m=null==t?void 0:t.default)?void 0:m.genre]),T=e.useMemo(()=>t.position.includes("top"),[t.position]),[w,O]=e.useState([]),[I,S]=e.useState(!1),L=e.useCallback(()=>{S(!0)},[]),M=e.useCallback(()=>{S(!1)},[]),k=e.useCallback(e=>{O(n=>{const t=n.find(n=>n.id===e);if(!t)return n;const i=t.index,o=n.filter(n=>n.id!==e).map(e=>({...e,index:e.index>i?e.index-1:e.index}));return 0===o.length&&M(),o})},[M]),_=e.useCallback(e=>{const n=e.id??s.v4(),t=e.hidingTime??E;O(t=>{const i=t.findIndex(e=>e.id===n);let o;if(-1!==i)o=[...t],o[i]={...e,id:n,index:t[i].index};else{o=t.map(e=>({...e,index:e.index+1}));const i={...e,id:n,index:0};o.unshift(i)}return o}),void 0!==t&&setTimeout(()=>{k(n)},t)},[E,k]),C=e.useCallback((e,n,t)=>{const i=s.v4();return _({...n,id:i,isLoading:!0}),e.then(e=>{_({...t(e,void 0),id:i})}).catch(e=>{_({...t(void 0,e),id:i})})},[_]),N=e.useCallback(e=>{k(e)},[k]),D=r.useTheme();return n.jsxRuntimeExports.jsxs(d.Provider,{value:{toast:_,promise:C,remove:k,contentHistory:w},children:[n.jsxRuntimeExports.jsx(c,{$zIndex:t.zIndex??h,$position:t.position,$gap:t.gap,onMouseEnter:L,onMouseLeave:M,children:n.jsxRuntimeExports.jsx(o.AnimatePresence,{children:w.map(e=>{const t=e.index,i=!!f&&t>f,o=!!f&&t>f-1,r=!!f&&t==f-1,s=e.genre??y,l=D.colors.sonner[s].button.genre,d=e.hidingMode??R,c="content"in e&&e.content,a="title"in e&&e.title,u="description"in e&&e.description;return n.jsxRuntimeExports.jsx(x,{isMoreThanLastViewIndexPlusOne:i,isMoreThanLastViewIndex:o,isLastViewIndex:r,isTop:T,id:e.id,icon:e.icon,isLoading:e.isLoading,index:t,buttonGenre:l,hidingMode:d,isHovered:I,genre:s,content:c,title:a||g,description:u||v,button:e.button??j??$,handleOnClick:N},e.id)})})}),t.children]})},exports.SonnerButtonWrapper=v,exports.SonnerContent=u,exports.SonnerContentDescription=f,exports.SonnerContentTitle=m,exports.SonnerContext=d,exports.SonnerElementWrapper=a,exports.SonnerIcon=p,exports.SonnerLayout=c,exports.useSonner=()=>{const n=e.useContext(d);if(!n)throw new Error("useSonner must be used within an ProviderSonner");return n};
98
- //# sourceMappingURL=context.constants-CTr1U0kI.cjs.map
98
+ //# sourceMappingURL=context.constants-cm50ZUiS.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.constants-CTr1U0kI.cjs","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts","../src/contexts/context-sonner/context.hooks.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon name={props.icon} type='id' size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme'\n\nimport { ProviderSonnerProps } from '.'\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04\nexport const DEFAULT_PROVIDER_SONNER_Y = 100\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black'\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {}\n}\n","import { useContext } from 'react'\n\nimport { SonnerContext, SonnerContextProps } from '.'\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext)\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner')\n }\n return context\n}\n"],"names":["SonnerContext","createContext","MemoizedSonnerElement","memo","props","jsx","motion","div","layout","initial","opacity","scale","y","isLastViewIndex","isTop","DEFAULT_PROVIDER_SONNER_Y","animate","isMoreThanLastViewIndex","pointerEvents","display","isHovered","index","DEFAULT_PROVIDER_SONNER_SCALE","marginTop","DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM","marginBottom","style","zIndex","whileInView","exit","transition","type","duration","DEFAULT_PROVIDER_SONNER_DURATION","children","jsxs","SonnerElementWrapper","$genre","genre","onClick","hidingMode","handleOnClick","id","isLoading","icon","SonnerIcon","Icon","size","name","SonnerContent","content","Fragment","title","SonnerContentTitle","$font","weight","description","SonnerContentDescription","button","SonnerButtonWrapper","Button","buttonGenre","SonnerLayout","styled","$zIndex","$gap","addRemoveScrollbar","$position","css","theme","colors","sonner","wrapper","background","color","borderColor","boxShadow","boxShadowHover","addTransition","DEFAULT_PROVIDER_SONNER_Z_INDEX","DEFAULT_PROVIDER_SONNER_GENRE","DEFAULT_PROVIDER_SONNER_BUTTON","memoVisibleToasts","useMemo","visibleToasts","memoDefaultDescription","_a","default","memoDefaultTitle","_b","memoDefaultButton","_c","memoDefaultHidingTime","hidingTime","_d","memoDefaultHidingMode","_e","memoDefaultGenre","_f","position","includes","contentHistory","setContentHistory","useState","setIsHovered","handleMouseEnter","useCallback","handleMouseLeave","remove","prev","itemToRemove","find","item","indexToRemove","updatedHistory","filter","map","length","toast","uuidv4","existingIndex","findIndex","newContent","unshift","setTimeout","promise","expectation","localToast","then","result","catch","error","useTheme","Provider","value","gap","onMouseEnter","onMouseLeave","AnimatePresence","isMoreThanLastViewIndexPlusOne","localGenre","localContent","localTitle","localDescription","context","useContext","Error"],"mappings":"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"}
1
+ {"version":3,"file":"context.constants-cm50ZUiS.cjs","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts","../src/contexts/context-sonner/context.hooks.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon name={props.icon} type='id' size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n"],"names":["SonnerContext","createContext","MemoizedSonnerElement","memo","props","jsx","motion","div","layout","initial","opacity","scale","y","isLastViewIndex","isTop","DEFAULT_PROVIDER_SONNER_Y","animate","isMoreThanLastViewIndex","pointerEvents","display","isHovered","index","DEFAULT_PROVIDER_SONNER_SCALE","marginTop","DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM","marginBottom","style","zIndex","whileInView","exit","transition","type","duration","DEFAULT_PROVIDER_SONNER_DURATION","children","jsxs","SonnerElementWrapper","$genre","genre","onClick","hidingMode","handleOnClick","id","isLoading","icon","SonnerIcon","Icon","size","name","SonnerContent","content","Fragment","title","SonnerContentTitle","$font","weight","description","SonnerContentDescription","button","SonnerButtonWrapper","Button","buttonGenre","SonnerLayout","styled","$zIndex","$gap","addRemoveScrollbar","$position","css","theme","colors","sonner","wrapper","background","color","borderColor","boxShadow","boxShadowHover","addTransition","DEFAULT_PROVIDER_SONNER_Z_INDEX","DEFAULT_PROVIDER_SONNER_GENRE","DEFAULT_PROVIDER_SONNER_BUTTON","memoVisibleToasts","useMemo","visibleToasts","memoDefaultDescription","_a","default","memoDefaultTitle","_b","memoDefaultButton","_c","memoDefaultHidingTime","hidingTime","_d","memoDefaultHidingMode","_e","memoDefaultGenre","_f","position","includes","contentHistory","setContentHistory","useState","setIsHovered","handleMouseEnter","useCallback","handleMouseLeave","remove","prev","itemToRemove","find","item","indexToRemove","updatedHistory","filter","map","length","toast","uuidv4","existingIndex","findIndex","newContent","unshift","setTimeout","promise","expectation","localToast","then","result","catch","error","useTheme","Provider","value","gap","onMouseEnter","onMouseLeave","AnimatePresence","isMoreThanLastViewIndexPlusOne","localGenre","localContent","localTitle","localDescription","context","useContext","Error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-80N-5MqM.cjs","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.functions.ts","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["import Cookies from 'js-cookie'\nimport { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.'\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null)\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = props => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props)\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues\n }}\n >\n {props.children}\n </CookieContext.Provider>\n )\n}\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>()\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name))\n setCookieValues(prevState => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined\n }))\n return cookie ? JSON.parse(cookie) : undefined\n }, [])\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options)\n setCookieValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options)\n setCookieValues(prevState => ({ ...prevState, [name]: undefined }))\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`)\n }\n }, [])\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeCookieValue(String(key) as never)\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach(key => {\n const cookieValue = Cookies.get(String(key))\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue)\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never)\n } else {\n setCookieValues(prevState => ({\n ...prevState,\n [key]: parsedValue\n }))\n }\n } catch {\n removeCookieValue(String(key) as never)\n }\n } else {\n removeCookieValue(String(key) as never)\n }\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n useEffect(() => {\n checkCookie()\n }, [checkCookie])\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues }\n}\n","import Cookies from 'js-cookie'\n\nimport { CookieAttributes } from '.'\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value)\n Cookies.set(key, item, options)\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error)\n }\n}\n","import { useContext } from 'react'\n\nimport { CookieContext, CookieContextProps } from '.'\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext)\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie')\n }\n return context\n}\n"],"names":["CookieContext","createContext","useProviderCookie","props","cookieValues","setCookieValues","useState","getCookie","useCallback","name","cookie","Cookies","get","String","prevState","JSON","parse","changeCookie","value","options","set","stringify","console","info","removeCookieValue","remove","removeCookieValues","validate","validateKeys","_a","forEach","key","checkCookie","getValidateCookieValue","cookieValue","parsedValue","useEffect","setCookie","jsx","Provider","children","item","error","context","useContext","Error"],"mappings":"qGAQaA,EAAgBC,EAAAA,cAAyC,MA0ChEC,EAAqBC,IACzB,MAAOC,EAAcC,GAAmBC,aAElCC,EAAYC,cAAgDC,IAChE,MAAMC,EAASC,EAAQC,IAAIC,OAAOJ,IAKlC,OAJAJ,EAAgBS,IAAA,IACXA,EACHL,CAACA,GAAOC,EAASK,KAAKC,MAAMN,QAAU,KAEjCA,EAASK,KAAKC,MAAMN,QAAU,GACpC,IAEGO,EAAeT,EAAAA,YACnB,CAAoCC,EAASS,EAA6BC,KACxE,IACER,EAAQS,IAAIP,OAAOJ,GAAOM,KAAKM,UAAUH,GAAQC,GACjDd,EAAgBS,QAAmBA,EAAWL,CAACA,GAAOS,IAAQ,CAAA,MAE9DI,QAAQC,KAAK,6CAA6Cd,YAAeS,KAAQ,GAGrF,IAGIM,EAAoBhB,EAAAA,YAAY,CAAoCC,EAASU,KACjF,IACER,EAAQc,OAAOZ,OAAOJ,GAAOU,GAC7Bd,EAAgBS,QAAmBA,EAAWL,CAACA,QAAO,IAAY,CAAA,MAElEa,QAAQC,KAAK,kDAAkDd,KAAO,GAEvE,IAEGiB,EAAqBlB,EAAAA,YAAY,WACjCL,EAAMwB,UAAYxB,EAAMwB,SAASC,aACnC,OAAAC,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAAQC,IACnCP,EAAkBX,OAAOkB,MAG3BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAEdQ,EAAcxB,EAAAA,YAAY,WAC1BL,EAAMwB,UAAYxB,EAAMwB,SAASC,cAAgBzB,EAAMwB,SAASM,uBAClE,OAAAJ,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAAQC,UACnC,MAAMG,EAAcvB,EAAQC,IAAIC,OAAOkB,IACvC,GAAIG,EACF,IACE,MAAMC,EAAcpB,KAAKC,MAAMkB,IAC1B,OAAAL,EAAA1B,EAAMwB,eAAN,EAAAE,EAAgBI,uBAAuBpB,OAAOkB,GAAeI,IAGhE9B,EAAgBS,IAAA,IACXA,EACHiB,CAACA,GAAMI,KAJTX,EAAkBX,OAAOkB,GAM3B,CAAA,MAEAP,EAAkBX,OAAOkB,GAAa,MAGxCP,EAAkBX,OAAOkB,MAI7BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAMpB,OAJAY,EAAAA,UAAU,KACRJ,KACC,CAACA,IAEG,CAAEzB,YAAW8B,UAAWpB,EAAcO,oBAAmBE,qBAAoBM,cAAa5B,gEA9F5CD,IACrD,MAAMI,UAAEA,YAAW8B,EAAAb,kBAAWA,EAAAE,mBAAmBA,cAAoBM,EAAA5B,aAAaA,GAChFF,EAAkBC,GAEpB,SACEmC,kBAAAA,IAACtC,EAAcuC,SAAd,CACCrB,MAAO,CACLX,YACA8B,YACAb,oBACAE,qBACAM,cACA5B,gBAGDoC,SAAArC,EAAMqC,kCCzCN,SAA0BT,GAC/B,MAAMU,EAAO9B,EAAQC,IAAImB,GACzB,GAAIU,EACF,IACE,OAAO1B,KAAKC,MAAMyB,EAAI,OACfC,GAEP,OADApB,QAAQoB,MAAM,8BAA8BX,MAASW,GAC9C,IAAA,CAGX,OAAO,IACT,sBAEO,SAAwBX,EAAab,EAAUC,GACpD,IACE,MAAMsB,EAAO1B,KAAKM,UAAUH,GAC5BP,EAAQS,IAAIW,EAAKU,EAAMtB,EAAO,OACvBuB,GACPpB,QAAQoB,MAAM,8BAA8BX,MAASW,EAAK,CAE9D,oBCbyB,KACvB,MAAMC,EAAUC,EAAAA,WAAW5C,GAC3B,IAAK2C,EACH,MAAM,IAAIE,MAAM,mDAElB,OAAOF"}
1
+ {"version":3,"file":"context.functions-80N-5MqM.cjs","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.functions.ts","../src/contexts/context-cookie/context.hooks.ts"],"sourcesContent":["import Cookies from 'js-cookie';\nimport { FC, createContext, useCallback, useEffect, useState } from 'react';\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null);\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = (props) => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props);\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues,\n }}\n >\n {props.children}\n </CookieContext.Provider>\n );\n};\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name));\n setCookieValues((prevState) => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined,\n }));\n return cookie ? JSON.parse(cookie) : undefined;\n }, []);\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach((key) => {\n const cookieValue = Cookies.get(String(key));\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue);\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never);\n } else {\n setCookieValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeCookieValue(String(key) as never);\n }\n } else {\n removeCookieValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import Cookies from 'js-cookie';\n\nimport { CookieAttributes } from '.';\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key);\n if (item) {\n try {\n return JSON.parse(item) as T;\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error);\n return null;\n }\n }\n return null;\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value);\n Cookies.set(key, item, options);\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error);\n }\n}\n","import { useContext } from 'react';\n\nimport { CookieContext, CookieContextProps } from '.';\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext);\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie');\n }\n return context;\n};\n"],"names":["CookieContext","createContext","useProviderCookie","props","cookieValues","setCookieValues","useState","getCookie","useCallback","name","cookie","Cookies","get","String","prevState","JSON","parse","changeCookie","value","options","set","stringify","console","info","removeCookieValue","remove","removeCookieValues","validate","validateKeys","_a","forEach","key","checkCookie","getValidateCookieValue","cookieValue","parsedValue","useEffect","setCookie","jsx","Provider","children","item","error","context","useContext","Error"],"mappings":"qGAQaA,EAAgBC,EAAAA,cAAyC,MA0ChEC,EAAqBC,IACzB,MAAOC,EAAcC,GAAmBC,aAElCC,EAAYC,cAAgDC,IAChE,MAAMC,EAASC,EAAQC,IAAIC,OAAOJ,IAKlC,OAJAJ,EAAiBS,IAAA,IACZA,EACHL,CAACA,GAAOC,EAASK,KAAKC,MAAMN,QAAU,KAEjCA,EAASK,KAAKC,MAAMN,QAAU,GACpC,IAEGO,EAAeT,EAAAA,YACnB,CAAoCC,EAASS,EAA6BC,KACxE,IACER,EAAQS,IAAIP,OAAOJ,GAAOM,KAAKM,UAAUH,GAAQC,GACjDd,EAAiBS,QAAoBA,EAAWL,CAACA,GAAOS,IAAQ,CAAA,MAEhEI,QAAQC,KAAK,6CAA6Cd,YAAeS,KAAQ,GAGrF,IAGIM,EAAoBhB,EAAAA,YAAY,CAAoCC,EAASU,KACjF,IACER,EAAQc,OAAOZ,OAAOJ,GAAOU,GAC7Bd,EAAiBS,QAAoBA,EAAWL,CAACA,QAAO,IAAY,CAAA,MAEpEa,QAAQC,KAAK,kDAAkDd,KAAO,GAEvE,IAEGiB,EAAqBlB,EAAAA,YAAY,WACjCL,EAAMwB,UAAYxB,EAAMwB,SAASC,aACnC,OAAAC,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAASC,IACpCP,EAAkBX,OAAOkB,MAG3BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAEdQ,EAAcxB,EAAAA,YAAY,WAC1BL,EAAMwB,UAAYxB,EAAMwB,SAASC,cAAgBzB,EAAMwB,SAASM,uBAClE,OAAAJ,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAASC,UACpC,MAAMG,EAAcvB,EAAQC,IAAIC,OAAOkB,IACvC,GAAIG,EACF,IACE,MAAMC,EAAcpB,KAAKC,MAAMkB,IAC1B,OAAAL,EAAA1B,EAAMwB,eAAN,EAAAE,EAAgBI,uBAAuBpB,OAAOkB,GAAeI,IAGhE9B,EAAiBS,IAAA,IACZA,EACHiB,CAACA,GAAMI,KAJTX,EAAkBX,OAAOkB,GAM3B,CAAA,MAEAP,EAAkBX,OAAOkB,GAAa,MAGxCP,EAAkBX,OAAOkB,MAI7BT,QAAQC,KAAK,8CAEd,CAACpB,EAAMwB,SAAUH,IAMpB,OAJAY,EAAAA,UAAU,KACRJ,KACC,CAACA,IAEG,CAAEzB,YAAW8B,UAAWpB,EAAcO,oBAAmBE,qBAAoBM,cAAa5B,gEA9F3CD,IACtD,MAAMI,UAAEA,YAAW8B,EAAAb,kBAAWA,EAAAE,mBAAmBA,cAAoBM,EAAA5B,aAAaA,GAChFF,EAAkBC,GAEpB,SACEmC,kBAAAA,IAACtC,EAAcuC,SAAd,CACCrB,MAAO,CACLX,YACA8B,YACAb,oBACAE,qBACAM,cACA5B,gBAGDoC,SAAArC,EAAMqC,kCCzCN,SAA0BT,GAC/B,MAAMU,EAAO9B,EAAQC,IAAImB,GACzB,GAAIU,EACF,IACE,OAAO1B,KAAKC,MAAMyB,EAAI,OACfC,GAEP,OADApB,QAAQoB,MAAM,8BAA8BX,MAASW,GAC9C,IAAA,CAGX,OAAO,IACT,sBAEO,SAAwBX,EAAab,EAAUC,GACpD,IACE,MAAMsB,EAAO1B,KAAKM,UAAUH,GAC5BP,EAAQS,IAAIW,EAAKU,EAAMtB,EAAO,OACvBuB,GACPpB,QAAQoB,MAAM,8BAA8BX,MAASW,EAAK,CAE9D,oBCbyB,KACvB,MAAMC,EAAUC,EAAAA,WAAW5C,GAC3B,IAAK2C,EACH,MAAM,IAAIE,MAAM,mDAElB,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-B8FDl7nJ.js","sources":["../src/contexts/context-permission/context.functions.ts"],"sourcesContent":["export const urlBase64ToUint8Array = (base64String: string) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4)\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n const outputArray = new Uint8Array(rawData.length)\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i)\n }\n\n return outputArray\n}\n"],"names":[],"mappings":"AAAO,MAAM,wBAAwB,CAAC,iBAAyB;AAC7D,QAAM,UAAU,IAAI,QAAQ,IAAK,aAAa,SAAS,KAAM,CAAC;AAC9D,QAAM,UAAU,eAAe,SAAS,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAE5E,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,cAAc,IAAI,WAAW,QAAQ,MAAM;AAEjD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAAG;AACvC,gBAAY,CAAC,IAAI,QAAQ,WAAW,CAAC;AAAA,EAAA;AAGvC,SAAO;AACT;"}
1
+ {"version":3,"file":"context.functions-B8FDl7nJ.js","sources":["../src/contexts/context-permission/context.functions.ts"],"sourcesContent":["export const urlBase64ToUint8Array = (base64String: string) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n};\n"],"names":[],"mappings":"AAAO,MAAM,wBAAwB,CAAC,iBAAyB;AAC7D,QAAM,UAAU,IAAI,QAAQ,IAAK,aAAa,SAAS,KAAM,CAAC;AAC9D,QAAM,UAAU,eAAe,SAAS,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAE5E,QAAM,UAAU,OAAO,KAAK,MAAM;AAClC,QAAM,cAAc,IAAI,WAAW,QAAQ,MAAM;AAEjD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAAG;AACvC,gBAAY,CAAC,IAAI,QAAQ,WAAW,CAAC;AAAA,EAAA;AAGvC,SAAO;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-BD15C8_y.js","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts","../src/contexts/context-cookie/context.functions.ts"],"sourcesContent":["import Cookies from 'js-cookie'\nimport { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.'\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null)\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = props => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props)\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues\n }}\n >\n {props.children}\n </CookieContext.Provider>\n )\n}\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>()\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name))\n setCookieValues(prevState => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined\n }))\n return cookie ? JSON.parse(cookie) : undefined\n }, [])\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options)\n setCookieValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options)\n setCookieValues(prevState => ({ ...prevState, [name]: undefined }))\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`)\n }\n }, [])\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeCookieValue(String(key) as never)\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach(key => {\n const cookieValue = Cookies.get(String(key))\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue)\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never)\n } else {\n setCookieValues(prevState => ({\n ...prevState,\n [key]: parsedValue\n }))\n }\n } catch {\n removeCookieValue(String(key) as never)\n }\n } else {\n removeCookieValue(String(key) as never)\n }\n })\n } else {\n console.info('Provider Cookie. Validate is not defined.')\n }\n }, [props.validate, removeCookieValue])\n\n useEffect(() => {\n checkCookie()\n }, [checkCookie])\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues }\n}\n","import { useContext } from 'react'\n\nimport { CookieContext, CookieContextProps } from '.'\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext)\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie')\n }\n return context\n}\n","import Cookies from 'js-cookie'\n\nimport { CookieAttributes } from '.'\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value)\n Cookies.set(key, item, options)\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error)\n }\n}\n"],"names":["jsx","_a"],"mappings":"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"}
1
+ {"version":3,"file":"context.functions-BD15C8_y.js","sources":["../src/contexts/context-cookie/context.tsx","../src/contexts/context-cookie/context.hooks.ts","../src/contexts/context-cookie/context.functions.ts"],"sourcesContent":["import Cookies from 'js-cookie';\nimport { FC, createContext, useCallback, useEffect, useState } from 'react';\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null);\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = (props) => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props);\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues,\n }}\n >\n {props.children}\n </CookieContext.Provider>\n );\n};\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name));\n setCookieValues((prevState) => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined,\n }));\n return cookie ? JSON.parse(cookie) : undefined;\n }, []);\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach((key) => {\n const cookieValue = Cookies.get(String(key));\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue);\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never);\n } else {\n setCookieValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeCookieValue(String(key) as never);\n }\n } else {\n removeCookieValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n","import { useContext } from 'react';\n\nimport { CookieContext, CookieContextProps } from '.';\n\n/**\n * Custom hook to access the CookieContext.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n */\nexport const useCookie = (): CookieContextProps => {\n const context = useContext(CookieContext);\n if (!context) {\n throw new Error('useCookie must be used within an ProviderCookie');\n }\n return context;\n};\n","import Cookies from 'js-cookie';\n\nimport { CookieAttributes } from '.';\n\nexport function getFromCookie<T>(key: string): T | null {\n const item = Cookies.get(key);\n if (item) {\n try {\n return JSON.parse(item) as T;\n } catch (error) {\n console.error(`Error parsing cookie item \"${key}\":`, error);\n return null;\n }\n }\n return null;\n}\n\nexport function setToCookie<T>(key: string, value: T, options?: CookieAttributes): void {\n try {\n const item = JSON.stringify(value);\n Cookies.set(key, item, options);\n } catch (error) {\n console.error(`Error setting cookie item \"${key}\":`, error);\n }\n}\n"],"names":["jsx","_a"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-CQ9GerPb.js","sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.hooks.ts","../src/contexts/context-local-storage/context.functions.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.'\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | 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 ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = 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: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>()\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[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 ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value))\n setLocalStorageValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name))\n setLocalStorageValues(prevState => ({\n ...prevState,\n [name]: undefined\n }))\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`)\n }\n }, [])\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeLocalStorageValue(String(key) as never)\n })\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.')\n }\n }, [props.validate, removeLocalStorageValue])\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate && 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 console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.')\n }\n }, [props.validate, removeLocalStorageValue])\n\n useEffect(() => {\n checkLocalStorage()\n }, [checkLocalStorage])\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, LocalStorageContextProps } from '.'\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): LocalStorageContextProps => {\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","export function getFromLocalStorage<T>(key: string): T | null {\n const item = localStorage.getItem(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing localStorage item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToLocalStorage<T>(key: string, value: T): void {\n try {\n const item = JSON.stringify(value)\n localStorage.setItem(key, item)\n } catch (error) {\n console.error(`Error setting localStorage item \"${key}\":`, error)\n }\n}\n"],"names":["jsx","_a"],"mappings":"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"}
1
+ {"version":3,"file":"context.functions-CQ9GerPb.js","sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.hooks.ts","../src/contexts/context-local-storage/context.functions.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react';\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.';\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | 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 ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = (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: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[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 ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate && 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 console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\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, LocalStorageContextProps } from '.';\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): LocalStorageContextProps => {\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","export function getFromLocalStorage<T>(key: string): T | null {\n const item = localStorage.getItem(key);\n if (item) {\n try {\n return JSON.parse(item) as T;\n } catch (error) {\n console.error(`Error parsing localStorage item \"${key}\":`, error);\n return null;\n }\n }\n return null;\n}\n\nexport function setToLocalStorage<T>(key: string, value: T): void {\n try {\n const item = JSON.stringify(value);\n localStorage.setItem(key, item);\n } catch (error) {\n console.error(`Error setting localStorage item \"${key}\":`, error);\n }\n}\n"],"names":["jsx","_a"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-ar41xFVo.cjs","sources":["../src/contexts/context-permission/context.functions.ts"],"sourcesContent":["export const urlBase64ToUint8Array = (base64String: string) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4)\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n const outputArray = new Uint8Array(rawData.length)\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i)\n }\n\n return outputArray\n}\n"],"names":["base64String","base64","repeat","length","replace","rawData","window","atob","outputArray","Uint8Array","i","charCodeAt"],"mappings":"2CAAsCA,IACpC,MACMC,GAAUD,EADA,IAAIE,QAAQ,EAAKF,EAAaG,OAAS,GAAM,IACrBC,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAEnEC,EAAUC,OAAOC,KAAKN,GACtBO,EAAc,IAAIC,WAAWJ,EAAQF,QAE3C,IAAA,IAASO,EAAI,EAAGA,EAAIL,EAAQF,SAAUO,EACpCF,EAAYE,GAAKL,EAAQM,WAAWD,GAGtC,OAAOF"}
1
+ {"version":3,"file":"context.functions-ar41xFVo.cjs","sources":["../src/contexts/context-permission/context.functions.ts"],"sourcesContent":["export const urlBase64ToUint8Array = (base64String: string) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n};\n"],"names":["base64String","base64","repeat","length","replace","rawData","window","atob","outputArray","Uint8Array","i","charCodeAt"],"mappings":"2CAAsCA,IACpC,MACMC,GAAUD,EADA,IAAIE,QAAQ,EAAKF,EAAaG,OAAS,GAAM,IACrBC,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAEnEC,EAAUC,OAAOC,KAAKN,GACtBO,EAAc,IAAIC,WAAWJ,EAAQF,QAE3C,IAAA,IAASO,EAAI,EAAGA,EAAIL,EAAQF,SAAUO,EACpCF,EAAYE,GAAKL,EAAQM,WAAWD,GAGtC,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.functions-ohI9H54j.cjs","sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.functions.ts","../src/contexts/context-local-storage/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.'\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | 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 ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = 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: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>()\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[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 ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value))\n setLocalStorageValues(prevState => ({ ...prevState, [name]: value }))\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`)\n }\n },\n []\n )\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name))\n setLocalStorageValues(prevState => ({\n ...prevState,\n [name]: undefined\n }))\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`)\n }\n }, [])\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach(key => {\n removeLocalStorageValue(String(key) as never)\n })\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.')\n }\n }, [props.validate, removeLocalStorageValue])\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate && 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 console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.')\n }\n }, [props.validate, removeLocalStorageValue])\n\n useEffect(() => {\n checkLocalStorage()\n }, [checkLocalStorage])\n\n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues\n }\n}\n","export function getFromLocalStorage<T>(key: string): T | null {\n const item = localStorage.getItem(key)\n if (item) {\n try {\n return JSON.parse(item) as T\n } catch (error) {\n console.error(`Error parsing localStorage item \"${key}\":`, error)\n return null\n }\n }\n return null\n}\n\nexport function setToLocalStorage<T>(key: string, value: T): void {\n try {\n const item = JSON.stringify(value)\n localStorage.setItem(key, item)\n } catch (error) {\n console.error(`Error setting localStorage item \"${key}\":`, error)\n }\n}\n","import { useContext } from 'react'\n\nimport { LocalStorageContext, LocalStorageContextProps } from '.'\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): LocalStorageContextProps => {\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"],"names":["LocalStorageContext","createContext","useProviderLocalStorage","props","localStorageValues","setLocalStorageValues","useState","getLocalStorage","useCallback","name","localStorageValue","localStorage","getItem","prevState","JSON","parse","changeLocalStorage","value","setItem","String","stringify","console","info","removeLocalStorageValue","removeItem","removeLocalStorageValues","validate","validateKeys","_a","forEach","key","checkLocalStorage","getValidateLocalStorageValue","parsedValue","useEffect","setLocalStorage","jsx","Provider","children","item","error","context","useContext","Error"],"mappings":"8EAIaA,EAAsBC,EAAAA,cAA+C,MA6C5EC,EAA2BC,IAC/B,MAAOC,EAAoBC,GAAyBC,aAE9CC,EAAkBC,EAAAA,YACoBC,IACxC,MAAMC,EAAoBC,aAAaC,QAAQH,GAK/C,OAJAJ,EAAsBQ,IAAA,IACjBA,EACHJ,CAACA,GAAOC,EAAoBI,KAAKC,MAAML,QAAqB,KAEvDA,EAAoBI,KAAKC,MAAML,QAAqB,GAE7D,IAGIM,EAAqBR,EAAAA,YACzB,CAA0CC,EAASQ,KACjD,IACEN,aAAaO,QAAQC,OAAOV,GAAOK,KAAKM,UAAUH,IAClDZ,EAAsBQ,QAAmBA,EAAWJ,CAACA,GAAOQ,IAAQ,CAAA,MAEpEI,QAAQC,KAAK,yDAAyDb,YAAeQ,KAAQ,GAGjG,IAGIM,EAA0Bf,cAAsDC,IACpF,IACEE,aAAaa,WAAWL,OAAOV,IAC/BJ,EAAsBQ,IAAA,IACjBA,EACHJ,CAACA,QAAO,IACR,CAAA,MAEFY,QAAQC,KAAK,8DAA8Db,KAAO,GAEnF,IAEGgB,EAA2BjB,EAAAA,YAAY,WACvCL,EAAMuB,UAAYvB,EAAMuB,SAASC,aACnC,OAAAC,EAAAzB,EAAMuB,WAANE,EAAgBD,aAAaE,QAAQC,IACnCP,EAAwBJ,OAAOW,MAGjCT,QAAQC,KAAK,+EAEd,CAACnB,EAAMuB,SAAUH,IAEdQ,EAAoBvB,EAAAA,YAAY,WAChCL,EAAMuB,UAAYvB,EAAMuB,SAASC,cAAgBxB,EAAMuB,SAASM,6BAClE,OAAAJ,EAAAzB,EAAMuB,WAANE,EAAgBD,aAAaE,QAAQC,UACnC,MAAMpB,EAAoBC,aAAaC,QAAQkB,GAC/C,GAAIpB,EACF,IACE,MAAMuB,EAAcnB,KAAKC,MAAML,IAC1B,OAAAkB,EAAAzB,EAAMuB,eAAN,EAAAE,EAAgBI,6BAA6Bb,OAAOW,GAAeG,IAGtE5B,EAAsBQ,IAAA,IACjBA,EACHiB,CAACA,GAAMG,KAJTV,EAAwBJ,OAAOW,GAMjC,CAAA,MAEAP,EAAwBJ,OAAOW,GAAa,MAG9CP,EAAwBJ,OAAOW,MAInCT,QAAQC,KAAK,wEAEd,CAACnB,EAAMuB,SAAUH,IAMpB,OAJAW,EAAAA,UAAU,KACRH,KACC,CAACA,IAEG,CACLxB,kBACA4B,gBAAiBnB,EACjBO,0BACAE,2BACAM,oBACA3B,kFAhH+DD,IACjE,MAAMI,gBACJA,EAAA4B,gBACAA,EAAAZ,wBACAA,EAAAE,yBACAA,EAAAM,kBACAA,EAAA3B,mBACAA,GACEF,EAAwBC,GAE5B,SACEiC,kBAAAA,IAACpC,EAAoBqC,SAApB,CACCpB,MAAO,CACLV,kBACA4B,kBACAZ,0BACAE,2BACAM,oBACA3B,sBAGDkC,SAAAnC,EAAMmC,wCC5CN,SAAgCR,GACrC,MAAMS,EAAO5B,aAAaC,QAAQkB,GAClC,GAAIS,EACF,IACE,OAAOzB,KAAKC,MAAMwB,EAAI,OACfC,GAEP,OADAnB,QAAQmB,MAAM,oCAAoCV,MAASU,GACpD,IAAA,CAGX,OAAO,IACT,4BAEO,SAA8BV,EAAab,GAChD,IACE,MAAMsB,EAAOzB,KAAKM,UAAUH,GAC5BN,aAAaO,QAAQY,EAAKS,EAAI,OACvBC,GACPnB,QAAQmB,MAAM,oCAAoCV,MAASU,EAAK,CAEpE,0BCb+B,KAC7B,MAAMC,EAAUC,EAAAA,WAAW1C,GAC3B,IAAKyC,EACH,MAAM,IAAIE,MAAM,+DAElB,OAAOF"}
1
+ {"version":3,"file":"context.functions-ohI9H54j.cjs","sources":["../src/contexts/context-local-storage/context.tsx","../src/contexts/context-local-storage/context.functions.ts","../src/contexts/context-local-storage/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react';\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.';\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | 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 ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = (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: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[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 ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate && 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 console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\n\n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n };\n};\n","export function getFromLocalStorage<T>(key: string): T | null {\n const item = localStorage.getItem(key);\n if (item) {\n try {\n return JSON.parse(item) as T;\n } catch (error) {\n console.error(`Error parsing localStorage item \"${key}\":`, error);\n return null;\n }\n }\n return null;\n}\n\nexport function setToLocalStorage<T>(key: string, value: T): void {\n try {\n const item = JSON.stringify(value);\n localStorage.setItem(key, item);\n } catch (error) {\n console.error(`Error setting localStorage item \"${key}\":`, error);\n }\n}\n","import { useContext } from 'react';\n\nimport { LocalStorageContext, LocalStorageContextProps } from '.';\n\n/**\n * Custom hook to access the LocalStorageContext.\n */\nexport const useLocalStorage = (): LocalStorageContextProps => {\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"],"names":["LocalStorageContext","createContext","useProviderLocalStorage","props","localStorageValues","setLocalStorageValues","useState","getLocalStorage","useCallback","name","localStorageValue","localStorage","getItem","prevState","JSON","parse","changeLocalStorage","value","setItem","String","stringify","console","info","removeLocalStorageValue","removeItem","removeLocalStorageValues","validate","validateKeys","_a","forEach","key","checkLocalStorage","getValidateLocalStorageValue","parsedValue","useEffect","setLocalStorage","jsx","Provider","children","item","error","context","useContext","Error"],"mappings":"8EAIaA,EAAsBC,EAAAA,cAA+C,MA6C5EC,EAA2BC,IAC/B,MAAOC,EAAoBC,GAAyBC,aAE9CC,EAAkBC,EAAAA,YACoBC,IACxC,MAAMC,EAAoBC,aAAaC,QAAQH,GAK/C,OAJAJ,EAAuBQ,IAAA,IAClBA,EACHJ,CAACA,GAAOC,EAAoBI,KAAKC,MAAML,QAAqB,KAEvDA,EAAoBI,KAAKC,MAAML,QAAqB,GAE7D,IAGIM,EAAqBR,EAAAA,YACzB,CAA0CC,EAASQ,KACjD,IACEN,aAAaO,QAAQC,OAAOV,GAAOK,KAAKM,UAAUH,IAClDZ,EAAuBQ,QAAoBA,EAAWJ,CAACA,GAAOQ,IAAQ,CAAA,MAEtEI,QAAQC,KAAK,yDAAyDb,YAAeQ,KAAQ,GAGjG,IAGIM,EAA0Bf,cAAsDC,IACpF,IACEE,aAAaa,WAAWL,OAAOV,IAC/BJ,EAAuBQ,IAAA,IAClBA,EACHJ,CAACA,QAAO,IACR,CAAA,MAEFY,QAAQC,KAAK,8DAA8Db,KAAO,GAEnF,IAEGgB,EAA2BjB,EAAAA,YAAY,WACvCL,EAAMuB,UAAYvB,EAAMuB,SAASC,aACnC,OAAAC,EAAAzB,EAAMuB,WAANE,EAAgBD,aAAaE,QAASC,IACpCP,EAAwBJ,OAAOW,MAGjCT,QAAQC,KAAK,+EAEd,CAACnB,EAAMuB,SAAUH,IAEdQ,EAAoBvB,EAAAA,YAAY,WAChCL,EAAMuB,UAAYvB,EAAMuB,SAASC,cAAgBxB,EAAMuB,SAASM,6BAClE,OAAAJ,EAAAzB,EAAMuB,WAANE,EAAgBD,aAAaE,QAASC,UACpC,MAAMpB,EAAoBC,aAAaC,QAAQkB,GAC/C,GAAIpB,EACF,IACE,MAAMuB,EAAcnB,KAAKC,MAAML,IAC1B,OAAAkB,EAAAzB,EAAMuB,eAAN,EAAAE,EAAgBI,6BAA6Bb,OAAOW,GAAeG,IAGtE5B,EAAuBQ,IAAA,IAClBA,EACHiB,CAACA,GAAMG,KAJTV,EAAwBJ,OAAOW,GAMjC,CAAA,MAEAP,EAAwBJ,OAAOW,GAAa,MAG9CP,EAAwBJ,OAAOW,MAInCT,QAAQC,KAAK,wEAEd,CAACnB,EAAMuB,SAAUH,IAMpB,OAJAW,EAAAA,UAAU,KACRH,KACC,CAACA,IAEG,CACLxB,kBACA4B,gBAAiBnB,EACjBO,0BACAE,2BACAM,oBACA3B,kFAhHgED,IAClE,MAAMI,gBACJA,EAAA4B,gBACAA,EAAAZ,wBACAA,EAAAE,yBACAA,EAAAM,kBACAA,EAAA3B,mBACAA,GACEF,EAAwBC,GAE5B,SACEiC,kBAAAA,IAACpC,EAAoBqC,SAApB,CACCpB,MAAO,CACLV,kBACA4B,kBACAZ,0BACAE,2BACAM,oBACA3B,sBAGDkC,SAAAnC,EAAMmC,wCC5CN,SAAgCR,GACrC,MAAMS,EAAO5B,aAAaC,QAAQkB,GAClC,GAAIS,EACF,IACE,OAAOzB,KAAKC,MAAMwB,EAAI,OACfC,GAEP,OADAnB,QAAQmB,MAAM,oCAAoCV,MAASU,GACpD,IAAA,CAGX,OAAO,IACT,4BAEO,SAA8BV,EAAab,GAChD,IACE,MAAMsB,EAAOzB,KAAKM,UAAUH,GAC5BN,aAAaO,QAAQY,EAAKS,EAAI,OACvBC,GACPnB,QAAQmB,MAAM,oCAAoCV,MAASU,EAAK,CAEpE,0BCb+B,KAC7B,MAAMC,EAAUC,EAAAA,WAAW1C,GAC3B,IAAKyC,EACH,MAAM,IAAIE,MAAM,+DAElB,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.hooks-7ydA7mGj.js","sources":["../src/contexts/context-permission/context.tsx","../src/contexts/context-permission/context.hooks.ts"],"sourcesContent":["import { createContext, useCallback, useEffect, useState } from 'react'\n\nimport { PermissionContextProps, ProviderPermissionProps } from '.'\n\nexport const PermissionContext = createContext<PermissionContextProps | null>(null)\n\nexport const ProviderPermission = (props: ProviderPermissionProps) => {\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 console.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 console.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 console.error('Provider Permission. Failed to request notification permission:', error)\n }\n } else {\n console.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, PermissionContextProps } from '.'\n\n/**\n * Custom hook to access the PermissionContext.\n */\nexport const usePermission = (): PermissionContextProps => {\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"],"names":["jsx"],"mappings":"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"}
1
+ {"version":3,"file":"context.hooks-7ydA7mGj.js","sources":["../src/contexts/context-permission/context.tsx","../src/contexts/context-permission/context.hooks.ts"],"sourcesContent":["import { createContext, useCallback, useEffect, useState } from 'react';\n\nimport { PermissionContextProps, ProviderPermissionProps } from '.';\n\nexport const PermissionContext = createContext<PermissionContextProps | null>(null);\n\nexport const ProviderPermission = (props: ProviderPermissionProps) => {\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 console.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 console.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 console.error('Provider Permission. Failed to request notification permission:', error);\n }\n } else {\n console.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, PermissionContextProps } from '.';\n\n/**\n * Custom hook to access the PermissionContext.\n */\nexport const usePermission = (): PermissionContextProps => {\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"],"names":["jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.hooks-BIsapq-0.cjs","sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useEffect, useMemo, useState } from 'react'\nimport { useTheme } from 'styled-components'\n\nimport { ProviderScreenWidthProps, ScreenWidthContextProps, Screens } from '.'\n\nexport const ScreenWidthContext = createContext<ScreenWidthContextProps | null>(null)\n\nexport const ProviderScreenWidth: FC<ProviderScreenWidthProps> = props => {\n const theme = useTheme()\n const [screenWidth, setScreenWidth] = useState<Screens>('default')\n\n const screens: ScreenWidthContextProps['screens'] = useMemo(() => {\n const allSizes = Object.entries(theme.screens).map(([key]) => {\n return {\n isScreen: screenWidth === key,\n value: key as Screens\n }\n })\n return allSizes\n }, [screenWidth, theme.screens])\n\n const screenActual: ScreenWidthContextProps['screenActual'] = useMemo(() => {\n const find = screens.find(item => item.isScreen)\n return find?.value ?? 'default'\n }, [screens])\n\n useEffect(() => {\n const sortedScreens = Object.entries(theme.screens)\n .map(([key, value]) => ({\n key: key as Screens,\n bp: (value as { width: number }).width\n }))\n .sort((a, b) => a.bp - b.bp)\n\n const queries = sortedScreens.map(({ key, bp }) => {\n return { key, mq: window.matchMedia(`(max-width: ${bp}px)`) }\n })\n const updateScreen = () => {\n for (const { key, mq } of queries) {\n if (mq.matches) {\n setScreenWidth(key)\n return\n }\n }\n // На всякий случай fallback\n setScreenWidth('default')\n }\n\n queries.forEach(({ mq }) => mq.addEventListener('change', updateScreen))\n updateScreen()\n\n return () => {\n queries.forEach(({ mq }) => mq.removeEventListener('change', updateScreen))\n }\n }, [theme.screens])\n return (\n <ScreenWidthContext.Provider\n value={{\n screens,\n screenActual,\n screenWidth\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n )\n}\n","import { useContext } from 'react'\n\nimport { ScreenWidthContext, ScreenWidthContextProps } from '.'\n\nexport const useScreenWidth = (): ScreenWidthContextProps => {\n const context = useContext(ScreenWidthContext)\n if (!context) {\n throw new Error('useScreenWidth must be used within an ProviderScreenWidth')\n }\n return context\n}\n"],"names":["ScreenWidthContext","createContext","props","theme","useTheme","screenWidth","setScreenWidth","useState","screens","useMemo","Object","entries","map","key","isScreen","value","screenActual","find","item","useEffect","queries","bp","width","sort","a","b","mq","window","matchMedia","updateScreen","matches","forEach","addEventListener","removeEventListener","jsx","Provider","children","context","useContext","Error"],"mappings":"6GAKaA,EAAqBC,EAAAA,cAA8C,kCAEfC,IAC/D,MAAMC,EAAQC,EAAAA,YACPC,EAAaC,GAAkBC,EAAAA,SAAkB,WAElDC,EAA8CC,EAAAA,QAAQ,IACzCC,OAAOC,QAAQR,EAAMK,SAASI,IAAI,EAAEC,MAC5C,CACLC,SAAUT,IAAgBQ,EAC1BE,MAAOF,KAIV,CAACR,EAAaF,EAAMK,UAEjBQ,EAAwDP,EAAAA,QAAQ,KACpE,MAAMQ,EAAOT,EAAQS,KAAKC,GAAQA,EAAKJ,UACvC,aAAOG,WAAMF,QAAS,WACrB,CAACP,IA+BJ,OA7BAW,EAAAA,UAAU,KACR,MAOMC,EAPgBV,OAAOC,QAAQR,EAAMK,SACxCI,IAAI,EAAEC,EAAKE,MAAK,CACfF,MACAQ,GAAKN,EAA4BO,SAElCC,KAAK,CAACC,EAAGC,IAAMD,EAAEH,GAAKI,EAAEJ,IAEGT,IAAI,EAAGC,MAAKQ,SACjC,CAAER,MAAKa,GAAIC,OAAOC,WAAW,eAAeP,WAE/CQ,EAAe,KACnB,IAAA,MAAWhB,IAAEA,EAAAa,GAAKA,KAAQN,EACxB,GAAIM,EAAGI,QAEL,YADAxB,EAAeO,GAKnBP,EAAe,YAMjB,OAHAc,EAAQW,QAAQ,EAAGL,QAASA,EAAGM,iBAAiB,SAAUH,IAC1DA,IAEO,KACLT,EAAQW,QAAQ,EAAGL,QAASA,EAAGO,oBAAoB,SAAUJ,MAE9D,CAAC1B,EAAMK,YAER0B,kBAAAA,IAAClC,EAAmBmC,SAAnB,CACCpB,MAAO,CACLP,UACAQ,eACAX,eAGD+B,SAAAlC,EAAMkC,gEC3DiB,KAC5B,MAAMC,EAAUC,EAAAA,WAAWtC,GAC3B,IAAKqC,EACH,MAAM,IAAIE,MAAM,6DAElB,OAAOF"}
1
+ {"version":3,"file":"context.hooks-BIsapq-0.cjs","sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ProviderScreenWidthProps, ScreenWidthContextProps, Screens } from '.';\n\nexport const ScreenWidthContext = createContext<ScreenWidthContextProps | null>(null);\n\nexport const ProviderScreenWidth: FC<ProviderScreenWidthProps> = (props) => {\n const theme = useTheme();\n const [screenWidth, setScreenWidth] = useState<Screens>('default');\n\n const screens: ScreenWidthContextProps['screens'] = useMemo(() => {\n const allSizes = Object.entries(theme.screens).map(([key]) => {\n return {\n isScreen: screenWidth === key,\n value: key as Screens,\n };\n });\n return allSizes;\n }, [screenWidth, theme.screens]);\n\n const screenActual: ScreenWidthContextProps['screenActual'] = useMemo(() => {\n const find = screens.find((item) => item.isScreen);\n return find?.value ?? 'default';\n }, [screens]);\n\n useEffect(() => {\n const sortedScreens = Object.entries(theme.screens)\n .map(([key, value]) => ({\n key: key as Screens,\n bp: (value as { width: number }).width,\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const queries = sortedScreens.map(({ key, bp }) => {\n return { key, mq: window.matchMedia(`(max-width: ${bp}px)`) };\n });\n const updateScreen = () => {\n for (const { key, mq } of queries) {\n if (mq.matches) {\n setScreenWidth(key);\n return;\n }\n }\n // На всякий случай fallback\n setScreenWidth('default');\n };\n\n queries.forEach(({ mq }) => mq.addEventListener('change', updateScreen));\n updateScreen();\n\n return () => {\n queries.forEach(({ mq }) => mq.removeEventListener('change', updateScreen));\n };\n }, [theme.screens]);\n return (\n <ScreenWidthContext.Provider\n value={{\n screens,\n screenActual,\n screenWidth,\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContext } from 'react';\n\nimport { ScreenWidthContext, ScreenWidthContextProps } from '.';\n\nexport const useScreenWidth = (): ScreenWidthContextProps => {\n const context = useContext(ScreenWidthContext);\n if (!context) {\n throw new Error('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"names":["ScreenWidthContext","createContext","props","theme","useTheme","screenWidth","setScreenWidth","useState","screens","useMemo","Object","entries","map","key","isScreen","value","screenActual","find","item","useEffect","queries","bp","width","sort","a","b","mq","window","matchMedia","updateScreen","matches","forEach","addEventListener","removeEventListener","jsx","Provider","children","context","useContext","Error"],"mappings":"6GAKaA,EAAqBC,EAAAA,cAA8C,kCAEdC,IAChE,MAAMC,EAAQC,EAAAA,YACPC,EAAaC,GAAkBC,EAAAA,SAAkB,WAElDC,EAA8CC,EAAAA,QAAQ,IACzCC,OAAOC,QAAQR,EAAMK,SAASI,IAAI,EAAEC,MAC5C,CACLC,SAAUT,IAAgBQ,EAC1BE,MAAOF,KAIV,CAACR,EAAaF,EAAMK,UAEjBQ,EAAwDP,EAAAA,QAAQ,KACpE,MAAMQ,EAAOT,EAAQS,KAAMC,GAASA,EAAKJ,UACzC,aAAOG,WAAMF,QAAS,WACrB,CAACP,IA+BJ,OA7BAW,EAAAA,UAAU,KACR,MAOMC,EAPgBV,OAAOC,QAAQR,EAAMK,SACxCI,IAAI,EAAEC,EAAKE,MAAK,CACfF,MACAQ,GAAKN,EAA4BO,SAElCC,KAAK,CAACC,EAAGC,IAAMD,EAAEH,GAAKI,EAAEJ,IAEGT,IAAI,EAAGC,MAAKQ,SACjC,CAAER,MAAKa,GAAIC,OAAOC,WAAW,eAAeP,WAE/CQ,EAAe,KACnB,IAAA,MAAWhB,IAAEA,EAAAa,GAAKA,KAAQN,EACxB,GAAIM,EAAGI,QAEL,YADAxB,EAAeO,GAKnBP,EAAe,YAMjB,OAHAc,EAAQW,QAAQ,EAAGL,QAASA,EAAGM,iBAAiB,SAAUH,IAC1DA,IAEO,KACLT,EAAQW,QAAQ,EAAGL,QAASA,EAAGO,oBAAoB,SAAUJ,MAE9D,CAAC1B,EAAMK,YAER0B,kBAAAA,IAAClC,EAAmBmC,SAAnB,CACCpB,MAAO,CACLP,UACAQ,eACAX,eAGD+B,SAAAlC,EAAMkC,gEC3DiB,KAC5B,MAAMC,EAAUC,EAAAA,WAAWtC,GAC3B,IAAKqC,EACH,MAAM,IAAIE,MAAM,6DAElB,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.hooks-BmwyZ1p3.js","sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useEffect, useMemo, useState } from 'react'\nimport { useTheme } from 'styled-components'\n\nimport { ProviderScreenWidthProps, ScreenWidthContextProps, Screens } from '.'\n\nexport const ScreenWidthContext = createContext<ScreenWidthContextProps | null>(null)\n\nexport const ProviderScreenWidth: FC<ProviderScreenWidthProps> = props => {\n const theme = useTheme()\n const [screenWidth, setScreenWidth] = useState<Screens>('default')\n\n const screens: ScreenWidthContextProps['screens'] = useMemo(() => {\n const allSizes = Object.entries(theme.screens).map(([key]) => {\n return {\n isScreen: screenWidth === key,\n value: key as Screens\n }\n })\n return allSizes\n }, [screenWidth, theme.screens])\n\n const screenActual: ScreenWidthContextProps['screenActual'] = useMemo(() => {\n const find = screens.find(item => item.isScreen)\n return find?.value ?? 'default'\n }, [screens])\n\n useEffect(() => {\n const sortedScreens = Object.entries(theme.screens)\n .map(([key, value]) => ({\n key: key as Screens,\n bp: (value as { width: number }).width\n }))\n .sort((a, b) => a.bp - b.bp)\n\n const queries = sortedScreens.map(({ key, bp }) => {\n return { key, mq: window.matchMedia(`(max-width: ${bp}px)`) }\n })\n const updateScreen = () => {\n for (const { key, mq } of queries) {\n if (mq.matches) {\n setScreenWidth(key)\n return\n }\n }\n // На всякий случай fallback\n setScreenWidth('default')\n }\n\n queries.forEach(({ mq }) => mq.addEventListener('change', updateScreen))\n updateScreen()\n\n return () => {\n queries.forEach(({ mq }) => mq.removeEventListener('change', updateScreen))\n }\n }, [theme.screens])\n return (\n <ScreenWidthContext.Provider\n value={{\n screens,\n screenActual,\n screenWidth\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n )\n}\n","import { useContext } from 'react'\n\nimport { ScreenWidthContext, ScreenWidthContextProps } from '.'\n\nexport const useScreenWidth = (): ScreenWidthContextProps => {\n const context = useContext(ScreenWidthContext)\n if (!context) {\n throw new Error('useScreenWidth must be used within an ProviderScreenWidth')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;AAKO,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAM,sBAAoD,CAAA,UAAS;AACxE,QAAM,QAAQ,SAAA;AACd,QAAM,CAAC,aAAa,cAAc,IAAI,SAAkB,SAAS;AAEjE,QAAM,UAA8C,QAAQ,MAAM;AAChE,UAAM,WAAW,OAAO,QAAQ,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;AAC5D,aAAO;AAAA,QACL,UAAU,gBAAgB;AAAA,QAC1B,OAAO;AAAA,MAAA;AAAA,IACT,CACD;AACD,WAAO;AAAA,EAAA,GACN,CAAC,aAAa,MAAM,OAAO,CAAC;AAE/B,QAAM,eAAwD,QAAQ,MAAM;AAC1E,UAAM,OAAO,QAAQ,KAAK,CAAA,SAAQ,KAAK,QAAQ;AAC/C,YAAO,6BAAM,UAAS;AAAA,EAAA,GACrB,CAAC,OAAO,CAAC;AAEZ,YAAU,MAAM;AACd,UAAM,gBAAgB,OAAO,QAAQ,MAAM,OAAO,EAC/C,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MACtB;AAAA,MACA,IAAK,MAA4B;AAAA,IAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AAE7B,UAAM,UAAU,cAAc,IAAI,CAAC,EAAE,KAAK,SAAS;AACjD,aAAO,EAAE,KAAK,IAAI,OAAO,WAAW,eAAe,EAAE,KAAK,EAAA;AAAA,IAAE,CAC7D;AACD,UAAM,eAAe,MAAM;AACzB,iBAAW,EAAE,KAAK,GAAA,KAAQ,SAAS;AACjC,YAAI,GAAG,SAAS;AACd,yBAAe,GAAG;AAClB;AAAA,QAAA;AAAA,MACF;AAGF,qBAAe,SAAS;AAAA,IAAA;AAG1B,YAAQ,QAAQ,CAAC,EAAE,GAAA,MAAS,GAAG,iBAAiB,UAAU,YAAY,CAAC;AACvE,iBAAA;AAEA,WAAO,MAAM;AACX,cAAQ,QAAQ,CAAC,EAAE,GAAA,MAAS,GAAG,oBAAoB,UAAU,YAAY,CAAC;AAAA,IAAA;AAAA,EAC5E,GACC,CAAC,MAAM,OAAO,CAAC;AAClB,SACEA,kCAAAA;AAAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAA,MAAM;AAAA,IAAA;AAAA,EAAA;AAGb;AC9DO,MAAM,iBAAiB,MAA+B;AAC3D,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,2DAA2D;AAAA,EAAA;AAE7E,SAAO;AACT;"}
1
+ {"version":3,"file":"context.hooks-BmwyZ1p3.js","sources":["../src/contexts/context-screen-width/context.tsx","../src/contexts/context-screen-width/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ProviderScreenWidthProps, ScreenWidthContextProps, Screens } from '.';\n\nexport const ScreenWidthContext = createContext<ScreenWidthContextProps | null>(null);\n\nexport const ProviderScreenWidth: FC<ProviderScreenWidthProps> = (props) => {\n const theme = useTheme();\n const [screenWidth, setScreenWidth] = useState<Screens>('default');\n\n const screens: ScreenWidthContextProps['screens'] = useMemo(() => {\n const allSizes = Object.entries(theme.screens).map(([key]) => {\n return {\n isScreen: screenWidth === key,\n value: key as Screens,\n };\n });\n return allSizes;\n }, [screenWidth, theme.screens]);\n\n const screenActual: ScreenWidthContextProps['screenActual'] = useMemo(() => {\n const find = screens.find((item) => item.isScreen);\n return find?.value ?? 'default';\n }, [screens]);\n\n useEffect(() => {\n const sortedScreens = Object.entries(theme.screens)\n .map(([key, value]) => ({\n key: key as Screens,\n bp: (value as { width: number }).width,\n }))\n .sort((a, b) => a.bp - b.bp);\n\n const queries = sortedScreens.map(({ key, bp }) => {\n return { key, mq: window.matchMedia(`(max-width: ${bp}px)`) };\n });\n const updateScreen = () => {\n for (const { key, mq } of queries) {\n if (mq.matches) {\n setScreenWidth(key);\n return;\n }\n }\n // На всякий случай fallback\n setScreenWidth('default');\n };\n\n queries.forEach(({ mq }) => mq.addEventListener('change', updateScreen));\n updateScreen();\n\n return () => {\n queries.forEach(({ mq }) => mq.removeEventListener('change', updateScreen));\n };\n }, [theme.screens]);\n return (\n <ScreenWidthContext.Provider\n value={{\n screens,\n screenActual,\n screenWidth,\n }}\n >\n {props.children}\n </ScreenWidthContext.Provider>\n );\n};\n","import { useContext } from 'react';\n\nimport { ScreenWidthContext, ScreenWidthContextProps } from '.';\n\nexport const useScreenWidth = (): ScreenWidthContextProps => {\n const context = useContext(ScreenWidthContext);\n if (!context) {\n throw new Error('useScreenWidth must be used within an ProviderScreenWidth');\n }\n return context;\n};\n"],"names":["jsx"],"mappings":";;;AAKO,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAM,sBAAoD,CAAC,UAAU;AAC1E,QAAM,QAAQ,SAAA;AACd,QAAM,CAAC,aAAa,cAAc,IAAI,SAAkB,SAAS;AAEjE,QAAM,UAA8C,QAAQ,MAAM;AAChE,UAAM,WAAW,OAAO,QAAQ,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;AAC5D,aAAO;AAAA,QACL,UAAU,gBAAgB;AAAA,QAC1B,OAAO;AAAA,MAAA;AAAA,IACT,CACD;AACD,WAAO;AAAA,EAAA,GACN,CAAC,aAAa,MAAM,OAAO,CAAC;AAE/B,QAAM,eAAwD,QAAQ,MAAM;AAC1E,UAAM,OAAO,QAAQ,KAAK,CAAC,SAAS,KAAK,QAAQ;AACjD,YAAO,6BAAM,UAAS;AAAA,EAAA,GACrB,CAAC,OAAO,CAAC;AAEZ,YAAU,MAAM;AACd,UAAM,gBAAgB,OAAO,QAAQ,MAAM,OAAO,EAC/C,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MACtB;AAAA,MACA,IAAK,MAA4B;AAAA,IAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AAE7B,UAAM,UAAU,cAAc,IAAI,CAAC,EAAE,KAAK,SAAS;AACjD,aAAO,EAAE,KAAK,IAAI,OAAO,WAAW,eAAe,EAAE,KAAK,EAAA;AAAA,IAAE,CAC7D;AACD,UAAM,eAAe,MAAM;AACzB,iBAAW,EAAE,KAAK,GAAA,KAAQ,SAAS;AACjC,YAAI,GAAG,SAAS;AACd,yBAAe,GAAG;AAClB;AAAA,QAAA;AAAA,MACF;AAGF,qBAAe,SAAS;AAAA,IAAA;AAG1B,YAAQ,QAAQ,CAAC,EAAE,GAAA,MAAS,GAAG,iBAAiB,UAAU,YAAY,CAAC;AACvE,iBAAA;AAEA,WAAO,MAAM;AACX,cAAQ,QAAQ,CAAC,EAAE,GAAA,MAAS,GAAG,oBAAoB,UAAU,YAAY,CAAC;AAAA,IAAA;AAAA,EAC5E,GACC,CAAC,MAAM,OAAO,CAAC;AAClB,SACEA,kCAAAA;AAAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAA,MAAM;AAAA,IAAA;AAAA,EAAA;AAGb;AC9DO,MAAM,iBAAiB,MAA+B;AAC3D,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,2DAA2D;AAAA,EAAA;AAE7E,SAAO;AACT;"}