@siberiacancode/reactuse 0.0.8 → 0.0.9

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 (165) hide show
  1. package/dist/cjs/{_rollupPluginBabelHelpers-Cva0m6Ep.js → _rollupPluginBabelHelpers-Db0KR1gW.js} +2 -2
  2. package/dist/cjs/_rollupPluginBabelHelpers-Db0KR1gW.js.map +1 -0
  3. package/dist/cjs/hooks/index.js +2 -2
  4. package/dist/cjs/hooks/useBattery/useBattery.js +2 -2
  5. package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
  6. package/dist/cjs/hooks/useClickOutside/useClickOutside.js +1 -1
  7. package/dist/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
  8. package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
  9. package/dist/cjs/hooks/useCounter/useCounter.js.map +1 -1
  10. package/dist/cjs/hooks/useDebouncedValue/useDebouncedValue.js +2 -2
  11. package/dist/cjs/hooks/useDebouncedValue/useDebouncedValue.js.map +1 -1
  12. package/dist/cjs/hooks/useDefault/useDefault.js +3 -0
  13. package/dist/cjs/hooks/useDefault/useDefault.js.map +1 -0
  14. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +3 -0
  15. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js.map +1 -0
  16. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  17. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  18. package/dist/cjs/hooks/useEventListener/useEventListener.js +1 -1
  19. package/dist/cjs/hooks/useEventListener/useEventListener.js.map +1 -1
  20. package/dist/cjs/hooks/useFavicon/useFavicon.js +3 -0
  21. package/dist/cjs/hooks/useFavicon/useFavicon.js.map +1 -0
  22. package/dist/cjs/hooks/useHash/useHash.js +3 -0
  23. package/dist/cjs/hooks/useHash/useHash.js.map +1 -0
  24. package/dist/cjs/hooks/useHover/useHover.js +2 -2
  25. package/dist/cjs/hooks/useHover/useHover.js.map +1 -1
  26. package/dist/cjs/hooks/useIdle/useIdle.js +3 -0
  27. package/dist/cjs/hooks/useIdle/useIdle.js.map +1 -0
  28. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +3 -0
  29. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js.map +1 -0
  30. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  31. package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
  32. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +1 -1
  33. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
  34. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
  35. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  36. package/dist/cjs/hooks/useLogger/useLogger.js +3 -0
  37. package/dist/cjs/hooks/useLogger/useLogger.js.map +1 -0
  38. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +3 -0
  39. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js.map +1 -0
  40. package/dist/cjs/hooks/useMount/useMount.js +1 -1
  41. package/dist/cjs/hooks/useMount/useMount.js.map +1 -1
  42. package/dist/cjs/hooks/useMutationObserver.js +1 -1
  43. package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
  44. package/dist/cjs/hooks/useNetwork/useNetwork.js.map +1 -1
  45. package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
  46. package/dist/cjs/hooks/useOnline/useOnline.js.map +1 -1
  47. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +3 -0
  48. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -0
  49. package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
  50. package/dist/cjs/hooks/useOrientation/useOrientation.js.map +1 -1
  51. package/dist/cjs/hooks/usePrevious/usePrevious.js +3 -0
  52. package/dist/cjs/hooks/usePrevious/usePrevious.js.map +1 -0
  53. package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
  54. package/dist/cjs/hooks/useRerender/useRerender.js +3 -0
  55. package/dist/cjs/hooks/useRerender/useRerender.js.map +1 -0
  56. package/dist/cjs/hooks/useScript/useScript.js +3 -0
  57. package/dist/cjs/hooks/useScript/useScript.js.map +1 -0
  58. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
  59. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js.map +1 -1
  60. package/dist/cjs/hooks/useSet/useSet.js +3 -0
  61. package/dist/cjs/hooks/useSet/useSet.js.map +1 -0
  62. package/dist/cjs/hooks/useStep/useStep.js +2 -2
  63. package/dist/cjs/hooks/useStep/useStep.js.map +1 -1
  64. package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
  65. package/dist/cjs/hooks/useStorage/useStorage.js.map +1 -1
  66. package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
  67. package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
  68. package/dist/cjs/hooks/useToggle/useToggle.js.map +1 -1
  69. package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
  70. package/dist/cjs/hooks/useUnmount/useUnmount.js.map +1 -1
  71. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +1 -1
  72. package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
  73. package/dist/cjs/index.js +2 -2
  74. package/dist/cjs/utils/helpers/debounce.js +1 -1
  75. package/dist/cjs/utils/helpers/index.js +2 -2
  76. package/dist/cjs/utils/helpers/isClient.js +1 -1
  77. package/dist/cjs/utils/helpers/isShallowEqual.js +1 -1
  78. package/dist/cjs/utils/helpers/throttle.js +3 -0
  79. package/dist/cjs/utils/helpers/throttle.js.map +1 -0
  80. package/dist/esm/{_rollupPluginBabelHelpers-8YyPIzj_.js → _rollupPluginBabelHelpers-Cg3Jntln.js} +2 -2
  81. package/dist/esm/_rollupPluginBabelHelpers-Cg3Jntln.js.map +1 -0
  82. package/dist/esm/hooks/index.js +2 -2
  83. package/dist/esm/hooks/useBattery/useBattery.js +2 -2
  84. package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
  85. package/dist/esm/hooks/useClickOutside/useClickOutside.js +1 -1
  86. package/dist/esm/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
  87. package/dist/esm/hooks/useCounter/useCounter.js +2 -2
  88. package/dist/esm/hooks/useCounter/useCounter.js.map +1 -1
  89. package/dist/esm/hooks/useDebouncedValue/useDebouncedValue.js +2 -2
  90. package/dist/esm/hooks/useDebouncedValue/useDebouncedValue.js.map +1 -1
  91. package/dist/esm/hooks/useDefault/useDefault.js +3 -0
  92. package/dist/esm/hooks/useDefault/useDefault.js.map +1 -0
  93. package/dist/esm/hooks/{useNonInitialEffect/useNonInitialEffect.js → useDidUpdate/useDidUpdate.js} +3 -3
  94. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js.map +1 -0
  95. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  96. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  97. package/dist/esm/hooks/useEventListener/useEventListener.js +1 -1
  98. package/dist/esm/hooks/useEventListener/useEventListener.js.map +1 -1
  99. package/dist/esm/hooks/useFavicon/useFavicon.js +3 -0
  100. package/dist/esm/hooks/useFavicon/useFavicon.js.map +1 -0
  101. package/dist/esm/hooks/useHash/useHash.js +3 -0
  102. package/dist/esm/hooks/useHash/useHash.js.map +1 -0
  103. package/dist/esm/hooks/useHover/useHover.js +2 -2
  104. package/dist/esm/hooks/useHover/useHover.js.map +1 -1
  105. package/dist/esm/hooks/useIdle/useIdle.js +3 -0
  106. package/dist/esm/hooks/useIdle/useIdle.js.map +1 -0
  107. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +3 -0
  108. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js.map +1 -0
  109. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  110. package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
  111. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +1 -1
  112. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
  113. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
  114. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  115. package/dist/esm/hooks/useLogger/useLogger.js +3 -0
  116. package/dist/esm/hooks/useLogger/useLogger.js.map +1 -0
  117. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +3 -0
  118. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -0
  119. package/dist/esm/hooks/useMount/useMount.js +1 -1
  120. package/dist/esm/hooks/useMount/useMount.js.map +1 -1
  121. package/dist/esm/hooks/useMutationObserver.js +1 -1
  122. package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
  123. package/dist/esm/hooks/useNetwork/useNetwork.js.map +1 -1
  124. package/dist/esm/hooks/useOnline/useOnline.js +1 -1
  125. package/dist/esm/hooks/useOnline/useOnline.js.map +1 -1
  126. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +3 -0
  127. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -0
  128. package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
  129. package/dist/esm/hooks/useOrientation/useOrientation.js.map +1 -1
  130. package/dist/esm/hooks/usePrevious/usePrevious.js +3 -0
  131. package/dist/esm/hooks/usePrevious/usePrevious.js.map +1 -0
  132. package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
  133. package/dist/esm/hooks/useRerender/useRerender.js +3 -0
  134. package/dist/esm/hooks/useRerender/useRerender.js.map +1 -0
  135. package/dist/esm/hooks/useScript/useScript.js +3 -0
  136. package/dist/esm/hooks/useScript/useScript.js.map +1 -0
  137. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
  138. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js.map +1 -1
  139. package/dist/esm/hooks/useSet/useSet.js +3 -0
  140. package/dist/esm/hooks/useSet/useSet.js.map +1 -0
  141. package/dist/esm/hooks/useStep/useStep.js +2 -2
  142. package/dist/esm/hooks/useStep/useStep.js.map +1 -1
  143. package/dist/esm/hooks/useStorage/useStorage.js +2 -2
  144. package/dist/esm/hooks/useStorage/useStorage.js.map +1 -1
  145. package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
  146. package/dist/esm/hooks/useToggle/useToggle.js +2 -2
  147. package/dist/esm/hooks/useToggle/useToggle.js.map +1 -1
  148. package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
  149. package/dist/esm/hooks/useUnmount/useUnmount.js.map +1 -1
  150. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +1 -1
  151. package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
  152. package/dist/esm/index.js +2 -2
  153. package/dist/esm/utils/helpers/debounce.js +1 -1
  154. package/dist/esm/utils/helpers/index.js +2 -2
  155. package/dist/esm/utils/helpers/isClient.js +1 -1
  156. package/dist/esm/utils/helpers/isShallowEqual.js +1 -1
  157. package/dist/esm/utils/helpers/throttle.js +3 -0
  158. package/dist/esm/utils/helpers/throttle.js.map +1 -0
  159. package/dist/index.d.ts +252 -29
  160. package/package.json +1 -1
  161. package/dist/cjs/_rollupPluginBabelHelpers-Cva0m6Ep.js.map +0 -1
  162. package/dist/cjs/hooks/useNonInitialEffect/useNonInitialEffect.js +0 -3
  163. package/dist/cjs/hooks/useNonInitialEffect/useNonInitialEffect.js.map +0 -1
  164. package/dist/esm/_rollupPluginBabelHelpers-8YyPIzj_.js.map +0 -1
  165. package/dist/esm/hooks/useNonInitialEffect/useNonInitialEffect.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import React from 'react';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\nexport interface UseHoverOptions {\n onEntry?: () => void;\n onLeave?: () => void;\n}\n\nexport type UseHoverTarget = React.RefObject<Element | null> | Element;\nexport type UseHoverReturn<Target extends UseHoverTarget = any> = [\n React.RefObject<Target>,\n boolean\n];\n\nexport type UseHover = {\n <Target extends UseHoverTarget>(target: Target, callback?: () => void): boolean;\n\n <Target extends UseHoverTarget>(target: Target, options?: UseHoverOptions): boolean;\n\n <Target extends UseHoverTarget>(callback?: () => void, target?: never): UseHoverReturn<Target>;\n\n <Target extends UseHoverTarget>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn<Target>;\n};\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @example\n * const [ref, hovering] = useHover({\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n *\n * @example\n * const hovering = useHover(ref, {\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n */\nexport const useHover = ((...params: any[]) => {\n const target = (params[0] instanceof Function || !('current' in params[0]) ? null : params[0]) as\n | UseHoverTarget\n | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = React.useState(false);\n const internalRef = React.useRef<Element>(null);\n\n const onMouseEnter = () => {\n options?.onEntry?.();\n setHovering(true);\n };\n const onMouseLeave = () => {\n options?.onLeave?.();\n setHovering(false);\n };\n\n useEventListener(target ?? internalRef, 'mouseenter', onMouseEnter);\n useEventListener(target ?? internalRef, 'mouseleave', onMouseLeave);\n\n if (target) return hovering;\n return [internalRef, hovering] as const;\n}) as UseHover;\n"],"names":["useHover","target","arguments","length","undefined","Function","options","_typeof","onEntry","_React$useState","React","useState","_React$useState2","_slicedToArray","hovering","setHovering","internalRef","useRef","useEventListener","_options$onEntry","call","_options$onLeave","onLeave"],"mappings":";2KAkDaA,EAAY,WACvB,IAAMC,GAAUC,UAAAC,QAAA,OAAAC,EAAAF,UAAqBG,cAAAA,YAAc,YAASH,UAAAC,eAAAC,EAAAF,UAAA,KAAiB,KAAIA,UAAAC,QAAA,OAAAC,EAAAF,UAEpE,GAEPI,EACJL,EACyB,WAArBM,EAAAL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAA6BA,UAAAC,QAAAC,OAAAA,EAAAF,UAE3B,GAAA,CAAEM,QAAON,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IACU,WAArBK,EAAAL,UAAAC,QAAA,OAAAC,EAAAF,cAA6BA,UAAAC,eAAAC,EAAAF,UAE3B,GAAA,CAAEM,QAAON,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAGjBO,EAAgCC,EAAMC,UAAS,GAAMC,EAAAC,EAAAJ,EAAA,GAA9CK,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAAcN,EAAMO,OAAgB,MAc1C,OAHAC,EAAiBjB,QAAAA,EAAUe,EAAa,cATnB,WAAM,IAAAG,EACzBb,SAAgBa,QAATA,EAAPb,EAASE,mBAAOW,GAAhBA,EAAAC,KAAAd,GACAS,GAAY,MAQdG,EAAiBjB,QAAAA,EAAUe,EAAa,cANnB,WAAM,IAAAK,EACzBf,SAAgBe,QAATA,EAAPf,EAASgB,mBAAOD,GAAhBA,EAAAD,KAAAd,GACAS,GAAY,MAMVd,EAAea,EACZ,CAACE,EAAaF,EACvB"}
1
+ {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import React from 'react';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n//* The use hover options type */\nexport interface UseHoverOptions {\n //* The on entry callback */\n onEntry?: () => void;\n //* The on leave callback */\n onLeave?: () => void;\n}\n\n//* The use hover target type */\nexport type UseHoverTarget = React.RefObject<Element | null> | Element;\n//* The use hover return type */\nexport type UseHoverReturn<Target extends UseHoverTarget = any> = [\n React.RefObject<Target>,\n boolean\n];\n\nexport type UseHover = {\n <Target extends UseHoverTarget>(target: Target, callback?: () => void): boolean;\n\n <Target extends UseHoverTarget>(target: Target, options?: UseHoverOptions): boolean;\n\n <Target extends UseHoverTarget>(callback?: () => void, target?: never): UseHoverReturn<Target>;\n\n <Target extends UseHoverTarget>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn<Target>;\n};\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @example\n * const [ref, hovering] = useHover({\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n *\n * @example\n * const hovering = useHover(ref, {\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n */\nexport const useHover = ((...params: any[]) => {\n const target = (params[0] instanceof Function || !('current' in params[0]) ? null : params[0]) as\n | UseHoverTarget\n | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = React.useState(false);\n const internalRef = React.useRef<Element>(null);\n\n const onMouseEnter = () => {\n options?.onEntry?.();\n setHovering(true);\n };\n const onMouseLeave = () => {\n options?.onLeave?.();\n setHovering(false);\n };\n\n useEventListener(target ?? internalRef, 'mouseenter', onMouseEnter);\n useEventListener(target ?? internalRef, 'mouseleave', onMouseLeave);\n\n if (target) return hovering;\n return [internalRef, hovering] as const;\n}) as UseHover;\n"],"names":["useHover","target","arguments","length","undefined","Function","options","_typeof","onEntry","_React$useState","React","useState","_React$useState2","_slicedToArray","hovering","setHovering","internalRef","useRef","useEventListener","_options$onEntry","call","_options$onLeave","onLeave"],"mappings":";2KAuDaA,EAAY,WACvB,IAAMC,GAAUC,UAAAC,QAAA,OAAAC,EAAAF,UAAqBG,cAAAA,YAAc,YAASH,UAAAC,eAAAC,EAAAF,UAAA,KAAiB,KAAIA,UAAAC,QAAA,OAAAC,EAAAF,UAEpE,GAEPI,EACJL,EACyB,WAArBM,EAAAL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAA6BA,UAAAC,QAAAC,OAAAA,EAAAF,UAE3B,GAAA,CAAEM,QAAON,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IACU,WAArBK,EAAAL,UAAAC,QAAA,OAAAC,EAAAF,cAA6BA,UAAAC,eAAAC,EAAAF,UAE3B,GAAA,CAAEM,QAAON,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAGjBO,EAAgCC,EAAMC,UAAS,GAAMC,EAAAC,EAAAJ,EAAA,GAA9CK,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAAcN,EAAMO,OAAgB,MAc1C,OAHAC,EAAiBjB,QAAAA,EAAUe,EAAa,cATnB,WAAM,IAAAG,EACzBb,SAAgBa,QAATA,EAAPb,EAASE,mBAAOW,GAAhBA,EAAAC,KAAAd,GACAS,GAAY,MAQdG,EAAiBjB,QAAAA,EAAUe,EAAa,cANnB,WAAM,IAAAK,EACzBf,SAAgBe,QAATA,EAAPf,EAASgB,mBAAOD,GAAhBA,EAAAD,KAAAd,GACAS,GAAY,MAMVd,EAAea,EACZ,CAACE,EAAaF,EACvB"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import t from"react";import"../../utils/helpers/isClient.js";import{throttle as n}from"../../utils/helpers/throttle.js";var i=["mousemove","mousedown","keydown","touchstart","wheel","resize"],o=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=r.initialState,s=void 0!==u&&u,a=r.events,d=void 0===a?i:a,c=t.useState(s),l=e(c,2),m=l[0],v=l[1],f=t.useState(Date.now()),w=e(f,2),h=w[0],p=w[1];return t.useEffect((function(){var e,t=function(){return v(!0)},i=n((function(){v(!1),p(Date.now()),window.clearTimeout(e),e=setTimeout(t,o)}),500),r=function(){document.hidden||i()};return e=setTimeout(t,o),d.forEach((function(e){return window.addEventListener(e,i)})),document.addEventListener("visibilitychange",r),function(){d.forEach((function(e){return window.addEventListener(e,i)})),document.removeEventListener("visibilitychange",r),window.clearTimeout(e)}}),[o,d]),{idle:m,lastActive:h}};export{o as useIdle};
3
+ //# sourceMappingURL=useIdle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIdle.js","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import React from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\ninterface UseIdleOptions {\n initialState?: boolean;\n events?: Array<keyof WindowEventMap>;\n}\n\nconst IDLE_EVENTS = [\n 'mousemove',\n 'mousedown',\n 'keydown',\n 'touchstart',\n 'wheel',\n 'resize'\n] satisfies Array<keyof WindowEventMap>;\nconst ONE_MINUTE = 60e3;\n\n//* The use idle return type */\nexport interface UseIdleReturn {\n //* The idle state */\n idle: boolean;\n //* The last active time */\n lastActive: number;\n}\n\n/**\n * @name useIdle\n * @description - Hook that defines the logic when the user is idle\n *\n * @param {number} [milliseconds=ONE_MINUTE] The idle time in milliseconds\n * @param {boolean} [options.initialState=false] The options for the hook\n * @param {Array<keyof WindowEventMap>} [options.events=IDLE_EVENTS]\n * @returns {UseIdleReturn} An object containing the idle state and the last active time\n *\n * @example\n * const { idle, lastActive } = useIdle();\n */\nexport const useIdle = (\n milliseconds = ONE_MINUTE,\n { initialState = false, events = IDLE_EVENTS }: UseIdleOptions = {}\n): UseIdleReturn => {\n const [idle, setIdle] = React.useState(initialState);\n const [lastActive, setLastActive] = React.useState(Date.now());\n\n React.useEffect(() => {\n let timeoutId: ReturnType<typeof setTimeout>;\n const onTimeout = () => setIdle(true);\n\n const onEvent = throttle(() => {\n setIdle(false);\n setLastActive(Date.now());\n window.clearTimeout(timeoutId);\n timeoutId = setTimeout(onTimeout, milliseconds);\n }, 500);\n\n const onVisibilitychange = () => {\n if (!document.hidden) onEvent();\n };\n\n timeoutId = setTimeout(onTimeout, milliseconds);\n\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.addEventListener('visibilitychange', onVisibilitychange);\n\n return () => {\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.removeEventListener('visibilitychange', onVisibilitychange);\n window.clearTimeout(timeoutId);\n };\n }, [milliseconds, events]);\n\n return { idle, lastActive };\n};\n"],"names":["IDLE_EVENTS","useIdle","milliseconds","arguments","length","undefined","_ref","_ref$initialState","initialState","_ref$events","events","_React$useState","React","useState","_React$useState2","_slicedToArray","idle","setIdle","_React$useState3","Date","now","_React$useState4","lastActive","setLastActive","useEffect","timeoutId","onTimeout","onEvent","throttle","window","clearTimeout","setTimeout","onVisibilitychange","document","hidden","forEach","event","addEventListener","removeEventListener"],"mappings":";wLASA,IAAMA,EAAc,CAClB,YACA,YACA,UACA,aACA,QACA,UAwBWC,EAAU,WAGH,IAFlBC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAvBK,IAuBQG,EAAAH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GACwC,CAAE,EAAAI,EAAAD,EAAjEE,aAAAA,OAAe,IAAHD,GAAQA,EAAAE,EAAAH,EAAEI,OAAAA,OAASV,IAAHS,EAAGT,EAAWS,EAE5CE,EAAwBC,EAAMC,SAASL,GAAaM,EAAAC,EAAAJ,EAAA,GAA7CK,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpBI,EAAoCN,EAAMC,SAASM,KAAKC,OAAMC,EAAAN,EAAAG,EAAA,GAAvDI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GA6BhC,OA3BAT,EAAMY,WAAU,WACd,IAAIC,EACEC,EAAY,WAAH,OAAST,GAAQ,EAAK,EAE/BU,EAAUC,GAAS,WACvBX,GAAQ,GACRM,EAAcJ,KAAKC,OACnBS,OAAOC,aAAaL,GACpBA,EAAYM,WAAWL,EAAWxB,EACnC,GAAE,KAEG8B,EAAqB,WACpBC,SAASC,QAAQP,KAQxB,OALAF,EAAYM,WAAWL,EAAWxB,GAElCQ,EAAOyB,SAAQ,SAACC,GAAK,OAAKP,OAAOQ,iBAAiBD,EAAOT,MACzDM,SAASI,iBAAiB,mBAAoBL,GAEvC,WACLtB,EAAOyB,SAAQ,SAACC,GAAK,OAAKP,OAAOQ,iBAAiBD,EAAOT,MACzDM,SAASK,oBAAoB,mBAAoBN,GACjDH,OAAOC,aAAaL,GAExB,GAAG,CAACvB,EAAcQ,IAEX,CAAEM,KAAAA,EAAMM,WAAAA,EACjB"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import r from"react";var e=function(){var e=r.useRef(!0);return!0===e.current?(e.current=!1,!0):e.current};export{e as useIsFirstRender};
3
+ //# sourceMappingURL=useIsFirstRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsFirstRender.js","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n *\n * @returns {boolean} True if the component is first render\n *\n * @example\n * const isFirstRender = useIsFirstRender();\n */\nexport const useIsFirstRender = () => {\n const renderRef = React.useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n};\n"],"names":["useIsFirstRender","renderRef","React","useRef","current"],"mappings":";yBAWaA,EAAmB,WAC9B,IAAMC,EAAYC,EAAMC,QAAO,GAE/B,OAA0B,IAAtBF,EAAUG,SACZH,EAAUG,SAAU,GACb,GAGFH,EAAUG,OACnB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import e from"react";import{isClient as t}from"../../utils/helpers/isClient.js";var r=t?e.useLayoutEffect:e.useEffect;export{r as useIsomorphicLayoutEffect};
3
3
  //# sourceMappingURL=useIsomorphicLayoutEffect.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import r from"react";import{useEventListener as n}from"../useEventListener/useEventListener.js";var i=function(i,t){var o,u,l=r.useState(!1),s=e(l,2),a=s[0],y=s[1];return n(null!==(o=null==t?void 0:t.target)&&void 0!==o?o:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&y(!0)})),n(null!==(u=null==t?void 0:t.target)&&void 0!==u?u:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&y(!1)})),a};export{i as useKeyPress};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import r from"react";import{useEventListener as n}from"../useEventListener/useEventListener.js";var i=function(i,t){var o,u,l=r.useState(!1),s=e(l,2),a=s[0],y=s[1];return n(null!==(o=null==t?void 0:t.target)&&void 0!==o?o:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&y(!0)})),n(null!==(u=null==t?void 0:t.target)&&void 0!==u?u:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&y(!1)})),a};export{i as useKeyPress};
3
3
  //# sourceMappingURL=useKeyPress.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import{useEventListener as n}from"../useEventListener/useEventListener.js";import"react";var e=function(){var e=Array.isArray(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:[arguments.length<=0?void 0:arguments[0]],t=(arguments.length<=1?void 0:arguments[1])instanceof Function?null:arguments.length<=1?void 0:arguments[1],i=t?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1];n(null!=t?t:window,"keydown",(function(n){e.includes(n.key)&&i(n)}),t?arguments.length<=3?void 0:arguments[3]:arguments.length<=2?void 0:arguments[2])};export{e as useKeyPressEvent};
3
3
  //# sourceMappingURL=useKeyPressEvent.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as e,c as n}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import o from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";var r=function(r){var u,i,c,l=null===(u=null==r?void 0:r.enabled)||void 0===u||u,d=o.useState([]),f=e(d,2),s=f[0],a=f[1];return o.useEffect((function(){a([])}),[l]),t(null!==(i=null==r?void 0:r.target)&&void 0!==i?i:window,"keydown",(function(e){l&&a((function(o){return o.some((function(n){return n.code===e.code}))?o:[].concat(n(o),[{key:e.key,code:e.code}])}))})),t(null!==(c=null==r?void 0:r.target)&&void 0!==c?c:window,"keyup",(function(e){l&&a((function(n){return n.filter((function(n){return n.code!==e.code}))}))})),s};export{r as useKeysPressed};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e,c as n}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import o from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";var r=function(r){var u,i,c,l=null===(u=null==r?void 0:r.enabled)||void 0===u||u,d=o.useState([]),f=e(d,2),s=f[0],a=f[1];return o.useEffect((function(){a([])}),[l]),t(null!==(i=null==r?void 0:r.target)&&void 0!==i?i:window,"keydown",(function(e){l&&a((function(o){return o.some((function(n){return n.code===e.code}))?o:[].concat(n(o),[{key:e.key,code:e.code}])}))})),t(null!==(c=null==r?void 0:r.target)&&void 0!==c?c:window,"keyup",(function(e){l&&a((function(n){return n.filter((function(n){return n.code!==e.code}))}))})),s};export{r as useKeysPressed};
3
3
  //# sourceMappingURL=useKeysPressed.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{b as r}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import{useStorage as o}from"../useStorage/useStorage.js";import"react";var e=function(e,t,a){return o(e,r({initialValue:t,storage:window.localStorage},a))};export{e as useLocalStorage};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{b as o}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import{useStorage as r}from"../useStorage/useStorage.js";import"react";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var e=function(e,t,i){return r(e,o({initialValue:t,storage:window.localStorage},i))};export{e as useLocalStorage};
3
3
  //# sourceMappingURL=useLocalStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.js","sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\nimport { useStorage } from '../useStorage/useStorage';\n\nexport const useLocalStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: UseStorageOptions<Value>\n) => useStorage(key, { initialValue, storage: window.localStorage, ...options });\n"],"names":["useLocalStorage","key","initialValue","options","useStorage","_objectSpread","storage","window","localStorage"],"mappings":";uIAGO,IAAMA,EAAkB,SAC7BC,EACAC,EACAC,GAAkC,OAC/BC,EAAWH,EAAGI,EAAA,CAAIH,aAAAA,EAAcI,QAASC,OAAOC,cAAiBL,GAAU"}
1
+ {"version":3,"file":"useLocalStorage.js","sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\nimport { useStorage } from '../useStorage/useStorage';\n\n/**\n * @name useLocalStorage\n * @description - Hook that manages local storage value\n *\n * @template Value The type of the value\n * @param {string} key The key of the storage\n * @param {UseStorageInitialValue<Value>} [initialValue] The initial value of the storage\n * @param {UseStorageOptions<Value>} [options] The options of the storage\n *\n * @example\n * const [value, setValue, removeValue] = useLocalStorage('key', 'value');\n */\nexport const useLocalStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: UseStorageOptions<Value>\n) => useStorage(key, { initialValue, storage: window.localStorage, ...options });\n"],"names":["useLocalStorage","key","initialValue","options","useStorage","_objectSpread","storage","window","localStorage"],"mappings":";iPAeO,IAAMA,EAAkB,SAC7BC,EACAC,EACAC,GAAkC,OAC/BC,EAAWH,EAAGI,EAAA,CAAIH,aAAAA,EAAcI,QAASC,OAAOC,cAAiBL,GAAU"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{c as o}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import t from"react";import{useDidUpdate as e}from"../useDidUpdate/useDidUpdate.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var c=function(c,n){t.useEffect((function(){var t;return(t=console).log.apply(t,["".concat(c," mounted")].concat(o(n))),function(){return console.log("".concat(c," unmounted"))}}),[]),e((function(){var t;(t=console).log.apply(t,["".concat(c," updated")].concat(o(n)))}),n)};export{c as useLogger};
3
+ //# sourceMappingURL=useLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogger.js","sources":["../../../../src/hooks/useLogger/useLogger.ts"],"sourcesContent":["import React from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/**\n * @name useLogger\n * @description - Hook for debugging lifecycle\n *\n * @param {string} name The name or identifier for the logger\n * @param {unknown[]} params Additional arguments to be logged\n *\n * @example\n * useLogger('Component', [1, 2, 3]);\n */\nexport const useLogger = (name: string, params: unknown[]) => {\n React.useEffect(() => {\n console.log(`${name} mounted`, ...params);\n return () => console.log(`${name} unmounted`);\n }, []);\n\n useDidUpdate(() => {\n console.log(`${name} updated`, ...params);\n }, params);\n};\n"],"names":["useLogger","name","params","React","useEffect","_console","console","log","apply","concat","_toConsumableArray","useDidUpdate","_console2"],"mappings":";8PAcO,IAAMA,EAAY,SAACC,EAAcC,GACtCC,EAAMC,WAAU,WAAM,IAAAC,EAEpB,OADAA,EAAAC,SAAQC,IAAGC,MAAAH,MAAAI,OAAIR,EAAIQ,aAAAA,OAAAC,EAAeR,KAC3B,WAAA,OAAMI,QAAQC,IAAG,GAAAE,OAAIR,gBAAiB,CAC9C,GAAE,IAEHU,GAAa,WAAM,IAAAC,GACjBA,EAAAN,SAAQC,IAAGC,MAAAI,MAAAH,OAAIR,EAAIQ,aAAAA,OAAAC,EAAeR,IACnC,GAAEA,EACL"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import n from"react";var e=function(){return!1},t=function(t){var r=n.useCallback((function(n){var e=window.matchMedia(t);return e.addEventListener("change",n),function(){e.removeEventListener("change",n)}}),[t]);return n.useSyncExternalStore(r,(function(){return window.matchMedia(t).matches}),e)};export{t as useMediaQuery};
3
+ //# sourceMappingURL=useMediaQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMediaQuery.js","sources":["../../../../src/hooks/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import React from 'react';\n\nconst getServerSnapshot = () => false;\n\n/**\n * @name useMediaQuery\n * @description - Hook that manages a media query\n *\n * @param {string} query The media query string\n * @returns {boolean} A boolean indicating if the media query matches\n *\n * @example\n * const matches = useMediaQuery('(max-width: 768px)');\n */\nexport const useMediaQuery = (query: string) => {\n const subscribe = React.useCallback(\n (callback: () => void) => {\n const matchMedia = window.matchMedia(query);\n\n matchMedia.addEventListener('change', callback);\n return () => {\n matchMedia.removeEventListener('change', callback);\n };\n },\n [query]\n );\n\n const getSnapshot = () => window.matchMedia(query).matches;\n\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n};\n"],"names":["getServerSnapshot","useMediaQuery","query","subscribe","React","useCallback","callback","matchMedia","window","addEventListener","removeEventListener","useSyncExternalStore","matches"],"mappings":";qBAEA,IAAMA,EAAoB,WAAH,OAAS,CAAK,EAYxBC,EAAgB,SAACC,GAC5B,IAAMC,EAAYC,EAAMC,aACtB,SAACC,GACC,IAAMC,EAAaC,OAAOD,WAAWL,GAGrC,OADAK,EAAWE,iBAAiB,SAAUH,GAC/B,WACLC,EAAWG,oBAAoB,SAAUJ,GAE7C,GACA,CAACJ,IAKH,OAAOE,EAAMO,qBAAqBR,GAFd,WAAH,OAASK,OAAOD,WAAWL,GAAOU,OAAO,GAEAZ,EAC5D"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import r from"react";var t=function(t){return r.useEffect(t,[])};export{t as useMount};
3
3
  //# sourceMappingURL=useMount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMount.js","sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import React from 'react';\n\nexport const useMount = (effect: React.EffectCallback) => React.useEffect(effect, []);\n"],"names":["useMount","effect","React","useEffect"],"mappings":";yBAEaA,EAAW,SAACC,GAA4B,OAAKC,EAAMC,UAAUF,EAAQ,GAAG"}
1
+ {"version":3,"file":"useMount.js","sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * @name useMount\n * @description - Hook that executes a callback when the component mounts\n *\n * @param {React.EffectCallback} effect The callback to execute\n *\n * @example\n * useMount(() => console.log('This effect runs on the initial render'));\n */\nexport const useMount = (effect: React.EffectCallback) => React.useEffect(effect, []);\n"],"names":["useMount","effect","React","useEffect"],"mappings":";yBAWaA,EAAW,SAACC,GAA4B,OAAKC,EAAMC,UAAUF,EAAQ,GAAG"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import r from"react";function e(e,n,t){var u=r.useRef(),c=r.useRef(null);return r.useEffect((function(){var r="function"==typeof t?t():t;return(r||c.current)&&(u.current=new MutationObserver(e),u.current.observe(r||c.current,n)),function(){var r;null===(r=u.current)||void 0===r||r.disconnect()}}),[e,n]),c}export{e as useMutationObserver};
3
3
  //# sourceMappingURL=useMutationObserver.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import n from"react";import"../../utils/helpers/isClient.js";import{isShallowEqual as e}from"../../utils/helpers/isShallowEqual.js";var i=function(){var n,e,i;return(null===(n=navigator)||void 0===n?void 0:n.connection)||(null===(e=navigator)||void 0===e?void 0:e.mozConnection)||(null===(i=navigator)||void 0===i?void 0:i.webkitConnection)},o=function(n){window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});var e=i();return e&&e.addEventListener("change",n,{passive:!0}),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}},t=function(){throw Error("useNetwork is a client side hook")},r=function(){var r=n.useRef();return n.useSyncExternalStore(o,(function(){var n=navigator.onLine,o=i(),t={online:n,downlink:null==o?void 0:o.downlink,downlinkMax:null==o?void 0:o.downlinkMax,effectiveType:null==o?void 0:o.effectiveType,rtt:null==o?void 0:o.rtt,saveData:null==o?void 0:o.saveData,type:null==o?void 0:o.type};return r.current&&e(r.current,t)?r.current:(r.current=t,t)}),t)};export{i as getConnection,r as useNetwork};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import n from"react";import"../../utils/helpers/isClient.js";import{isShallowEqual as e}from"../../utils/helpers/isShallowEqual.js";var i=function(){var n,e,i;return(null===(n=navigator)||void 0===n?void 0:n.connection)||(null===(e=navigator)||void 0===e?void 0:e.mozConnection)||(null===(i=navigator)||void 0===i?void 0:i.webkitConnection)},t=function(n){window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});var e=i();return e&&e.addEventListener("change",n,{passive:!0}),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}},o=function(){return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0}},r=function(){var r=n.useRef();return n.useSyncExternalStore(t,(function(){var n=navigator.onLine,t=i(),o={online:n,downlink:null==t?void 0:t.downlink,downlinkMax:null==t?void 0:t.downlinkMax,effectiveType:null==t?void 0:t.effectiveType,rtt:null==t?void 0:t.rtt,saveData:null==t?void 0:t.saveData,type:null==t?void 0:t.type};return r.current&&e(r.current,o)?r.current:(r.current=o,o)}),o)};export{i as getConnection,r as useNetwork};
3
3
  //# sourceMappingURL=useNetwork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNetwork.js","sources":["../../../../src/hooks/useNetwork/useNetwork.ts"],"sourcesContent":["import React from 'react';\n\nimport { isShallowEqual } from '@/utils/helpers';\n\nexport type ConnectionType = Connection['type'];\nexport type ConnectionEffectiveType = Connection['effectiveType'];\n\n/** The use network return type */\nexport interface UseNetworkReturn {\n /** Indicates if the device is currently online */\n online: boolean;\n /** The estimated downlink speed in megabits per seconds */\n downlink?: Connection['downlink'];\n /** The maximum downlink speed, if available */\n downlinkMax?: Connection['downlinkMax'];\n /** The effective type of connection (e.g., '2g', '3g', '4g') */\n effectiveType?: Connection['effectiveType'];\n /** The estimated round-trip time in milliseconds */\n rtt?: Connection['rtt'];\n /** Indicates if the user has enabled data saving mode */\n saveData?: Connection['saveData'];\n /** The type of network connection (e.g., 'wifi', 'cellular') */\n type?: Connection['type'];\n}\n\nexport const getConnection = () =>\n navigator?.connection || navigator?.mozConnection || navigator?.webkitConnection;\n\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback, { passive: true });\n window.addEventListener('offline', callback, { passive: true });\n\n const connection = getConnection();\n\n if (connection) {\n connection.addEventListener('change', callback, { passive: true });\n }\n\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n\n if (connection) {\n connection.removeEventListener('change', callback);\n }\n };\n};\n\nconst getServerSnapshot = () => {\n throw Error('useNetwork is a client side hook');\n};\n\n/**\n * @name useNetwork\n * @description - Hook to track network status.\n *\n * @returns {UseNetworkReturn} An object containing the network status.\n *\n * @example\n * const { online, downlink, downlinkMax, effectiveType, rtt, saveData, type } = useNetwork();\n */\nexport const useNetwork = (): UseNetworkReturn => {\n const cache = React.useRef<UseNetworkReturn>();\n\n const getSnapshot = () => {\n const online = navigator.onLine;\n const connection = getConnection();\n\n const nextState = {\n online,\n downlink: connection?.downlink,\n downlinkMax: connection?.downlinkMax,\n effectiveType: connection?.effectiveType,\n rtt: connection?.rtt,\n saveData: connection?.saveData,\n type: connection?.type\n };\n\n if (cache.current && isShallowEqual(cache.current as any, nextState)) {\n return cache.current;\n }\n\n cache.current = nextState;\n return nextState;\n };\n\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n};\n"],"names":["getConnection","_navigator","_navigator2","_navigator3","navigator","connection","mozConnection","webkitConnection","subscribe","callback","window","addEventListener","passive","removeEventListener","getServerSnapshot","Error","useNetwork","cache","React","useRef","useSyncExternalStore","online","onLine","nextState","downlink","downlinkMax","effectiveType","rtt","saveData","type","current","isShallowEqual"],"mappings":";oIAyBaA,IAAAA,EAAgB,WAAH,IAAAC,EAAAC,EAAAC,EAAA,OACfF,QAATA,EAAAG,iBAAAH,IAASA,OAATA,EAAAA,EAAWI,cAAuBH,QAAbA,EAAIE,iBAAAF,IAASA,OAATA,EAAAA,EAAWI,iBAA0BH,QAAbA,EAAIC,iBAAAD,IAASA,OAATA,EAAAA,EAAWI,iBAAgB,EAE5EC,EAAY,SAACC,GACjBC,OAAOC,iBAAiB,SAAUF,EAAU,CAAEG,SAAS,IACvDF,OAAOC,iBAAiB,UAAWF,EAAU,CAAEG,SAAS,IAExD,IAAMP,EAAaL,IAMnB,OAJIK,GACFA,EAAWM,iBAAiB,SAAUF,EAAU,CAAEG,SAAS,IAGtD,WACLF,OAAOG,oBAAoB,SAAUJ,GACrCC,OAAOG,oBAAoB,UAAWJ,GAElCJ,GACFA,EAAWQ,oBAAoB,SAAUJ,GAG/C,EAEMK,EAAoB,WACxB,MAAMC,MAAM,mCACd,EAWaC,EAAa,WACxB,IAAMC,EAAQC,EAAMC,SAwBpB,OAAOD,EAAME,qBAAqBZ,GAtBd,WAClB,IAAMa,EAASjB,UAAUkB,OACnBjB,EAAaL,IAEbuB,EAAY,CAChBF,OAAAA,EACAG,SAAUnB,aAAAA,EAAAA,EAAYmB,SACtBC,YAAapB,aAAAA,EAAAA,EAAYoB,YACzBC,cAAerB,aAAAA,EAAAA,EAAYqB,cAC3BC,IAAKtB,aAAAA,EAAAA,EAAYsB,IACjBC,SAAUvB,aAAAA,EAAAA,EAAYuB,SACtBC,KAAMxB,aAAU,EAAVA,EAAYwB,MAGpB,OAAIZ,EAAMa,SAAWC,EAAed,EAAMa,QAAgBP,GACjDN,EAAMa,SAGfb,EAAMa,QAAUP,EACTA,KAGiDT,EAC5D"}
1
+ {"version":3,"file":"useNetwork.js","sources":["../../../../src/hooks/useNetwork/useNetwork.ts"],"sourcesContent":["import React from 'react';\n\nimport { isShallowEqual } from '@/utils/helpers';\n\nexport type ConnectionType = Connection['type'];\nexport type ConnectionEffectiveType = Connection['effectiveType'];\n\n/** The use network return type */\nexport interface UseNetworkReturn {\n /** Indicates if the device is currently online */\n online: boolean;\n /** The estimated downlink speed in megabits per seconds */\n downlink?: Connection['downlink'];\n /** The maximum downlink speed, if available */\n downlinkMax?: Connection['downlinkMax'];\n /** The effective type of connection (e.g., '2g', '3g', '4g') */\n effectiveType?: Connection['effectiveType'];\n /** The estimated round-trip time in milliseconds */\n rtt?: Connection['rtt'];\n /** Indicates if the user has enabled data saving mode */\n saveData?: Connection['saveData'];\n /** The type of network connection (e.g., 'wifi', 'cellular') */\n type?: Connection['type'];\n}\n\nexport const getConnection = () =>\n navigator?.connection || navigator?.mozConnection || navigator?.webkitConnection;\n\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback, { passive: true });\n window.addEventListener('offline', callback, { passive: true });\n\n const connection = getConnection();\n\n if (connection) {\n connection.addEventListener('change', callback, { passive: true });\n }\n\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n\n if (connection) {\n connection.removeEventListener('change', callback);\n }\n };\n};\n\nconst getServerSnapshot = () => ({\n online: false,\n type: undefined,\n effectiveType: undefined,\n saveData: false,\n downlink: 0,\n downlinkMax: 0,\n rtt: 0\n});\n\n/**\n * @name useNetwork\n * @description - Hook to track network status.\n *\n * @returns {UseNetworkReturn} An object containing the network status.\n *\n * @example\n * const { online, downlink, downlinkMax, effectiveType, rtt, saveData, type } = useNetwork();\n */\nexport const useNetwork = (): UseNetworkReturn => {\n const cache = React.useRef<UseNetworkReturn>();\n\n const getSnapshot = () => {\n const online = navigator.onLine;\n const connection = getConnection();\n\n const nextState = {\n online,\n downlink: connection?.downlink,\n downlinkMax: connection?.downlinkMax,\n effectiveType: connection?.effectiveType,\n rtt: connection?.rtt,\n saveData: connection?.saveData,\n type: connection?.type\n };\n\n if (cache.current && isShallowEqual(cache.current as any, nextState)) {\n return cache.current;\n }\n\n cache.current = nextState;\n return nextState;\n };\n\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n};\n"],"names":["getConnection","_navigator","_navigator2","_navigator3","navigator","connection","mozConnection","webkitConnection","subscribe","callback","window","addEventListener","passive","removeEventListener","getServerSnapshot","online","type","undefined","effectiveType","saveData","downlink","downlinkMax","rtt","useNetwork","cache","React","useRef","useSyncExternalStore","onLine","nextState","current","isShallowEqual"],"mappings":";oIAyBaA,IAAAA,EAAgB,WAAH,IAAAC,EAAAC,EAAAC,EAAA,OACfF,QAATA,EAAAG,iBAAAH,IAASA,OAATA,EAAAA,EAAWI,cAAuBH,QAAbA,EAAIE,iBAAAF,IAASA,OAATA,EAAAA,EAAWI,iBAA0BH,QAAbA,EAAIC,iBAAAD,IAASA,OAATA,EAAAA,EAAWI,iBAAgB,EAE5EC,EAAY,SAACC,GACjBC,OAAOC,iBAAiB,SAAUF,EAAU,CAAEG,SAAS,IACvDF,OAAOC,iBAAiB,UAAWF,EAAU,CAAEG,SAAS,IAExD,IAAMP,EAAaL,IAMnB,OAJIK,GACFA,EAAWM,iBAAiB,SAAUF,EAAU,CAAEG,SAAS,IAGtD,WACLF,OAAOG,oBAAoB,SAAUJ,GACrCC,OAAOG,oBAAoB,UAAWJ,GAElCJ,GACFA,EAAWQ,oBAAoB,SAAUJ,GAG/C,EAEMK,EAAoB,WAAH,MAAU,CAC/BC,QAAQ,EACRC,UAAMC,EACNC,mBAAeD,EACfE,UAAU,EACVC,SAAU,EACVC,YAAa,EACbC,IAAK,EACN,EAWYC,EAAa,WACxB,IAAMC,EAAQC,EAAMC,SAwBpB,OAAOD,EAAME,qBAAqBnB,GAtBd,WAClB,IAAMO,EAASX,UAAUwB,OACnBvB,EAAaL,IAEb6B,EAAY,CAChBd,OAAAA,EACAK,SAAUf,aAAAA,EAAAA,EAAYe,SACtBC,YAAahB,aAAAA,EAAAA,EAAYgB,YACzBH,cAAeb,aAAAA,EAAAA,EAAYa,cAC3BI,IAAKjB,aAAAA,EAAAA,EAAYiB,IACjBH,SAAUd,aAAAA,EAAAA,EAAYc,SACtBH,KAAMX,aAAU,EAAVA,EAAYW,MAGpB,OAAIQ,EAAMM,SAAWC,EAAeP,EAAMM,QAAgBD,GACjDL,EAAMM,SAGfN,EAAMM,QAAUD,EACTA,KAGiDf,EAC5D"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import n from"react";var e=function(){return navigator.onLine},t=function(){return!1},r=function(n){return window.addEventListener("online",n),window.addEventListener("offline",n),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n)}},o=function(){return n.useSyncExternalStore(r,e,t)};export{o as useOnline};
3
3
  //# sourceMappingURL=useOnline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnline.js","sources":["../../../../src/hooks/useOnline/useOnline.ts"],"sourcesContent":["import React from 'react';\n\nconst getSnapshot = () => navigator.onLine;\nconst getServerSnapshot = () => false;\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback);\n window.addEventListener('offline', callback);\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n };\n};\n\nexport const useOnline = () =>\n React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"names":["getSnapshot","navigator","onLine","getServerSnapshot","subscribe","callback","window","addEventListener","removeEventListener","useOnline","React","useSyncExternalStore"],"mappings":";qBAEA,IAAMA,EAAc,WAAH,OAASC,UAAUC,MAAM,EACpCC,EAAoB,WAAH,OAAS,CAAK,EAC/BC,EAAY,SAACC,GAGjB,OAFAC,OAAOC,iBAAiB,SAAUF,GAClCC,OAAOC,iBAAiB,UAAWF,GAC5B,WACLC,OAAOE,oBAAoB,SAAUH,GACrCC,OAAOE,oBAAoB,UAAWH,GAE1C,EAEaI,EAAY,WAAH,OACpBC,EAAMC,qBAAqBP,EAAWJ,EAAaG,EAAkB"}
1
+ {"version":3,"file":"useOnline.js","sources":["../../../../src/hooks/useOnline/useOnline.ts"],"sourcesContent":["import React from 'react';\n\nconst getSnapshot = () => navigator.onLine;\nconst getServerSnapshot = () => false;\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback);\n window.addEventListener('offline', callback);\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n };\n};\n\n/**\n * @name useOnline\n * @description - Hook that manages if the user is online\n *\n * @returns {boolean} A boolean indicating if the user is online\n *\n * @example\n * const online = useOnline();\n */\nexport const useOnline = () =>\n React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"names":["getSnapshot","navigator","onLine","getServerSnapshot","subscribe","callback","window","addEventListener","removeEventListener","useOnline","React","useSyncExternalStore"],"mappings":";qBAEA,IAAMA,EAAc,WAAH,OAASC,UAAUC,MAAM,EACpCC,EAAoB,WAAH,OAAS,CAAK,EAC/BC,EAAY,SAACC,GAGjB,OAFAC,OAAOC,iBAAiB,SAAUF,GAClCC,OAAOC,iBAAiB,UAAWF,GAC5B,WACLC,OAAOE,oBAAoB,SAAUH,GACrCC,OAAOE,oBAAoB,UAAWH,GAE1C,EAWaI,EAAY,WAAH,OACpBC,EAAMC,qBAAqBP,EAAWJ,EAAaG,EAAkB"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import n from"react";var i=function(){if("undefined"==typeof window)return"undetermined";var n=window.navigator.userAgent;return/(Macintosh)|(MacIntel)|(MacPPC)|(Mac68K)/i.test(n)?"macos":/(iPhone)|(iPad)|(iPod)/i.test(n)?"ios":/(Win32)|(Win64)|(Windows)|(WinCE)/i.test(n)?"windows":/Android/i.test(n)?"android":/Linux/i.test(n)?"linux":"undetermined"},e=function(){return n.useRef(i()).current};export{i as getOperatingSystem,e as useOperatingSystem};
3
+ //# sourceMappingURL=useOperatingSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOperatingSystem.js","sources":["../../../../src/hooks/useOperatingSystem/useOperatingSystem.ts"],"sourcesContent":["import React from 'react';\n\nexport type OperatingSystem = 'undetermined' | 'macos' | 'ios' | 'windows' | 'android' | 'linux';\n\nexport const getOperatingSystem = (): OperatingSystem => {\n if (typeof window === 'undefined') return 'undetermined';\n\n const { userAgent } = window.navigator;\n\n if (/(Macintosh)|(MacIntel)|(MacPPC)|(Mac68K)/i.test(userAgent)) return 'macos';\n if (/(iPhone)|(iPad)|(iPod)/i.test(userAgent)) return 'ios';\n if (/(Win32)|(Win64)|(Windows)|(WinCE)/i.test(userAgent)) return 'windows';\n if (/Android/i.test(userAgent)) return 'android';\n if (/Linux/i.test(userAgent)) return 'linux';\n\n return 'undetermined';\n};\n\n/**\n * @name useOperatingSystem\n * @description - Hook that returns the operating system of the current browser\n *\n * @returns {OperatingSystem} The operating system\n *\n * @example\n * const operatingSystem = useOperatingSystem();\n */\nexport const useOperatingSystem = () => {\n const osOperatingSystemRef = React.useRef<OperatingSystem>(getOperatingSystem());\n return osOperatingSystemRef.current;\n};\n"],"names":["getOperatingSystem","window","userAgent","navigator","test","useOperatingSystem","React","useRef","current"],"mappings":";yBAIaA,EAAqB,WAChC,GAAsB,oBAAXC,OAAwB,MAAO,eAE1C,IAAQC,EAAcD,OAAOE,UAArBD,UAER,MAAI,4CAA4CE,KAAKF,GAAmB,QACpE,0BAA0BE,KAAKF,GAAmB,MAClD,qCAAqCE,KAAKF,GAAmB,UAC7D,WAAWE,KAAKF,GAAmB,UACnC,SAASE,KAAKF,GAAmB,QAE9B,cACT,EAWaG,EAAqB,WAEhC,OAD6BC,EAAMC,OAAwBP,KAC/BQ,OAC9B"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import{useState as n}from"react";import{useIsomorphicLayoutEffect as r}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var o=function(){var o=n({angle:0,type:"landscape-primary"}),t=e(o,2),i=t[0],a=t[1];return r((function(){var e,n=function(){var e=window.screen.orientation,n=e.angle,r=e.type;a({angle:n,type:r})};return null===(e=window.screen.orientation)||void 0===e||e.addEventListener("change",n),function(){var e;return null===(e=window.screen.orientation)||void 0===e?void 0:e.removeEventListener("change",n)}}),[]),i};export{o as useOrientation};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import{useState as n}from"react";import{useIsomorphicLayoutEffect as r}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var o=function(){var o=n({angle:0,type:"landscape-primary"}),t=e(o,2),i=t[0],a=t[1];return r((function(){var e,n=function(){var e=window.screen.orientation,n=e.angle,r=e.type;a({angle:n,type:r})};return null===(e=window.screen.orientation)||void 0===e||e.addEventListener("change",n),function(){var e;return null===(e=window.screen.orientation)||void 0===e?void 0:e.removeEventListener("change",n)}}),[]),i};export{o as useOrientation};
3
3
  //# sourceMappingURL=useOrientation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOrientation.js","sources":["../../../../src/hooks/useOrientation/useOrientation.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\nexport const useOrientation = () => {\n const [orientation, setOrientation] = useState<{\n angle: number;\n type: OrientationType;\n }>({ angle: 0, type: 'landscape-primary' });\n\n useIsomorphicLayoutEffect(() => {\n const onChange = () => {\n const { angle, type } = window.screen.orientation;\n setOrientation({\n angle,\n type\n });\n };\n\n window.screen.orientation?.addEventListener('change', onChange);\n return () => window.screen.orientation?.removeEventListener('change', onChange);\n }, []);\n\n return orientation;\n};\n"],"names":["useOrientation","_useState","useState","angle","type","_useState2","_slicedToArray","orientation","setOrientation","useIsomorphicLayoutEffect","_window$screen$orient2","onChange","_window$screen$orient","window","screen","addEventListener","_window$screen$orient3","removeEventListener"],"mappings":";mPAIaA,EAAiB,WAC5B,IAAAC,EAAsCC,EAGnC,CAAEC,MAAO,EAAGC,KAAM,sBAAsBC,EAAAC,EAAAL,EAAA,GAHpCM,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAkBlC,OAbAI,GAA0B,WAAM,IAAAC,EACxBC,EAAW,WACf,IAAAC,EAAwBC,OAAOC,OAAOP,YAA9BJ,EAAKS,EAALT,MAAOC,EAAIQ,EAAJR,KACfI,EAAe,CACbL,MAAAA,EACAC,KAAAA,KAKJ,OADyB,QAAzBM,EAAAG,OAAOC,OAAOP,mBAAW,IAAAG,GAAzBA,EAA2BK,iBAAiB,SAAUJ,GAC/C,WAAA,IAAAK,EAAA,OAA+B,QAA/BA,EAAMH,OAAOC,OAAOP,mBAAW,IAAAS,OAAA,EAAzBA,EAA2BC,oBAAoB,SAAUN,EAAS,CAChF,GAAE,IAEIJ,CACT"}
1
+ {"version":3,"file":"useOrientation.js","sources":["../../../../src/hooks/useOrientation/useOrientation.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/** The use orientation return type */\nexport interface UseOrientationReturn {\n /** The current screen orientation angle */\n angle: number;\n /** The screen orientation type */\n type: OrientationType;\n}\n\n/**\n * @name useOrientation\n * @description - Hook that returns the current screen orientation\n *\n * @returns {UseOrientationReturn} An object containing the current screen orientation\n *\n * @example\n * const { angle, type } = useOrientation();\n */\nexport const useOrientation = (): UseOrientationReturn => {\n const [orientation, setOrientation] = useState<{\n angle: number;\n type: OrientationType;\n }>({ angle: 0, type: 'landscape-primary' });\n\n useIsomorphicLayoutEffect(() => {\n const onChange = () => {\n const { angle, type } = window.screen.orientation;\n setOrientation({\n angle,\n type\n });\n };\n\n window.screen.orientation?.addEventListener('change', onChange);\n return () => window.screen.orientation?.removeEventListener('change', onChange);\n }, []);\n\n return orientation;\n};\n"],"names":["useOrientation","_useState","useState","angle","type","_useState2","_slicedToArray","orientation","setOrientation","useIsomorphicLayoutEffect","_window$screen$orient2","onChange","_window$screen$orient","window","screen","addEventListener","_window$screen$orient3","removeEventListener"],"mappings":";mPAqBaA,EAAiB,WAC5B,IAAAC,EAAsCC,EAGnC,CAAEC,MAAO,EAAGC,KAAM,sBAAsBC,EAAAC,EAAAL,EAAA,GAHpCM,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAkBlC,OAbAI,GAA0B,WAAM,IAAAC,EACxBC,EAAW,WACf,IAAAC,EAAwBC,OAAOC,OAAOP,YAA9BJ,EAAKS,EAALT,MAAOC,EAAIQ,EAAJR,KACfI,EAAe,CACbL,MAAAA,EACAC,KAAAA,KAKJ,OADyB,QAAzBM,EAAAG,OAAOC,OAAOP,mBAAW,IAAAG,GAAzBA,EAA2BK,iBAAiB,SAAUJ,GAC/C,WAAA,IAAAK,EAAA,OAA+B,QAA/BA,EAAMH,OAAOC,OAAOP,mBAAW,IAAAS,OAAA,EAAzBA,EAA2BC,oBAAoB,SAAUN,EAAS,CAChF,GAAE,IAEIJ,CACT"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import r from"react";var e=function(e){var t=r.useRef();return r.useEffect((function(){t.current=e})),t.current};export{e as usePrevious};
3
+ //# sourceMappingURL=usePrevious.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrevious.js","sources":["../../../../src/hooks/usePrevious/usePrevious.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * @name usePrevious\n * @description - Hook that returns the previous value\n *\n * @template Value The type of the value\n * @param {Value} value The value to get the previous value\n * @returns {Value} The previous value\n *\n * @example\n * const prevValue = usePrevious(value);\n */\nexport const usePrevious = <Value>(value: Value) => {\n const ref = React.useRef<Value>();\n\n React.useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n};\n"],"names":["usePrevious","value","ref","React","useRef","useEffect","current"],"mappings":";yBAaaA,EAAc,SAAQC,GACjC,IAAMC,EAAMC,EAAMC,SAMlB,OAJAD,EAAME,WAAU,WACdH,EAAII,QAAUL,CAChB,IAEOC,EAAII,OACb"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import r from"react";var e=function(){var e=r.useRef(0);return r.useEffect((function(){e.current+=1})),e.current};export{e as useRenderCount};
3
3
  //# sourceMappingURL=useRenderCount.js.map
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import t from"react";var e=function(){var e=t.useId(),o=t.useState(e),a=r(o,2),n=a[0],u=a[1];return{id:n,update:function(){return u(Math.random().toString())}}};export{e as useRerender};
3
+ //# sourceMappingURL=useRerender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRerender.js","sources":["../../../../src/hooks/useRerender/useRerender.ts"],"sourcesContent":["import React from 'react';\n\n/** The use rerender return type */\ninterface UseRerenderReturns {\n /** The id of the rerender */\n id: string;\n /** Function to rerender the component */\n update: () => void;\n}\n\n/**\n * @name useRerender\n * @description - Hook that defines the logic to force rerender a component\n *\n * @returns {UseRerenderReturns} An object containing the id and update function\n *\n * @example\n * const { id, update } = useRerender();\n */\nexport const useRerender = (): UseRerenderReturns => {\n const id = React.useId();\n const [value, setValue] = React.useState(id);\n return { id: value, update: () => setValue(Math.random().toString()) };\n};\n"],"names":["useRerender","id","React","useId","_React$useState","useState","_React$useState2","_slicedToArray","value","setValue","update","Math","random","toString"],"mappings":";yFAmBaA,EAAc,WACzB,IAAMC,EAAKC,EAAMC,QACjBC,EAA0BF,EAAMG,SAASJ,GAAGK,EAAAC,EAAAH,EAAA,GAArCI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtB,MAAO,CAAEL,GAAIO,EAAOE,OAAQ,WAAA,OAAMD,EAASE,KAAKC,SAASC,WAAW,EACtE"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import t from"react";var r="script-status",n=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.useState((function(){var e=document.querySelector('script[src="'.concat(n,'"]')),t=null==e?void 0:e.getAttribute(r);return t||(e?"unknown":"loading")})),u=e(i,2),c=u[0],a=u[1],s=o.removeOnUnmount,d=void 0===s||s,v=o.async,l=void 0===v||v;return t.useEffect((function(){var t=document.querySelector('script[src="'.concat(n,'"]')),i=null==t?void 0:t.getAttribute(r);if(i)return a(i);if(t)return a("unknown");var u=document.createElement("script");u.src=n,u.async=l;for(var c=0,s=Object.entries(o);c<s.length;c++){var v=e(s[c],2),m=v[0],f=v[1];u.setAttribute(m,String(f))}u.setAttribute(r,"loading"),document.body.appendChild(u);var p=function(){u.setAttribute(r,"ready"),a("ready")},b=function(){u.setAttribute(r,"error"),a("error")};return u.addEventListener("load",p),u.addEventListener("error",b),function(){d&&(u.remove(),u.removeEventListener("load",p),u.removeEventListener("error",b))}}),[n,d]),c};export{r as SCRIPT_STATUS_ATTRIBUTE_NAME,n as useScript};
3
+ //# sourceMappingURL=useScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScript.js","sources":["../../../../src/hooks/useScript/useScript.ts"],"sourcesContent":["import React from 'react';\n\nexport type UseScriptStatus = 'loading' | 'ready' | 'error' | 'unknown';\nexport const SCRIPT_STATUS_ATTRIBUTE_NAME = 'script-status';\n\nexport interface UseScriptOptions extends React.ComponentProps<'script'> {\n removeOnUnmount?: boolean;\n}\n\n/**\n * @name useScript\n * @description - Hook that manages a script with onLoad, onError, and removeOnUnmount functionalities\n *\n * @param {string} src The source of the script\n * @param {UseScriptOptions} [options] The options of the script extends from attributes script tag\n * @param {boolean} [options.removeOnUnmount=true] Whether to remove the script on unmount\n * @param {boolean} [options.async=true] Whether to load the script asynchronously\n * @returns {UseScriptStatus} The status of the script\n *\n * @example\n * const status = useScript('https://example.com/script.js');\n */\nexport const useScript = (src: string, options: UseScriptOptions = {}) => {\n const [status, setStatus] = React.useState<UseScriptStatus>(() => {\n const script = document.querySelector(`script[src=\"${src}\"]`) as HTMLScriptElement;\n const scriptStatus = script?.getAttribute(SCRIPT_STATUS_ATTRIBUTE_NAME) as UseScriptStatus;\n if (scriptStatus) return scriptStatus;\n if (script) return 'unknown';\n\n return 'loading';\n });\n const { removeOnUnmount = true, async = true } = options;\n\n React.useEffect(() => {\n const existedScript = document.querySelector(`script[src=\"${src}\"]`) as HTMLScriptElement;\n const scriptStatus = existedScript?.getAttribute(\n SCRIPT_STATUS_ATTRIBUTE_NAME\n ) as UseScriptStatus;\n if (scriptStatus) return setStatus(scriptStatus);\n if (existedScript) return setStatus('unknown');\n\n const script = document.createElement('script');\n script.src = src;\n script.async = async;\n\n for (const [key, value] of Object.entries(options)) {\n script.setAttribute(key, String(value));\n }\n\n script.setAttribute(SCRIPT_STATUS_ATTRIBUTE_NAME, 'loading');\n document.body.appendChild(script);\n\n const onLoad = () => {\n script.setAttribute(SCRIPT_STATUS_ATTRIBUTE_NAME, 'ready');\n setStatus('ready');\n };\n\n const onError = () => {\n script.setAttribute(SCRIPT_STATUS_ATTRIBUTE_NAME, 'error');\n setStatus('error');\n };\n\n const removeEventListeners = () => {\n script.removeEventListener('load', onLoad);\n script.removeEventListener('error', onError);\n };\n\n script.addEventListener('load', onLoad);\n script.addEventListener('error', onError);\n\n return () => {\n if (removeOnUnmount) {\n script.remove();\n removeEventListeners();\n }\n };\n }, [src, removeOnUnmount]);\n\n return status;\n};\n"],"names":["SCRIPT_STATUS_ATTRIBUTE_NAME","useScript","src","options","arguments","length","undefined","_React$useState","React","useState","script","document","querySelector","concat","scriptStatus","getAttribute","_React$useState2","_slicedToArray","status","setStatus","_options$removeOnUnmo","removeOnUnmount","_options$async","async","useEffect","existedScript","createElement","_i","_Object$entries","Object","entries","_Object$entries$_i","key","value","setAttribute","String","body","appendChild","onLoad","onError","addEventListener","remove","removeEventListener"],"mappings":";qFAGO,IAAMA,EAA+B,gBAmB/BC,EAAY,SAACC,GAAgD,IAAnCC,EAAyBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACjEG,EAA4BC,EAAMC,UAA0B,WAC1D,IAAMC,EAASC,SAASC,6BAAaC,OAAgBX,EAAG,OAClDY,EAAeJ,aAAAA,EAAAA,EAAQK,aAAaf,GAC1C,OAAIc,IACAJ,EAAe,UAEZ,UACT,IAAEM,EAAAC,EAAAV,EAAA,GAPKW,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAQxBI,EAAiDjB,EAAzCkB,gBAAAA,OAAkB,IAAHD,GAAOA,EAAAE,EAAmBnB,EAAjBoB,MAAAA,OAAQ,IAAHD,GAAOA,EA+C5C,OA7CAd,EAAMgB,WAAU,WACd,IAAMC,EAAgBd,SAASC,6BAAaC,OAAgBX,EAAG,OACzDY,EAAeW,aAAAA,EAAAA,EAAeV,aAClCf,GAEF,GAAIc,EAAc,OAAOK,EAAUL,GACnC,GAAIW,EAAe,OAAON,EAAU,WAEpC,IAAMT,EAASC,SAASe,cAAc,UACtChB,EAAOR,IAAMA,EACbQ,EAAOa,MAAQA,EAEf,IAAA,IAAAI,EAAAC,EAAAA,EAA2BC,OAAOC,QAAQ3B,GAAQwB,EAAAC,EAAAvB,OAAAsB,IAAE,CAA/C,IAAAI,EAAAd,EAAAW,EAAAD,GAAA,GAAOK,EAAGD,EAAA,GAAEE,EAAKF,EAAA,GACpBrB,EAAOwB,aAAaF,EAAKG,OAAOF,GAClC,CAEAvB,EAAOwB,aAAalC,EAA8B,WAClDW,SAASyB,KAAKC,YAAY3B,GAE1B,IAAM4B,EAAS,WACb5B,EAAOwB,aAAalC,EAA8B,SAClDmB,EAAU,UAGNoB,EAAU,WACd7B,EAAOwB,aAAalC,EAA8B,SAClDmB,EAAU,UAWZ,OAHAT,EAAO8B,iBAAiB,OAAQF,GAChC5B,EAAO8B,iBAAiB,QAASD,GAE1B,WACDlB,IACFX,EAAO+B,SATT/B,EAAOgC,oBAAoB,OAAQJ,GACnC5B,EAAOgC,oBAAoB,QAASH,IAYxC,GAAG,CAACrC,EAAKmB,IAEFH,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{b as r}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import{useStorage as e}from"../useStorage/useStorage.js";import"react";var o=function(o,t,a){return e(o,r({initialValue:t,storage:window.sessionStorage},a))};export{o as useSessionStorage};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{b as o}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import{useStorage as e}from"../useStorage/useStorage.js";import"react";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var r=function(r,t,s){return e(r,o({initialValue:t,storage:window.sessionStorage},s))};export{r as useSessionStorage};
3
3
  //# sourceMappingURL=useSessionStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionStorage.js","sources":["../../../../src/hooks/useSessionStorage/useSessionStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\nimport { useStorage } from '../useStorage/useStorage';\n\nexport const useSessionStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: UseStorageOptions<Value>\n) => useStorage(key, { initialValue, storage: window.sessionStorage, ...options });\n"],"names":["useSessionStorage","key","initialValue","options","useStorage","_objectSpread","storage","window","sessionStorage"],"mappings":";uIAGO,IAAMA,EAAoB,SAC/BC,EACAC,EACAC,GAAkC,OAC/BC,EAAWH,EAAGI,EAAA,CAAIH,aAAAA,EAAcI,QAASC,OAAOC,gBAAmBL,GAAU"}
1
+ {"version":3,"file":"useSessionStorage.js","sources":["../../../../src/hooks/useSessionStorage/useSessionStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\nimport { useStorage } from '../useStorage/useStorage';\n\n/**\n * @name useSessionStorage\n * @description - Hook that manages session storage value\n *\n * @template Value The type of the value\n * @param {string} key The key of the storage\n * @param {UseStorageInitialValue<Value>} [initialValue] The initial value of the storage\n * @param {UseStorageOptions<Value>} [options] The options of the storage\n *\n * @example\n * const [value, setValue, removeValue] = useSessionStorage('key', 'value');\n */\nexport const useSessionStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: UseStorageOptions<Value>\n) => useStorage(key, { initialValue, storage: window.sessionStorage, ...options });\n"],"names":["useSessionStorage","key","initialValue","options","useStorage","_objectSpread","storage","window","sessionStorage"],"mappings":";iPAeO,IAAMA,EAAoB,SAC/BC,EACAC,EACAC,GAAkC,OAC/BC,EAAWH,EAAGI,EAAA,CAAIH,aAAAA,EAAcI,QAASC,OAAOC,gBAAmBL,GAAU"}
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import r from"react";import{useRerender as e}from"../useRerender/useRerender.js";import"../../_rollupPluginBabelHelpers-Cg3Jntln.js";var t=function(t){var n=r.useRef(new Set(t)),a=e();return n.current.add=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var u=Set.prototype.add.apply(n.current,e);return a.update(),u},n.current.clear=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];Set.prototype.clear.apply(n.current,e),a.update()},n.current.delete=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var u=Set.prototype.delete.apply(n.current,e);return a.update(),u},n.current};export{t as useSet};
3
+ //# sourceMappingURL=useSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSet.js","sources":["../../../../src/hooks/useSet/useSet.ts"],"sourcesContent":["import React from 'react';\n\nimport { useRerender } from '../useRerender/useRerender';\n\n/**\n * @name useSet\n * @description - Hook that manages a set structure\n *\n * @template Value The type of the value\n * @param {Value[]} values The initial array of the set\n * @returns {Set<Value>} A set structure\n *\n * @example\n * const set = useSet([1, 2, 3]);\n */\nexport const useSet = <Value>(values: Value[]) => {\n const setRef = React.useRef(new Set(values));\n const rerender = useRerender();\n\n setRef.current.add = (...args) => {\n const result = Set.prototype.add.apply(setRef.current, args);\n rerender.update();\n return result;\n };\n\n setRef.current.clear = (...args) => {\n Set.prototype.clear.apply(setRef.current, args);\n rerender.update();\n };\n\n setRef.current.delete = (...args) => {\n const result = Set.prototype.delete.apply(setRef.current, args);\n rerender.update();\n return result;\n };\n\n return setRef.current;\n};\n"],"names":["useSet","values","setRef","React","useRef","Set","rerender","useRerender","current","add","_len","arguments","length","args","Array","_key","result","prototype","apply","update","clear","_len2","_key2","_len3","_key3"],"mappings":";yIAeaA,EAAS,SAAQC,GAC5B,IAAMC,EAASC,EAAMC,OAAO,IAAIC,IAAIJ,IAC9BK,EAAWC,IAmBjB,OAjBAL,EAAOM,QAAQC,IAAM,WAAa,IAAA,IAAAC,EAAAC,UAAAC,OAATC,EAAIC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAC3B,IAAMC,EAASX,IAAIY,UAAUR,IAAIS,MAAMhB,EAAOM,QAASK,GAEvD,OADAP,EAASa,SACFH,GAGTd,EAAOM,QAAQY,MAAQ,WAAa,IAAA,IAAAC,EAAAV,UAAAC,OAATC,EAAIC,IAAAA,MAAAO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJT,EAAIS,GAAAX,UAAAW,GAC7BjB,IAAIY,UAAUG,MAAMF,MAAMhB,EAAOM,QAASK,GAC1CP,EAASa,UAGXjB,EAAOM,QAAc,OAAG,WAAa,IAAA,IAAAe,EAAAZ,UAAAC,OAATC,EAAIC,IAAAA,MAAAS,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJX,EAAIW,GAAAb,UAAAa,GAC9B,IAAMR,EAASX,IAAIY,UAAgB,OAACC,MAAMhB,EAAOM,QAASK,GAE1D,OADAP,EAASa,SACFH,GAGFd,EAAOM,OAChB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{a as t,_ as r}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import n from"react";var e=function(e){var u="object"===t(e)?e.max:e,i="object"===t(e)?e.initial:1,o=n.useRef(i>u||i<1?1:i),c=n.useState(i),s=r(c,2),a=s[0],f=s[1],l=1===a,p=a===u;return{counts:u,currentStep:a,isFirst:l,isLast:p,next:function(){p||f((function(t){return t+1}))},back:function(){l||f((function(t){return t-1}))},reset:function(){return f(o.current)},set:function(t){return"first"===t?f(o.current):"last"===t||t>=u?f(u):t<=1?f(1):void f(t)}}};export{e as useStep};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{a as t,_ as r}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import n from"react";var e=function(e){var u="object"===t(e)?e.max:e,i="object"===t(e)?e.initial:1,o=n.useRef(i>u||i<1?1:i),c=n.useState(i),s=r(c,2),a=s[0],f=s[1],l=1===a,p=a===u;return{counts:u,currentStep:a,isFirst:l,isLast:p,next:function(){p||f((function(t){return t+1}))},back:function(){l||f((function(t){return t-1}))},reset:function(){return f(o.current)},set:function(t){return"first"===t?f(o.current):"last"===t||t>=u?f(u):t<=1?f(1):void f(t)}}};export{e as useStep};
3
3
  //# sourceMappingURL=useStep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStep.js","sources":["../../../../src/hooks/useStep/useStep.ts"],"sourcesContent":["import React from 'react';\n\n/** The use step params */\ninterface UseStepParams {\n /** Initial value for step */\n initial: number;\n /** Maximum value for step */\n max: number;\n}\n\n/** The use step return type */\ninterface UseStepReturn {\n /** Counts of steps */\n counts: number;\n /** Current value of step */\n currentStep: number;\n /** Boolean value if current step is first */\n isFirst: boolean;\n /** Boolean value if current step is last */\n isLast: boolean;\n /** Go to next step */\n next: () => void;\n /** Go to back step */\n back: () => void;\n /** Reset current step to initial value */\n reset: () => void;\n /** Go to custom step */\n set: (value: number | 'last' | 'first') => void;\n}\n\nconst FIRST_STEP_VALUE = 1;\n\n/**\n * @name useStep\n * @description - Hook that create stepper\n *\n * @overload\n * @param {number} max Maximum number of steps\n * @returns {UseStepReturn} An object contains variables and functions to change the step\n *\n * @overload\n * @param {number} params.max Maximum number of steps\n * @param {number} params.initial Initial value for step\n * @returns {UseStepReturn} An object contains variables and functions to change the step\n *\n * @example\n * const step = useStep(5);\n * @example\n * const stepper = useStep({ initial: 2, max: 5 });\n */\nexport const useStep = (params: number | UseStepParams): UseStepReturn => {\n const max = typeof params === 'object' ? params.max : params;\n const initial = typeof params === 'object' ? params.initial : FIRST_STEP_VALUE;\n\n const initialStep = React.useRef(\n initial > max || initial < FIRST_STEP_VALUE ? FIRST_STEP_VALUE : initial\n );\n const [currentStep, setCurrentStep] = React.useState(initial);\n\n const isFirst = currentStep === FIRST_STEP_VALUE;\n const isLast = currentStep === max;\n\n const next = () => {\n if (isLast) return;\n setCurrentStep((prevStep) => prevStep + 1);\n };\n\n const back = () => {\n if (isFirst) return;\n setCurrentStep((prevStep) => prevStep - 1);\n };\n\n const reset = () => setCurrentStep(initialStep.current);\n\n const set = (value: number | 'last' | 'first') => {\n if (value === 'first') return setCurrentStep(initialStep.current);\n if (value === 'last') return setCurrentStep(max);\n if (value >= max) return setCurrentStep(max);\n if (value <= FIRST_STEP_VALUE) return setCurrentStep(FIRST_STEP_VALUE);\n setCurrentStep(value);\n };\n\n return {\n counts: max,\n currentStep,\n isFirst,\n isLast,\n next,\n back,\n reset,\n set\n };\n};\n"],"names":["useStep","params","max","_typeof","initial","initialStep","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","currentStep","setCurrentStep","isFirst","isLast","counts","next","prevStep","back","reset","current","set","value"],"mappings":";4FA8BA,IAoBaA,EAAU,SAACC,GACtB,IAAMC,EAAwB,WAAlBC,EAAOF,GAAsBA,EAAOC,IAAMD,EAChDG,EAA4B,WAAlBD,EAAOF,GAAsBA,EAAOG,QAtB7B,EAwBjBC,EAAcC,EAAMC,OACxBH,EAAUF,GAAOE,EAzBI,IAyB4CA,GAEnEI,EAAsCF,EAAMG,SAASL,GAAQM,EAAAC,EAAAH,EAAA,GAAtDI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAE5BI,EA7BiB,IA6BPF,EACVG,EAASH,IAAgBV,EAsB/B,MAAO,CACLc,OAAQd,EACRU,YAAAA,EACAE,QAAAA,EACAC,OAAAA,EACAE,KAzBW,WACPF,GACJF,GAAe,SAACK,GAAQ,OAAKA,EAAW,MAwBxCC,KArBW,WACPL,GACJD,GAAe,SAACK,GAAQ,OAAKA,EAAW,MAoBxCE,MAjBY,WAAH,OAASP,EAAeR,EAAYgB,QAAQ,EAkBrDC,IAhBU,SAACC,GACX,MAAc,UAAVA,EAA0BV,EAAeR,EAAYgB,SAC3C,SAAVE,GACAA,GAASrB,EADgBW,EAAeX,GAExCqB,GAhDiB,EAgDiBV,EAhDjB,QAiDrBA,EAAeU,IAanB"}
1
+ {"version":3,"file":"useStep.js","sources":["../../../../src/hooks/useStep/useStep.ts"],"sourcesContent":["import React from 'react';\n\n/** The use step params */\ninterface UseStepParams {\n /** Initial value for step */\n initial: number;\n /** Maximum value for step */\n max: number;\n}\n\n/** The use step return type */\ninterface UseStepReturn {\n /** Counts of steps */\n counts: number;\n /** Current value of step */\n currentStep: number;\n /** Boolean value if current step is first */\n isFirst: boolean;\n /** Boolean value if current step is last */\n isLast: boolean;\n /** Go to next step */\n next: () => void;\n /** Go to back step */\n back: () => void;\n /** Reset current step to initial value */\n reset: () => void;\n /** Go to custom step */\n set: (value: number | 'last' | 'first') => void;\n}\n\nconst FIRST_STEP_VALUE = 1;\n\n/**\n * @name useStep\n * @description - Hook that create stepper\n *\n * @overload\n * @param {number} max Maximum number of steps\n * @returns {UseStepReturn} An object contains variables and functions to change the step\n *\n * @overload\n * @param {number} params.max Maximum number of steps\n * @param {number} params.initial Initial value for step\n * @returns {UseStepReturn} An object contains variables and functions to change the step\n *\n * @example\n * const step = useStep(5);\n *\n * @example\n * const stepper = useStep({ initial: 2, max: 5 });\n */\nexport const useStep = (params: number | UseStepParams): UseStepReturn => {\n const max = typeof params === 'object' ? params.max : params;\n const initial = typeof params === 'object' ? params.initial : FIRST_STEP_VALUE;\n\n const initialStep = React.useRef(\n initial > max || initial < FIRST_STEP_VALUE ? FIRST_STEP_VALUE : initial\n );\n const [currentStep, setCurrentStep] = React.useState(initial);\n\n const isFirst = currentStep === FIRST_STEP_VALUE;\n const isLast = currentStep === max;\n\n const next = () => {\n if (isLast) return;\n setCurrentStep((prevStep) => prevStep + 1);\n };\n\n const back = () => {\n if (isFirst) return;\n setCurrentStep((prevStep) => prevStep - 1);\n };\n\n const reset = () => setCurrentStep(initialStep.current);\n\n const set = (value: number | 'last' | 'first') => {\n if (value === 'first') return setCurrentStep(initialStep.current);\n if (value === 'last') return setCurrentStep(max);\n if (value >= max) return setCurrentStep(max);\n if (value <= FIRST_STEP_VALUE) return setCurrentStep(FIRST_STEP_VALUE);\n setCurrentStep(value);\n };\n\n return {\n counts: max,\n currentStep,\n isFirst,\n isLast,\n next,\n back,\n reset,\n set\n };\n};\n"],"names":["useStep","params","max","_typeof","initial","initialStep","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","currentStep","setCurrentStep","isFirst","isLast","counts","next","prevStep","back","reset","current","set","value"],"mappings":";4FA8BA,IAqBaA,EAAU,SAACC,GACtB,IAAMC,EAAwB,WAAlBC,EAAOF,GAAsBA,EAAOC,IAAMD,EAChDG,EAA4B,WAAlBD,EAAOF,GAAsBA,EAAOG,QAvB7B,EAyBjBC,EAAcC,EAAMC,OACxBH,EAAUF,GAAOE,EA1BI,IA0B4CA,GAEnEI,EAAsCF,EAAMG,SAASL,GAAQM,EAAAC,EAAAH,EAAA,GAAtDI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAE5BI,EA9BiB,IA8BPF,EACVG,EAASH,IAAgBV,EAsB/B,MAAO,CACLc,OAAQd,EACRU,YAAAA,EACAE,QAAAA,EACAC,OAAAA,EACAE,KAzBW,WACPF,GACJF,GAAe,SAACK,GAAQ,OAAKA,EAAW,MAwBxCC,KArBW,WACPL,GACJD,GAAe,SAACK,GAAQ,OAAKA,EAAW,MAoBxCE,MAjBY,WAAH,OAASP,EAAeR,EAAYgB,QAAQ,EAkBrDC,IAhBU,SAACC,GACX,MAAc,UAAVA,EAA0BV,EAAeR,EAAYgB,SAC3C,SAAVE,GACAA,GAASrB,EADgBW,EAAeX,GAExCqB,GAjDiB,EAiDiBV,EAjDjB,QAkDrBA,EAAeU,IAanB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{a as e}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import n from"react";var r=function(e){return window.dispatchEvent(new StorageEvent("storage",e))},t=function(e,n,t){var i=e.getItem(n);e.setItem(n,t),r({key:n,oldValue:i,newValue:t,storageArea:e})},i=function(e,n){var t=e.getItem(n);e.removeItem(n),r({key:n,oldValue:t,newValue:null,storageArea:e})},o=function(e,n,r){var t=e.getItem(n);if(t)return r(t)},u=function(e){return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}},a=function(r,a){var l,f="object"===e(a)?a:void 0,c=f?null==f?void 0:f.initialValue:a,s=null!==(l=null==f?void 0:f.storage)&&void 0!==l?l:window.localStorage,d=function(e){return null!=f&&f.serializer?f.serializer(e):JSON.stringify(e)},v=function(e){if(null!=f&&f.deserializer)return f.deserializer(e);if("undefined"!==e)try{return JSON.parse(e)}catch(n){return e}},g=n.useSyncExternalStore(u,(function(){return o(s,r,v)}),(function(){return function(e){return e instanceof Function?e():e}(c)}));n.useEffect((function(){if(void 0===o(s,r,v)&&c){var e=c instanceof Function?c():c;t(s,r,d(e))}}),[r]);return[g,function(e){if(null===e)return i(s,r);t(s,r,d(e))},function(){return i(s,r)}]};export{r as dispatchStorageEvent,a as useStorage};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{a as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import n from"react";import{useIsomorphicLayoutEffect as t}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var r=function(e){return window.dispatchEvent(new StorageEvent("storage",e))},i=function(e,n,t){var i=e.getItem(n);e.setItem(n,t),r({key:n,oldValue:i,newValue:t,storageArea:e})},o=function(e,n){var t=e.getItem(n);e.removeItem(n),r({key:n,oldValue:t,newValue:null,storageArea:e})},u=function(e,n,t){var r=e.getItem(n);if(r)return t(r)},a=function(e){return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}},l=function(r,l){var s,c="object"===e(l)?l:void 0,f=c?null==c?void 0:c.initialValue:l,d=null!==(s=null==c?void 0:c.storage)&&void 0!==s?s:window.localStorage,m=function(e){return null!=c&&c.serializer?c.serializer(e):JSON.stringify(e)},v=function(e){if(null!=c&&c.deserializer)return c.deserializer(e);if("undefined"!==e)try{return JSON.parse(e)}catch(n){return e}},g=n.useSyncExternalStore(a,(function(){return u(d,r,v)}),(function(){return function(e){return e instanceof Function?e():e}(f)}));t((function(){(void 0===u(d,r,v)||f)&&i(d,r,m(f instanceof Function?f():f))}),[r]);return[g,function(e){if(null===e)return o(d,r);i(d,r,m(e))},function(){return o(d,r)}]};export{r as dispatchStorageEvent,l as useStorage};
3
3
  //# sourceMappingURL=useStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStorage.js","sources":["../../../../src/hooks/useStorage/useStorage.ts"],"sourcesContent":["import React from 'react';\n\nexport type UseStorageInitialValue<Value> = Value | (() => Value);\nexport interface UseStorageOptions<Value> {\n serializer?: (value: Value) => string;\n deserializer?: (value: string) => Value;\n storage?: Storage;\n initialValue?: UseStorageInitialValue<Value>;\n}\n\nexport type UseStorageReturn<Value> = [\n value: Value,\n set: (value: Value) => void,\n remove: () => void\n];\n\nexport const dispatchStorageEvent = (params: Partial<StorageEvent>) =>\n window.dispatchEvent(new StorageEvent('storage', params));\n\nconst setStorageItem = (storage: Storage, key: string, value: string) => {\n const oldValue = storage.getItem(key);\n\n storage.setItem(key, value);\n dispatchStorageEvent({ key, oldValue, newValue: value, storageArea: storage });\n};\n\nconst removeStorageItem = (storage: Storage, key: string) => {\n const oldValue = storage.getItem(key);\n\n storage.removeItem(key);\n dispatchStorageEvent({ key, oldValue, newValue: null, storageArea: storage });\n};\n\nconst getStorageItem = <Value>(\n storage: Storage,\n key: string,\n deserializer: (value: string) => Value\n) => {\n const value = storage.getItem(key);\n if (!value) return undefined;\n return deserializer(value);\n};\n\nconst storageSubscribe = (callback: () => void) => {\n window.addEventListener('storage', callback);\n return () => window.removeEventListener('storage', callback);\n};\n\nconst getStorageServerSnapshot = <Value>(initialValue: UseStorageInitialValue<Value>) =>\n initialValue instanceof Function ? initialValue() : initialValue;\n\n/**\n * @name useStorage\n * @description - Hook that manages a counter with increment, decrement, reset, and set functionalities\n *\n * @example\n * text\n */\nexport const useStorage = <Value>(\n key: string,\n params?: UseStorageInitialValue<Value> | UseStorageOptions<Value>\n) => {\n const options = (typeof params === 'object' ? params : undefined) as UseStorageOptions<Value>;\n const initialValue = (options ? options?.initialValue : params) as UseStorageInitialValue<Value>;\n\n const storage = options?.storage ?? window.localStorage;\n const serializer = (value: Value) => {\n if (options?.serializer) return options.serializer(value);\n return JSON.stringify(value);\n };\n\n const deserializer = (value: string) => {\n if (options?.deserializer) return options.deserializer(value);\n\n if (value === 'undefined') {\n return undefined as unknown as Value;\n }\n\n try {\n return JSON.parse(value) as Value;\n } catch (error) {\n return value as Value;\n }\n };\n\n const getSnapshot = () => getStorageItem<Value>(storage, key, deserializer);\n const getServerSnapshot = () => getStorageServerSnapshot(initialValue);\n const store = React.useSyncExternalStore(storageSubscribe, getSnapshot, getServerSnapshot);\n\n const set = (value: Value) => {\n if (value === null) return removeStorageItem(storage, key);\n setStorageItem(storage, key, serializer(value));\n };\n\n React.useEffect(() => {\n const value = getStorageItem<Value>(storage, key, deserializer);\n if (value !== undefined || !initialValue) return;\n\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n\n setStorageItem(storage, key, serializer(defaultValue));\n }, [key]);\n\n const remove = () => removeStorageItem(storage, key);\n\n return [store, set, remove] as const;\n};\n"],"names":["dispatchStorageEvent","params","window","dispatchEvent","StorageEvent","setStorageItem","storage","key","value","oldValue","getItem","setItem","newValue","storageArea","removeStorageItem","removeItem","getStorageItem","deserializer","storageSubscribe","callback","addEventListener","removeEventListener","useStorage","_options$storage","options","_typeof","undefined","initialValue","localStorage","serializer","JSON","stringify","parse","error","store","React","useSyncExternalStore","Function","getStorageServerSnapshot","useEffect","defaultValue"],"mappings":";yFAgBaA,EAAuB,SAACC,GAA6B,OAChEC,OAAOC,cAAc,IAAIC,aAAa,UAAWH,GAAQ,EAErDI,EAAiB,SAACC,EAAkBC,EAAaC,GACrD,IAAMC,EAAWH,EAAQI,QAAQH,GAEjCD,EAAQK,QAAQJ,EAAKC,GACrBR,EAAqB,CAAEO,IAAAA,EAAKE,SAAAA,EAAUG,SAAUJ,EAAOK,YAAaP,GACtE,EAEMQ,EAAoB,SAACR,EAAkBC,GAC3C,IAAME,EAAWH,EAAQI,QAAQH,GAEjCD,EAAQS,WAAWR,GACnBP,EAAqB,CAAEO,IAAAA,EAAKE,SAAAA,EAAUG,SAAU,KAAMC,YAAaP,GACrE,EAEMU,EAAiB,SACrBV,EACAC,EACAU,GAEA,IAAMT,EAAQF,EAAQI,QAAQH,GAC9B,GAAKC,EACL,OAAOS,EAAaT,EACtB,EAEMU,EAAmB,SAACC,GAExB,OADAjB,OAAOkB,iBAAiB,UAAWD,GAC5B,WAAA,OAAMjB,OAAOmB,oBAAoB,UAAWF,EAAS,CAC9D,EAYaG,EAAa,SACxBf,EACAN,GACG,IAAAsB,EACGC,EAA6B,WAAlBC,EAAOxB,GAAsBA,OAASyB,EACjDC,EAAgBH,EAAUA,aAAO,EAAPA,EAASG,aAAe1B,EAElDK,UAAOiB,EAAGC,aAAAA,EAAAA,EAASlB,eAAO,IAAAiB,EAAAA,EAAIrB,OAAO0B,aACrCC,EAAa,SAACrB,GAClB,OAAIgB,SAAAA,EAASK,WAAmBL,EAAQK,WAAWrB,GAC5CsB,KAAKC,UAAUvB,IAGlBS,EAAe,SAACT,GACpB,GAAIgB,SAAAA,EAASP,aAAc,OAAOO,EAAQP,aAAaT,GAEvD,GAAc,cAAVA,EAIJ,IACE,OAAOsB,KAAKE,MAAMxB,EACnB,CAAC,MAAOyB,GACP,OAAOzB,CACT,GAKI0B,EAAQC,EAAMC,qBAAqBlB,GAFrB,WAAH,OAASF,EAAsBV,EAASC,EAAKU,EAAa,IACjD,WAAH,OAtCQ,SAAQU,GAA2C,OAClFA,aAAwBU,SAAWV,IAAiBA,CAAY,CAqChCW,CAAyBX,EAAa,IAQtEQ,EAAMI,WAAU,WAEd,QAAcb,IADAV,EAAsBV,EAASC,EAAKU,IACtBU,EAA5B,CAEA,IAAMa,EAAeb,aAAwBU,SAAWV,IAAiBA,EAEzEtB,EAAeC,EAASC,EAAKsB,EAAWW,GAJE,CAK5C,GAAG,CAACjC,IAIJ,MAAO,CAAC2B,EAhBI,SAAC1B,GACX,GAAc,OAAVA,EAAgB,OAAOM,EAAkBR,EAASC,GACtDF,EAAeC,EAASC,EAAKsB,EAAWrB,KAY3B,WAAH,OAASM,EAAkBR,EAASC,EAAI,EAGtD"}
1
+ {"version":3,"file":"useStorage.js","sources":["../../../../src/hooks/useStorage/useStorage.ts"],"sourcesContent":["import React from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\nexport type UseStorageInitialValue<Value> = Value | (() => Value);\nexport interface UseStorageOptions<Value> {\n serializer?: (value: Value) => string;\n deserializer?: (value: string) => Value;\n storage?: Storage;\n initialValue?: UseStorageInitialValue<Value>;\n}\n\nexport type UseStorageReturn<Value> = [\n value: Value,\n set: (value: Value) => void,\n remove: () => void\n];\n\nexport const dispatchStorageEvent = (params: Partial<StorageEvent>) =>\n window.dispatchEvent(new StorageEvent('storage', params));\n\nconst setStorageItem = (storage: Storage, key: string, value: string) => {\n const oldValue = storage.getItem(key);\n\n storage.setItem(key, value);\n dispatchStorageEvent({ key, oldValue, newValue: value, storageArea: storage });\n};\n\nconst removeStorageItem = (storage: Storage, key: string) => {\n const oldValue = storage.getItem(key);\n\n storage.removeItem(key);\n dispatchStorageEvent({ key, oldValue, newValue: null, storageArea: storage });\n};\n\nconst getStorageItem = <Value>(\n storage: Storage,\n key: string,\n deserializer: (value: string) => Value\n) => {\n const value = storage.getItem(key);\n if (!value) return undefined;\n return deserializer(value);\n};\n\nconst storageSubscribe = (callback: () => void) => {\n window.addEventListener('storage', callback);\n return () => window.removeEventListener('storage', callback);\n};\n\nconst getStorageServerSnapshot = <Value>(initialValue: UseStorageInitialValue<Value>) =>\n initialValue instanceof Function ? initialValue() : initialValue;\n\nexport const useStorage = <Value>(\n key: string,\n params?: UseStorageInitialValue<Value> | UseStorageOptions<Value>\n) => {\n const options = (typeof params === 'object' ? params : undefined) as UseStorageOptions<Value>;\n const initialValue = (options ? options?.initialValue : params) as UseStorageInitialValue<Value>;\n\n const storage = options?.storage ?? window.localStorage;\n const serializer = (value: Value) => {\n if (options?.serializer) return options.serializer(value);\n return JSON.stringify(value);\n };\n\n const deserializer = (value: string) => {\n if (options?.deserializer) return options.deserializer(value);\n\n if (value === 'undefined') {\n return undefined as unknown as Value;\n }\n\n try {\n return JSON.parse(value) as Value;\n } catch (error) {\n return value as Value;\n }\n };\n\n const getSnapshot = () => getStorageItem<Value>(storage, key, deserializer) as Value;\n const getServerSnapshot = () => getStorageServerSnapshot(initialValue);\n const store = React.useSyncExternalStore(storageSubscribe, getSnapshot, getServerSnapshot);\n\n const set = (value: Value) => {\n if (value === null) return removeStorageItem(storage, key);\n setStorageItem(storage, key, serializer(value));\n };\n\n useIsomorphicLayoutEffect(() => {\n const value = getStorageItem<Value>(storage, key, deserializer);\n if (value !== undefined && !initialValue) return;\n\n setStorageItem(\n storage,\n key,\n serializer(initialValue instanceof Function ? initialValue() : initialValue)\n );\n }, [key]);\n\n const remove = () => removeStorageItem(storage, key);\n\n return [store, set, remove] as const;\n};\n"],"names":["dispatchStorageEvent","params","window","dispatchEvent","StorageEvent","setStorageItem","storage","key","value","oldValue","getItem","setItem","newValue","storageArea","removeStorageItem","removeItem","getStorageItem","deserializer","storageSubscribe","callback","addEventListener","removeEventListener","useStorage","_options$storage","options","_typeof","undefined","initialValue","localStorage","serializer","JSON","stringify","parse","error","store","React","useSyncExternalStore","Function","getStorageServerSnapshot","useIsomorphicLayoutEffect"],"mappings":";uOAkBaA,EAAuB,SAACC,GAA6B,OAChEC,OAAOC,cAAc,IAAIC,aAAa,UAAWH,GAAQ,EAErDI,EAAiB,SAACC,EAAkBC,EAAaC,GACrD,IAAMC,EAAWH,EAAQI,QAAQH,GAEjCD,EAAQK,QAAQJ,EAAKC,GACrBR,EAAqB,CAAEO,IAAAA,EAAKE,SAAAA,EAAUG,SAAUJ,EAAOK,YAAaP,GACtE,EAEMQ,EAAoB,SAACR,EAAkBC,GAC3C,IAAME,EAAWH,EAAQI,QAAQH,GAEjCD,EAAQS,WAAWR,GACnBP,EAAqB,CAAEO,IAAAA,EAAKE,SAAAA,EAAUG,SAAU,KAAMC,YAAaP,GACrE,EAEMU,EAAiB,SACrBV,EACAC,EACAU,GAEA,IAAMT,EAAQF,EAAQI,QAAQH,GAC9B,GAAKC,EACL,OAAOS,EAAaT,EACtB,EAEMU,EAAmB,SAACC,GAExB,OADAjB,OAAOkB,iBAAiB,UAAWD,GAC5B,WAAA,OAAMjB,OAAOmB,oBAAoB,UAAWF,EAAS,CAC9D,EAKaG,EAAa,SACxBf,EACAN,GACG,IAAAsB,EACGC,EAA6B,WAAlBC,EAAOxB,GAAsBA,OAASyB,EACjDC,EAAgBH,EAAUA,aAAO,EAAPA,EAASG,aAAe1B,EAElDK,UAAOiB,EAAGC,aAAAA,EAAAA,EAASlB,eAAO,IAAAiB,EAAAA,EAAIrB,OAAO0B,aACrCC,EAAa,SAACrB,GAClB,OAAIgB,SAAAA,EAASK,WAAmBL,EAAQK,WAAWrB,GAC5CsB,KAAKC,UAAUvB,IAGlBS,EAAe,SAACT,GACpB,GAAIgB,SAAAA,EAASP,aAAc,OAAOO,EAAQP,aAAaT,GAEvD,GAAc,cAAVA,EAIJ,IACE,OAAOsB,KAAKE,MAAMxB,EACnB,CAAC,MAAOyB,GACP,OAAOzB,CACT,GAKI0B,EAAQC,EAAMC,qBAAqBlB,GAFrB,WAAH,OAASF,EAAsBV,EAASC,EAAKU,MACpC,WAAH,OA/BQ,SAAQU,GAA2C,OAClFA,aAAwBU,SAAWV,IAAiBA,CAAY,CA8BhCW,CAAyBX,EAAa,IAQtEY,GAA0B,iBAEVb,IADAV,EAAsBV,EAASC,EAAKU,IACtBU,IAE5BtB,EACEC,EACAC,EACAsB,EAAWF,aAAwBU,SAAWV,IAAiBA,GAEnE,GAAG,CAACpB,IAIJ,MAAO,CAAC2B,EAlBI,SAAC1B,GACX,GAAc,OAAVA,EAAgB,OAAOM,EAAkBR,EAASC,GACtDF,EAAeC,EAASC,EAAKsB,EAAWrB,KAc3B,WAAH,OAASM,EAAkBR,EAASC,EAAI,EAGtD"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import r from"react";import{useIsomorphicLayoutEffect as t}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";function u(u,o){var n=r.useState(!1),c=e(n,2),i=c[0],f=c[1],s=r.useRef(u),m=r.useRef();t((function(){s.current=u}),[u]),r.useEffect((function(){return m.current=setTimeout((function(){s.current(),f(!0)}),o),function(){clearTimeout(m.current)}}),[o]);return{ready:i,clear:function(){clearTimeout(m.current),f(!0)}}}export{u as useTimeout};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import r from"react";import{useIsomorphicLayoutEffect as t}from"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";function u(u,o){var n=r.useState(!1),c=e(n,2),i=c[0],f=c[1],s=r.useRef(u),m=r.useRef();t((function(){s.current=u}),[u]),r.useEffect((function(){return m.current=setTimeout((function(){s.current(),f(!0)}),o),function(){clearTimeout(m.current)}}),[o]);return{ready:i,clear:function(){clearTimeout(m.current),f(!0)}}}export{u as useTimeout};
3
3
  //# sourceMappingURL=useTimeout.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as r}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import e from"react";var n=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[!1,!0],t=e.useReducer((function(r,e){var n=e instanceof Function?e(r[0]):e,t=Math.abs(r.indexOf(n));return r.slice(t).concat(r.slice(0,t))}),n),o=r(t,2);return[r(o[0],1)[0],o[1]]};export{n as useToggle};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import e from"react";var n=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[!1,!0],t=e.useReducer((function(r,e){var n=e instanceof Function?e(r[0]):e,t=Math.abs(r.indexOf(n));return r.slice(t).concat(r.slice(0,t))}),n),o=r(t,2);return[r(o[0],1)[0],o[1]]};export{n as useToggle};
3
3
  //# sourceMappingURL=useToggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useToggle.js","sources":["../../../../src/hooks/useToggle/useToggle.ts"],"sourcesContent":["import React from 'react';\n\nexport type UseToggleReturn<Value> = readonly [Value, (value?: Value) => void];\n\nexport const useToggle = <Value = boolean>(values: readonly Value[] = [false, true] as any) => {\n const [[option], toggle] = React.useReducer(\n (state: Value[], action: React.SetStateAction<Value>) => {\n const value = action instanceof Function ? action(state[0]) : action;\n const index = Math.abs(state.indexOf(value));\n return state.slice(index).concat(state.slice(0, index));\n },\n values as Value[]\n );\n\n return [option, toggle as (value?: Value) => void] as const;\n};\n"],"names":["useToggle","values","arguments","length","undefined","_React$useReducer","React","useReducer","state","action","value","Function","index","Math","abs","indexOf","slice","concat","_React$useReducer2","_slicedToArray"],"mappings":";yFAIaA,EAAY,WAAsE,IAApDC,EAAwBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAG,GAAA,EAAC,GAAO,GAC5EG,EAA2BC,EAAMC,YAC/B,SAACC,EAAgBC,GACf,IAAMC,EAAQD,aAAkBE,SAAWF,EAAOD,EAAM,IAAMC,EACxDG,EAAQC,KAAKC,IAAIN,EAAMO,QAAQL,IACrC,OAAOF,EAAMQ,MAAMJ,GAAOK,OAAOT,EAAMQ,MAAM,EAAGJ,GACjD,GACDX,GACDiB,EAAAC,EAAAd,EAAA,GAED,MAAO,CAFNc,EAAAD,EAAA,GAAA,GAPa,GAASA,EAAA,GAUzB"}
1
+ {"version":3,"file":"useToggle.js","sources":["../../../../src/hooks/useToggle/useToggle.ts"],"sourcesContent":["import React from 'react';\n\n/** The use toggle return type */\nexport type UseToggleReturn<Value> = readonly [Value, (value?: Value) => void];\n\n/**\n * @name useToggle\n * @description - Hook that create toggle\n *\n * @template Value The type of the value\n * @param {Value[]} [values=[false, true]] The values to toggle\n *\n * @example\n * const [on, toggle] = useToggle();\n *\n * @example\n * const [value, toggle] = useToggle(['light', 'dark'] as const);\n */\nexport const useToggle = <Value = boolean>(values: readonly Value[] = [false, true] as any) => {\n const [[option], toggle] = React.useReducer(\n (state: Value[], action: React.SetStateAction<Value>) => {\n const value = action instanceof Function ? action(state[0]) : action;\n const index = Math.abs(state.indexOf(value));\n return state.slice(index).concat(state.slice(0, index));\n },\n values as Value[]\n );\n\n return [option, toggle as (value?: Value) => void] as const;\n};\n"],"names":["useToggle","values","arguments","length","undefined","_React$useReducer","React","useReducer","state","action","value","Function","index","Math","abs","indexOf","slice","concat","_React$useReducer2","_slicedToArray"],"mappings":";yFAkBaA,EAAY,WAAsE,IAApDC,EAAwBC,UAAAC,eAAAC,IAAAF,UAAA,GAAAA,UAAG,GAAA,EAAC,GAAO,GAC5EG,EAA2BC,EAAMC,YAC/B,SAACC,EAAgBC,GACf,IAAMC,EAAQD,aAAkBE,SAAWF,EAAOD,EAAM,IAAMC,EACxDG,EAAQC,KAAKC,IAAIN,EAAMO,QAAQL,IACrC,OAAOF,EAAMQ,MAAMJ,GAAOK,OAAOT,EAAMQ,MAAM,EAAGJ,GACjD,GACDX,GACDiB,EAAAC,EAAAd,EAAA,GAED,MAAO,CAFNc,EAAAD,EAAA,GAAA,GAPa,GAASA,EAAA,GAUzB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import r from"react";var t=function(t){var e=r.useRef(t);e.current=t,r.useEffect((function(){return function(){e.current()}}),[])};export{t as useUnmount};
3
3
  //# sourceMappingURL=useUnmount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnmount.js","sources":["../../../../src/hooks/useUnmount/useUnmount.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * @name useUnmount\n * @description - Hook that defines the logic when unmounting a component\n *\n * @param {() => void} callback The callback function to be invoked on component unmount\n * @returns {void}\n *\n * @example\n * useUnmount(() => console.log('Component unmounted'));\n */\n\nexport const useUnmount = (callback: () => void) => {\n const callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n\n React.useEffect(\n () => () => {\n callbackRef.current();\n },\n []\n );\n};\n"],"names":["useUnmount","callback","callbackRef","React","useRef","current","useEffect"],"mappings":";yBAaaA,EAAa,SAACC,GACzB,IAAMC,EAAcC,EAAMC,OAAOH,GACjCC,EAAYG,QAAUJ,EAEtBE,EAAMG,WACJ,WAAA,OAAM,WACJJ,EAAYG,UACb,GACD,GAEJ"}
1
+ {"version":3,"file":"useUnmount.js","sources":["../../../../src/hooks/useUnmount/useUnmount.ts"],"sourcesContent":["import React from 'react';\n\n/**\n * @name useUnmount\n * @description - Hook that defines the logic when unmounting a component\n *\n * @param {() => void} callback The callback function to be invoked on component unmount\n * @returns {void}\n *\n * @example\n * useUnmount(() => console.log('This effect runs on component unmount'));\n */\n\nexport const useUnmount = (callback: () => void) => {\n const callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n\n React.useEffect(\n () => () => {\n callbackRef.current();\n },\n []\n );\n};\n"],"names":["useUnmount","callback","callbackRef","React","useRef","current","useEffect"],"mappings":";yBAaaA,EAAa,SAACC,GACzB,IAAMC,EAAcC,EAAMC,OAAOH,GACjCC,EAAYG,QAAUJ,EAEtBE,EAAMG,WACJ,WAAA,OAAM,WACJJ,EAAYG,UACb,GACD,GAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  import{useEventListener as e}from"../useEventListener/useEventListener.js";import"react";var r=function(r,t,n){return e(window,r,t,n)};export{r as useWindowEvent};
3
3
  //# sourceMappingURL=useWindowEvent.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- import{_ as i}from"../../_rollupPluginBabelHelpers-8YyPIzj_.js";import{useState as n}from"react";import{isClient as e}from"../../utils/helpers/isClient.js";import{useEventListener as t}from"../useEventListener/useEventListener.js";var r=function(r){var o,l,d=n({width:e?window.innerWidth:null!==(o=null==r?void 0:r.initialWidth)&&void 0!==o?o:Number.POSITIVE_INFINITY,height:e?window.innerHeight:null!==(l=null==r?void 0:r.initialWidth)&&void 0!==l?l:Number.POSITIVE_INFINITY}),u=i(d,2),h=u[0],s=u[1];return t(window,"resize",(function(){s({width:window.innerWidth,height:window.innerHeight})})),h};export{r as useWindowSize};
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ import{_ as i}from"../../_rollupPluginBabelHelpers-Cg3Jntln.js";import{useState as n}from"react";import{isClient as e}from"../../utils/helpers/isClient.js";import{useEventListener as t}from"../useEventListener/useEventListener.js";var r=function(r){var o,l,d=n({width:e?window.innerWidth:null!==(o=null==r?void 0:r.initialWidth)&&void 0!==o?o:Number.POSITIVE_INFINITY,height:e?window.innerHeight:null!==(l=null==r?void 0:r.initialWidth)&&void 0!==l?l:Number.POSITIVE_INFINITY}),u=i(d,2),h=u[0],s=u[1];return t(window,"resize",(function(){s({width:window.innerWidth,height:window.innerHeight})})),h};export{r as useWindowSize};
3
3
  //# sourceMappingURL=useWindowSize.js.map
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- export{useBattery}from"./hooks/useBattery/useBattery.js";export{useBoolean}from"./hooks/useBoolean/useBoolean.js";export{useClickOutside}from"./hooks/useClickOutside/useClickOutside.js";export{legacyCopyToClipboard,useCopyToClipboard}from"./hooks/useCopyToClipboard/useCopyToClipboard.js";export{useCounter}from"./hooks/useCounter/useCounter.js";export{useDebouncedValue}from"./hooks/useDebouncedValue/useDebouncedValue.js";export{useDocumentTitle}from"./hooks/useDocumentTitle/useDocumentTitle.js";export{useDocumentVisibility}from"./hooks/useDocumentVisibility/useDocumentVisibility.js";export{useEventListener}from"./hooks/useEventListener/useEventListener.js";export{useHover}from"./hooks/useHover/useHover.js";export{useIsomorphicLayoutEffect}from"./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";export{useKeyPress}from"./hooks/useKeyPress/useKeyPress.js";export{useKeyPressEvent}from"./hooks/useKeyPressEvent/useKeyPressEvent.js";export{useKeysPressed}from"./hooks/useKeysPressed/useKeysPressed.js";export{useLocalStorage}from"./hooks/useLocalStorage/useLocalStorage.js";export{useMount}from"./hooks/useMount/useMount.js";export{getConnection,useNetwork}from"./hooks/useNetwork/useNetwork.js";export{useNonInitialEffect}from"./hooks/useNonInitialEffect/useNonInitialEffect.js";export{useOnline}from"./hooks/useOnline/useOnline.js";export{useOrientation}from"./hooks/useOrientation/useOrientation.js";export{useRenderCount}from"./hooks/useRenderCount/useRenderCount.js";export{useSessionStorage}from"./hooks/useSessionStorage/useSessionStorage.js";export{useStep}from"./hooks/useStep/useStep.js";export{dispatchStorageEvent,useStorage}from"./hooks/useStorage/useStorage.js";export{useTimeout}from"./hooks/useTimeout/useTimeout.js";export{useToggle}from"./hooks/useToggle/useToggle.js";export{useUnmount}from"./hooks/useUnmount/useUnmount.js";export{useWindowEvent}from"./hooks/useWindowEvent/useWindowEvent.js";export{useWindowSize}from"./hooks/useWindowSize/useWindowSize.js";import"./_rollupPluginBabelHelpers-8YyPIzj_.js";import"react";import"./utils/helpers/debounce.js";import"./utils/helpers/isClient.js";import"./hooks/useMutationObserver.js";import"./utils/helpers/isShallowEqual.js";
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ export{useBattery}from"./hooks/useBattery/useBattery.js";export{useBoolean}from"./hooks/useBoolean/useBoolean.js";export{useClickOutside}from"./hooks/useClickOutside/useClickOutside.js";export{legacyCopyToClipboard,useCopyToClipboard}from"./hooks/useCopyToClipboard/useCopyToClipboard.js";export{useCounter}from"./hooks/useCounter/useCounter.js";export{useDebouncedValue}from"./hooks/useDebouncedValue/useDebouncedValue.js";export{useDefault}from"./hooks/useDefault/useDefault.js";export{useDidUpdate}from"./hooks/useDidUpdate/useDidUpdate.js";export{useDocumentTitle}from"./hooks/useDocumentTitle/useDocumentTitle.js";export{useDocumentVisibility}from"./hooks/useDocumentVisibility/useDocumentVisibility.js";export{useEventListener}from"./hooks/useEventListener/useEventListener.js";export{useFavicon}from"./hooks/useFavicon/useFavicon.js";export{useHash}from"./hooks/useHash/useHash.js";export{useHover}from"./hooks/useHover/useHover.js";export{useIdle}from"./hooks/useIdle/useIdle.js";export{useIsomorphicLayoutEffect}from"./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";export{useKeyPress}from"./hooks/useKeyPress/useKeyPress.js";export{useKeyPressEvent}from"./hooks/useKeyPressEvent/useKeyPressEvent.js";export{useKeysPressed}from"./hooks/useKeysPressed/useKeysPressed.js";export{useLocalStorage}from"./hooks/useLocalStorage/useLocalStorage.js";export{useLogger}from"./hooks/useLogger/useLogger.js";export{useMediaQuery}from"./hooks/useMediaQuery/useMediaQuery.js";export{useMount}from"./hooks/useMount/useMount.js";export{getConnection,useNetwork}from"./hooks/useNetwork/useNetwork.js";export{useOnline}from"./hooks/useOnline/useOnline.js";export{getOperatingSystem,useOperatingSystem}from"./hooks/useOperatingSystem/useOperatingSystem.js";export{useOrientation}from"./hooks/useOrientation/useOrientation.js";export{usePrevious}from"./hooks/usePrevious/usePrevious.js";export{useRenderCount}from"./hooks/useRenderCount/useRenderCount.js";export{useRerender}from"./hooks/useRerender/useRerender.js";export{SCRIPT_STATUS_ATTRIBUTE_NAME,useScript}from"./hooks/useScript/useScript.js";export{useSessionStorage}from"./hooks/useSessionStorage/useSessionStorage.js";export{useSet}from"./hooks/useSet/useSet.js";export{useStep}from"./hooks/useStep/useStep.js";export{dispatchStorageEvent,useStorage}from"./hooks/useStorage/useStorage.js";export{useTimeout}from"./hooks/useTimeout/useTimeout.js";export{useToggle}from"./hooks/useToggle/useToggle.js";export{useUnmount}from"./hooks/useUnmount/useUnmount.js";export{useWindowEvent}from"./hooks/useWindowEvent/useWindowEvent.js";export{useWindowSize}from"./hooks/useWindowSize/useWindowSize.js";import"./_rollupPluginBabelHelpers-Cg3Jntln.js";import"react";import"./utils/helpers/debounce.js";import"./utils/helpers/isClient.js";import"./hooks/useMutationObserver.js";import"./utils/helpers/throttle.js";import"./utils/helpers/isShallowEqual.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  var r=function(r,n){var t;return function(){for(var e=arguments.length,o=new Array(e),u=0;u<e;u++)o[u]=arguments[u];clearTimeout(t),t=setTimeout((function(){return r.apply(void 0,o)}),n)}};export{r as debounce};
3
3
  //# sourceMappingURL=debounce.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
2
- export{debounce}from"./debounce.js";export{isClient}from"./isClient.js";export{isShallowEqual}from"./isShallowEqual.js";
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ export{debounce}from"./debounce.js";export{isClient}from"./isClient.js";export{isShallowEqual}from"./isShallowEqual.js";export{throttle}from"./throttle.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  var n,d,e=!("undefined"==typeof window||null===(n=window)||void 0===n||!n.document||null===(d=window)||void 0===d||null===(d=d.document)||void 0===d||!d.createElement);export{e as isClient};
3
3
  //# sourceMappingURL=isClient.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.5 */
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
2
  var r=function(r,e){var t=Object.keys(r),n=Object.keys(e);if(t.length!==n.length)return!1;for(var a=0,f=t;a<f.length;a++){var u=f[a];if(r[u]!==e[u])return!1}return!0};export{r as isShallowEqual};
3
3
  //# sourceMappingURL=isShallowEqual.js.map
@@ -0,0 +1,3 @@
1
+ /* @license @siberiacancode/reactuse v0.0.8 */
2
+ var n=function(n,t){var o=!1;return function(){o||(n.apply(void 0,arguments),o=!0,setTimeout((function(){o=!1}),t))}};export{n as throttle};
3
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sources":["../../../../src/utils/helpers/throttle.ts"],"sourcesContent":["export const throttle = <Params extends any[]>(\n callback: (...args: Params) => void,\n delay: number\n): ((...args: Params) => void) => {\n let isCalled = false;\n\n return function (...args) {\n if (!isCalled) {\n callback(...args);\n isCalled = true;\n setTimeout(function () {\n isCalled = false;\n }, delay);\n }\n };\n};\n"],"names":["throttle","callback","delay","isCalled","apply","arguments","setTimeout"],"mappings":";AAAO,IAAMA,EAAW,SACtBC,EACAC,GAEA,IAAIC,GAAW,EAEf,OAAO,WACAA,IACHF,EAAQG,WAAAC,EAAAA,WACRF,GAAW,EACXG,YAAW,WACTH,GAAW,CACZ,GAAED,IAGT"}