@siberiacancode/reactuse 0.0.40 → 0.0.42

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 (320) hide show
  1. package/dist/cjs/{_rollupPluginBabelHelpers-CCniThQb.js → _rollupPluginBabelHelpers-CLCmCKJk.js} +3 -3
  2. package/dist/cjs/_rollupPluginBabelHelpers-CLCmCKJk.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/useBattery/useBattery.js.map +1 -1
  6. package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
  7. package/dist/cjs/hooks/useBoolean/useBoolean.js.map +1 -1
  8. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  9. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js.map +1 -1
  10. package/dist/cjs/hooks/useClickOutside/useClickOutside.js +1 -1
  11. package/dist/cjs/hooks/useClickOutside/useClickOutside.js.map +1 -1
  12. package/dist/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
  13. package/dist/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js.map +1 -1
  14. package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
  15. package/dist/cjs/hooks/useCounter/useCounter.js.map +1 -1
  16. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  17. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js.map +1 -1
  18. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
  19. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js.map +1 -1
  20. package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
  21. package/dist/cjs/hooks/useDefault/useDefault.js.map +1 -1
  22. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +1 -1
  23. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js.map +1 -1
  24. package/dist/cjs/hooks/useDisclosure/useDisclosure.js +2 -2
  25. package/dist/cjs/hooks/useDisclosure/useDisclosure.js.map +1 -1
  26. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +1 -1
  27. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js.map +1 -1
  28. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  29. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js.map +1 -1
  30. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  31. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js.map +1 -1
  32. package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
  33. package/dist/cjs/hooks/useEvent/useEvent.js.map +1 -1
  34. package/dist/cjs/hooks/useEventListener/useEventListener.js +1 -1
  35. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
  36. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
  37. package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
  38. package/dist/cjs/hooks/useFavicon/useFavicon.js.map +1 -1
  39. package/dist/cjs/hooks/useField/useField.js +2 -2
  40. package/dist/cjs/hooks/useField/useField.js.map +1 -1
  41. package/dist/cjs/hooks/useFps/useFps.js +2 -2
  42. package/dist/cjs/hooks/useFps/useFps.js.map +1 -1
  43. package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
  44. package/dist/cjs/hooks/useFullscreen/useFullscreen.js.map +1 -1
  45. package/dist/cjs/hooks/useHash/useHash.js +2 -2
  46. package/dist/cjs/hooks/useHash/useHash.js.map +1 -1
  47. package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
  48. package/dist/cjs/hooks/useHotkeys/useHotkeys.js.map +1 -1
  49. package/dist/cjs/hooks/useHover/useHover.js +2 -2
  50. package/dist/cjs/hooks/useHover/useHover.js.map +1 -1
  51. package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
  52. package/dist/cjs/hooks/useIdle/useIdle.js.map +1 -1
  53. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  54. package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
  55. package/dist/cjs/hooks/useInterval/useInterval.js.map +1 -1
  56. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  57. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js.map +1 -1
  58. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  59. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js.map +1 -1
  60. package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
  61. package/dist/cjs/hooks/useKeyPress/useKeyPress.js.map +1 -1
  62. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +1 -1
  63. package/dist/cjs/hooks/useKeyboard/useKeyboard.js +1 -1
  64. package/dist/cjs/hooks/useKeyboard/useKeyboard.js.map +1 -1
  65. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
  66. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  67. package/dist/cjs/hooks/useList/useList.js +2 -2
  68. package/dist/cjs/hooks/useList/useList.js.map +1 -1
  69. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
  70. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  71. package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
  72. package/dist/cjs/hooks/useLogger/useLogger.js.map +1 -1
  73. package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
  74. package/dist/cjs/hooks/useLongPress/useLongPress.js.map +1 -1
  75. package/dist/cjs/hooks/useMap/useMap.js +2 -2
  76. package/dist/cjs/hooks/useMap/useMap.js.map +1 -1
  77. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
  78. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
  79. package/dist/cjs/hooks/useMemory/useMemory.js +3 -0
  80. package/dist/cjs/hooks/useMemory/useMemory.js.map +1 -0
  81. package/dist/cjs/hooks/useMount/useMount.js +1 -1
  82. package/dist/cjs/hooks/useMount/useMount.js.map +1 -1
  83. package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
  84. package/dist/cjs/hooks/useMouse/useMouse.js.map +1 -1
  85. package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
  86. package/dist/cjs/hooks/useMutation/useMutation.js.map +1 -1
  87. package/dist/cjs/hooks/useMutationObserver.js +1 -1
  88. package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
  89. package/dist/cjs/hooks/useNetwork/useNetwork.js.map +1 -1
  90. package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
  91. package/dist/cjs/hooks/useOnline/useOnline.js.map +1 -1
  92. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  93. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
  94. package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
  95. package/dist/cjs/hooks/useOrientation/useOrientation.js.map +1 -1
  96. package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
  97. package/dist/cjs/hooks/usePageLeave/usePageLeave.js.map +1 -1
  98. package/dist/cjs/hooks/usePaint/helpers/Paint.js +3 -0
  99. package/dist/cjs/hooks/usePaint/helpers/Paint.js.map +1 -0
  100. package/dist/cjs/hooks/usePaint/helpers/Pointer.js +3 -0
  101. package/dist/cjs/hooks/usePaint/helpers/Pointer.js.map +1 -0
  102. package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
  103. package/dist/cjs/hooks/usePaint/usePaint.js.map +1 -1
  104. package/dist/cjs/hooks/usePermission/usePermission.js +3 -0
  105. package/dist/cjs/hooks/usePermission/usePermission.js.map +1 -0
  106. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  107. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js.map +1 -1
  108. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  109. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js.map +1 -1
  110. package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
  111. package/dist/cjs/hooks/usePrevious/usePrevious.js.map +1 -1
  112. package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
  113. package/dist/cjs/hooks/useQuery/useQuery.js.map +1 -1
  114. package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
  115. package/dist/cjs/hooks/useQueue/useQueue.js.map +1 -1
  116. package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
  117. package/dist/cjs/hooks/useRenderCount/useRenderCount.js.map +1 -1
  118. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
  119. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js.map +1 -1
  120. package/dist/cjs/hooks/useRerender/useRerender.js +2 -2
  121. package/dist/cjs/hooks/useRerender/useRerender.js.map +1 -1
  122. package/dist/cjs/hooks/useScript/useScript.js +2 -2
  123. package/dist/cjs/hooks/useScript/useScript.js.map +1 -1
  124. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
  125. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js.map +1 -1
  126. package/dist/cjs/hooks/useSet/useSet.js +2 -2
  127. package/dist/cjs/hooks/useSet/useSet.js.map +1 -1
  128. package/dist/cjs/hooks/useShare/useShare.js +2 -2
  129. package/dist/cjs/hooks/useShare/useShare.js.map +1 -1
  130. package/dist/cjs/hooks/useStep/useStep.js +2 -2
  131. package/dist/cjs/hooks/useStep/useStep.js.map +1 -1
  132. package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
  133. package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
  134. package/dist/cjs/hooks/useTextSelection/useTextSelection.js.map +1 -1
  135. package/dist/cjs/hooks/useTime/useTime.js +2 -2
  136. package/dist/cjs/hooks/useTime/useTime.js.map +1 -1
  137. package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
  138. package/dist/cjs/hooks/useTimeout/useTimeout.js.map +1 -1
  139. package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
  140. package/dist/cjs/hooks/useToggle/useToggle.js.map +1 -1
  141. package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
  142. package/dist/cjs/hooks/useUnmount/useUnmount.js.map +1 -1
  143. package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
  144. package/dist/cjs/hooks/useWebSocket/useWebSocket.js.map +1 -1
  145. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +1 -1
  146. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  147. package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
  148. package/dist/cjs/hooks/useWindowSize/useWindowSize.js.map +1 -1
  149. package/dist/cjs/hooks/useWizard/useWizard.js +3 -0
  150. package/dist/cjs/hooks/useWizard/useWizard.js.map +1 -0
  151. package/dist/cjs/index.js +2 -2
  152. package/dist/cjs/utils/helpers/debounce.js +1 -1
  153. package/dist/cjs/utils/helpers/getRetry.js +1 -1
  154. package/dist/cjs/utils/helpers/index.js +1 -1
  155. package/dist/cjs/utils/helpers/isClient.js +1 -1
  156. package/dist/cjs/utils/helpers/throttle.js +1 -1
  157. package/dist/cjs/utils/helpers/time/getDate.js +1 -1
  158. package/dist/cjs/utils/types/index.js +1 -1
  159. package/dist/esm/{_rollupPluginBabelHelpers-C3RCtdrL.js → _rollupPluginBabelHelpers-BvpZjoHU.js} +3 -3
  160. package/dist/esm/_rollupPluginBabelHelpers-BvpZjoHU.js.map +1 -0
  161. package/dist/esm/hooks/index.js +2 -2
  162. package/dist/esm/hooks/useBattery/useBattery.js +2 -2
  163. package/dist/esm/hooks/useBattery/useBattery.js.map +1 -1
  164. package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
  165. package/dist/esm/hooks/useBoolean/useBoolean.js.map +1 -1
  166. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  167. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js.map +1 -1
  168. package/dist/esm/hooks/useClickOutside/useClickOutside.js +1 -1
  169. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  170. package/dist/esm/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
  171. package/dist/esm/hooks/useCopyToClipboard/useCopyToClipboard.js.map +1 -1
  172. package/dist/esm/hooks/useCounter/useCounter.js +2 -2
  173. package/dist/esm/hooks/useCounter/useCounter.js.map +1 -1
  174. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  175. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js.map +1 -1
  176. package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
  177. package/dist/esm/hooks/useDebounceValue/useDebounceValue.js.map +1 -1
  178. package/dist/esm/hooks/useDefault/useDefault.js +2 -2
  179. package/dist/esm/hooks/useDefault/useDefault.js.map +1 -1
  180. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
  181. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js.map +1 -1
  182. package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
  183. package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -1
  184. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +1 -1
  185. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js.map +1 -1
  186. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  187. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js.map +1 -1
  188. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  189. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js.map +1 -1
  190. package/dist/esm/hooks/useEvent/useEvent.js +1 -1
  191. package/dist/esm/hooks/useEvent/useEvent.js.map +1 -1
  192. package/dist/esm/hooks/useEventListener/useEventListener.js +1 -1
  193. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
  194. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
  195. package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
  196. package/dist/esm/hooks/useFavicon/useFavicon.js.map +1 -1
  197. package/dist/esm/hooks/useField/useField.js +2 -2
  198. package/dist/esm/hooks/useField/useField.js.map +1 -1
  199. package/dist/esm/hooks/useFps/useFps.js +2 -2
  200. package/dist/esm/hooks/useFps/useFps.js.map +1 -1
  201. package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
  202. package/dist/esm/hooks/useFullscreen/useFullscreen.js.map +1 -1
  203. package/dist/esm/hooks/useHash/useHash.js +2 -2
  204. package/dist/esm/hooks/useHash/useHash.js.map +1 -1
  205. package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
  206. package/dist/esm/hooks/useHotkeys/useHotkeys.js.map +1 -1
  207. package/dist/esm/hooks/useHover/useHover.js +2 -2
  208. package/dist/esm/hooks/useHover/useHover.js.map +1 -1
  209. package/dist/esm/hooks/useIdle/useIdle.js +2 -2
  210. package/dist/esm/hooks/useIdle/useIdle.js.map +1 -1
  211. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  212. package/dist/esm/hooks/useInterval/useInterval.js +2 -2
  213. package/dist/esm/hooks/useInterval/useInterval.js.map +1 -1
  214. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  215. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js.map +1 -1
  216. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  217. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js.map +1 -1
  218. package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
  219. package/dist/esm/hooks/useKeyPress/useKeyPress.js.map +1 -1
  220. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +1 -1
  221. package/dist/esm/hooks/useKeyboard/useKeyboard.js +1 -1
  222. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  223. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
  224. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  225. package/dist/esm/hooks/useList/useList.js +2 -2
  226. package/dist/esm/hooks/useList/useList.js.map +1 -1
  227. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
  228. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  229. package/dist/esm/hooks/useLogger/useLogger.js +2 -2
  230. package/dist/esm/hooks/useLogger/useLogger.js.map +1 -1
  231. package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
  232. package/dist/esm/hooks/useLongPress/useLongPress.js.map +1 -1
  233. package/dist/esm/hooks/useMap/useMap.js +2 -2
  234. package/dist/esm/hooks/useMap/useMap.js.map +1 -1
  235. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
  236. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
  237. package/dist/esm/hooks/useMemory/useMemory.js +3 -0
  238. package/dist/esm/hooks/useMemory/useMemory.js.map +1 -0
  239. package/dist/esm/hooks/useMount/useMount.js +1 -1
  240. package/dist/esm/hooks/useMount/useMount.js.map +1 -1
  241. package/dist/esm/hooks/useMouse/useMouse.js +2 -2
  242. package/dist/esm/hooks/useMouse/useMouse.js.map +1 -1
  243. package/dist/esm/hooks/useMutation/useMutation.js +2 -2
  244. package/dist/esm/hooks/useMutation/useMutation.js.map +1 -1
  245. package/dist/esm/hooks/useMutationObserver.js +1 -1
  246. package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
  247. package/dist/esm/hooks/useNetwork/useNetwork.js.map +1 -1
  248. package/dist/esm/hooks/useOnline/useOnline.js +1 -1
  249. package/dist/esm/hooks/useOnline/useOnline.js.map +1 -1
  250. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  251. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
  252. package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
  253. package/dist/esm/hooks/useOrientation/useOrientation.js.map +1 -1
  254. package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
  255. package/dist/esm/hooks/usePageLeave/usePageLeave.js.map +1 -1
  256. package/dist/esm/hooks/usePaint/helpers/Paint.js +3 -0
  257. package/dist/esm/hooks/usePaint/helpers/Paint.js.map +1 -0
  258. package/dist/esm/hooks/usePaint/helpers/Pointer.js +3 -0
  259. package/dist/esm/hooks/usePaint/helpers/Pointer.js.map +1 -0
  260. package/dist/esm/hooks/usePaint/usePaint.js +2 -2
  261. package/dist/esm/hooks/usePaint/usePaint.js.map +1 -1
  262. package/dist/esm/hooks/usePermission/usePermission.js +3 -0
  263. package/dist/esm/hooks/usePermission/usePermission.js.map +1 -0
  264. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  265. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js.map +1 -1
  266. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  267. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js.map +1 -1
  268. package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
  269. package/dist/esm/hooks/usePrevious/usePrevious.js.map +1 -1
  270. package/dist/esm/hooks/useQuery/useQuery.js +2 -2
  271. package/dist/esm/hooks/useQuery/useQuery.js.map +1 -1
  272. package/dist/esm/hooks/useQueue/useQueue.js +2 -2
  273. package/dist/esm/hooks/useQueue/useQueue.js.map +1 -1
  274. package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
  275. package/dist/esm/hooks/useRenderCount/useRenderCount.js.map +1 -1
  276. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
  277. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js.map +1 -1
  278. package/dist/esm/hooks/useRerender/useRerender.js +2 -2
  279. package/dist/esm/hooks/useRerender/useRerender.js.map +1 -1
  280. package/dist/esm/hooks/useScript/useScript.js +2 -2
  281. package/dist/esm/hooks/useScript/useScript.js.map +1 -1
  282. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
  283. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js.map +1 -1
  284. package/dist/esm/hooks/useSet/useSet.js +2 -2
  285. package/dist/esm/hooks/useSet/useSet.js.map +1 -1
  286. package/dist/esm/hooks/useShare/useShare.js +2 -2
  287. package/dist/esm/hooks/useShare/useShare.js.map +1 -1
  288. package/dist/esm/hooks/useStep/useStep.js +2 -2
  289. package/dist/esm/hooks/useStep/useStep.js.map +1 -1
  290. package/dist/esm/hooks/useStorage/useStorage.js +2 -2
  291. package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
  292. package/dist/esm/hooks/useTextSelection/useTextSelection.js.map +1 -1
  293. package/dist/esm/hooks/useTime/useTime.js +2 -2
  294. package/dist/esm/hooks/useTime/useTime.js.map +1 -1
  295. package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
  296. package/dist/esm/hooks/useTimeout/useTimeout.js.map +1 -1
  297. package/dist/esm/hooks/useToggle/useToggle.js +2 -2
  298. package/dist/esm/hooks/useToggle/useToggle.js.map +1 -1
  299. package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
  300. package/dist/esm/hooks/useUnmount/useUnmount.js.map +1 -1
  301. package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
  302. package/dist/esm/hooks/useWebSocket/useWebSocket.js.map +1 -1
  303. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +1 -1
  304. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  305. package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
  306. package/dist/esm/hooks/useWindowSize/useWindowSize.js.map +1 -1
  307. package/dist/esm/hooks/useWizard/useWizard.js +3 -0
  308. package/dist/esm/hooks/useWizard/useWizard.js.map +1 -0
  309. package/dist/esm/index.js +2 -2
  310. package/dist/esm/utils/helpers/debounce.js +1 -1
  311. package/dist/esm/utils/helpers/getRetry.js +1 -1
  312. package/dist/esm/utils/helpers/index.js +1 -1
  313. package/dist/esm/utils/helpers/isClient.js +1 -1
  314. package/dist/esm/utils/helpers/throttle.js +1 -1
  315. package/dist/esm/utils/helpers/time/getDate.js +1 -1
  316. package/dist/esm/utils/types/index.js +1 -1
  317. package/dist/index.d.ts +231 -38
  318. package/package.json +1 -1
  319. package/dist/cjs/_rollupPluginBabelHelpers-CCniThQb.js.map +0 -1
  320. package/dist/esm/_rollupPluginBabelHelpers-C3RCtdrL.js.map +0 -1
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
2
  import{useRef as n,useEffect as t}from"react";import{useEvent as e}from"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var o=function(){var o=(arguments.length<=1?void 0:arguments[1])instanceof Function?null:arguments.length<=0?void 0:arguments[0],r=o?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],i=Array.isArray(r)?r:[r],u=o?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1],c=o?arguments.length<=3?void 0:arguments[3]:arguments.length<=2?void 0:arguments[2],f=n(null),s=e(u);if(t((function(){var n=function(n){return s(n)},t=o?function(n){return"function"==typeof n?n():n instanceof Element||n instanceof Window||n instanceof Document?n:n.current}(o):f.current;if(t)return i.forEach((function(e){return t.addEventListener(e,n,c)})),function(){i.forEach((function(e){return t.removeEventListener(e,n,c)}))}}),[o,r,c]),!o)return f};export{o as useEventListener};
3
3
  //# sourceMappingURL=useEventListener.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as r,b as e,c as n}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as t}from"react";import{isClient as o}from"../../utils/helpers/isClient.js";var p=function(){var p=!!o&&"EyeDropper"in window,i=t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0),s=r(i,2),a=s[0],u=s[1],c=function(){var r=e(n().mark((function r(e){var t,o;return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(window.EyeDropper){r.next=2;break}throw new Error("EyeDropper is not supported");case 2:return t=new window.EyeDropper,r.next=5,t.open(e);case 5:return o=r.sent,u(o.sRGBHex),r.abrupt("return",o);case 8:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}();return{supported:p,value:a,open:c}};export{p as useEyeDropper};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as r,c as e,d as n}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as t}from"react";import{isClient as o}from"../../utils/helpers/isClient.js";var p=function(){var p=!!o&&"EyeDropper"in window,i=t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0),s=r(i,2),a=s[0],u=s[1],c=function(){var r=e(n().mark((function r(e){var t,o;return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(window.EyeDropper){r.next=2;break}throw new Error("EyeDropper is not supported");case 2:return t=new window.EyeDropper,r.next=5,t.open(e);case 5:return o=r.sent,u(o.sRGBHex),r.abrupt("return",o);case 8:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}();return{supported:p,value:a,open:c}};export{p as useEyeDropper};
3
3
  //# sourceMappingURL=useEyeDropper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEyeDropper.js","sources":["../../../../src/hooks/useEyeDropper/useEyeDropper.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { isClient } from '@/utils/helpers';\nimport type {\n ColorSelectionOptions,\n ColorSelectionResult,\n EyeDropperConstructor\n} from '@/utils/types';\n\ndeclare global {\n interface Window {\n EyeDropper?: EyeDropperConstructor | undefined;\n }\n}\n\n/** The color selection return type */\nexport interface UseEyeDropperReturn {\n supported: boolean;\n value?: string;\n open: (colorSelectionOptions?: ColorSelectionOptions) => Promise<ColorSelectionResult>;\n}\n\n/**\n * @name useEyeDropper\n * @description - Hook that gives you access to the eye dropper\n *\n * @param {string} [initialValue=undefined] The initial value for the eye dropper\n * @returns {UseEyeDropperReturn} An object containing the supported status, the value and the open method\n *\n * @example\n * const { supported, value, open } = useEyeDropper();\n */\nexport const useEyeDropper = (\n initialValue: string | undefined = undefined\n): UseEyeDropperReturn => {\n const supported = isClient ? 'EyeDropper' in window : false;\n const [value, setValue] = useState(initialValue);\n\n const open = async (colorSelectionOptions?: ColorSelectionOptions) => {\n if (!window.EyeDropper) throw new Error('EyeDropper is not supported');\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(colorSelectionOptions);\n setValue(result.sRGBHex);\n return result;\n };\n\n return {\n supported,\n value,\n open\n };\n};\n"],"names":["useEyeDropper","supported","isClient","window","_useState","useState","arguments","length","undefined","_useState2","_slicedToArray","value","setValue","open","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","colorSelectionOptions","eyeDropper","result","wrap","_context","prev","next","EyeDropper","Error","sent","sRGBHex","abrupt","stop","_x","apply","this"],"mappings":";8KAgCaA,EAAgB,WAEH,IAClBC,IAAYC,GAAW,eAAgBC,OAC7CC,EAA0BC,EAHMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,QAAGE,GAGaC,EAAAC,EAAAN,EAAA,GAAzCO,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEhBI,EAAI,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,EAAOC,GAA6C,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GAC1DtB,OAAOuB,WAAU,CAAAH,EAAAE,KAAA,EAAA,KAAA,CAAA,MAAQ,IAAIE,MAAM,+BAA8B,KAAA,EAC5B,OAApCP,EAAa,IAAIjB,OAAOuB,WAAYH,EAAAE,KAAA,EACrBL,EAAWP,KAAKM,GAAsB,KAAA,EAClC,OADnBE,EAAME,EAAAK,KACZhB,EAASS,EAAOQ,SAASN,EAAAO,OAAA,SAClBT,GAAM,KAAA,EAAA,IAAA,MAAA,OAAAE,EAAAQ,OAAA,GAAAb,EACd,KAAA,OANKL,SAAImB,GAAA,OAAAlB,EAAAmB,MAAAC,KAAA5B,UAAA,EAAA,GAQV,MAAO,CACLL,UAAAA,EACAU,MAAAA,EACAE,KAAAA,EAEJ"}
1
+ {"version":3,"file":"useEyeDropper.js","sources":["../../../../src/hooks/useEyeDropper/useEyeDropper.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { isClient } from '@/utils/helpers';\nimport type {\n ColorSelectionOptions,\n ColorSelectionResult,\n EyeDropperConstructor\n} from '@/utils/types';\n\ndeclare global {\n interface Window {\n readonly EyeDropper?: EyeDropperConstructor | undefined;\n }\n}\n\n/** The color selection return type */\nexport interface UseEyeDropperReturn {\n supported: boolean;\n value?: string;\n open: (colorSelectionOptions?: ColorSelectionOptions) => Promise<ColorSelectionResult>;\n}\n\n/**\n * @name useEyeDropper\n * @description - Hook that gives you access to the eye dropper\n * @category Browser\n *\n * @param {string} [initialValue=undefined] The initial value for the eye dropper\n * @returns {UseEyeDropperReturn} An object containing the supported status, the value and the open method\n *\n * @example\n * const { supported, value, open } = useEyeDropper();\n */\nexport const useEyeDropper = (\n initialValue: string | undefined = undefined\n): UseEyeDropperReturn => {\n const supported = isClient ? 'EyeDropper' in window : false;\n const [value, setValue] = useState(initialValue);\n\n const open = async (colorSelectionOptions?: ColorSelectionOptions) => {\n if (!window.EyeDropper) throw new Error('EyeDropper is not supported');\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(colorSelectionOptions);\n setValue(result.sRGBHex);\n return result;\n };\n\n return {\n supported,\n value,\n open\n };\n};\n"],"names":["useEyeDropper","supported","isClient","window","_useState","useState","arguments","length","undefined","_useState2","_slicedToArray","value","setValue","open","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","colorSelectionOptions","eyeDropper","result","wrap","_context","prev","next","EyeDropper","Error","sent","sRGBHex","abrupt","stop","_x","apply","this"],"mappings":";8KAiCaA,EAAgB,WAEH,IAClBC,IAAYC,GAAW,eAAgBC,OAC7CC,EAA0BC,EAHMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,QAAGE,GAGaC,EAAAC,EAAAN,EAAA,GAAzCO,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEhBI,EAAI,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,EAAOC,GAA6C,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GAC1DtB,OAAOuB,WAAU,CAAAH,EAAAE,KAAA,EAAA,KAAA,CAAA,MAAQ,IAAIE,MAAM,+BAA8B,KAAA,EAC5B,OAApCP,EAAa,IAAIjB,OAAOuB,WAAYH,EAAAE,KAAA,EACrBL,EAAWP,KAAKM,GAAsB,KAAA,EAClC,OADnBE,EAAME,EAAAK,KACZhB,EAASS,EAAOQ,SAASN,EAAAO,OAAA,SAClBT,GAAM,KAAA,EAAA,IAAA,MAAA,OAAAE,EAAAQ,OAAA,GAAAb,EACd,KAAA,OANKL,SAAImB,GAAA,OAAAlB,EAAAmB,MAAAC,KAAA5B,UAAA,EAAA,GAQV,MAAO,CACLL,UAAAA,EACAU,MAAAA,EACAE,KAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as o}from"react";import{useDidUpdate as t}from"../useDidUpdate/useDidUpdate.js";import{useMount as r}from"../useMount/useMount.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var n=function(n){var i,u=o(null!=n?n:null===(i=document.querySelector('link[rel*="icon"]'))||void 0===i?void 0:i.href),c=e(u,2),l=c[0],p=c[1],s=function(e){var o=document.querySelector('link[rel*="icon"]')||document.createElement("link");o.rel="icon",o.href=e,o.type="image/".concat(e.split(".").pop()),document.head.append(o)};return r((function(){n&&s(n)})),t((function(){n&&(p(n),s(n))}),[n]),{href:l,set:function(e){p(e),s(e)}}};export{n as useFavicon};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as o}from"react";import{useDidUpdate as t}from"../useDidUpdate/useDidUpdate.js";import{useMount as r}from"../useMount/useMount.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var n=function(n){var i,u=o(null!=n?n:null===(i=document.querySelector('link[rel*="icon"]'))||void 0===i?void 0:i.href),c=e(u,2),l=c[0],p=c[1],s=function(e){var o=document.querySelector('link[rel*="icon"]')||document.createElement("link");o.rel="icon",o.href=e,o.type="image/".concat(e.split(".").pop()),document.head.append(o)};return r((function(){n&&s(n)})),t((function(){n&&(p(n),s(n))}),[n]),{href:l,set:function(e){p(e),s(e)}}};export{n as useFavicon};
3
3
  //# sourceMappingURL=useFavicon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFavicon.js","sources":["../../../../src/hooks/useFavicon/useFavicon.ts"],"sourcesContent":["import type { Dispatch, SetStateAction } from 'react';\nimport { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/** The use favicon return type */\nexport type UseFaviconReturn = [string, Dispatch<SetStateAction<string>>];\n\n/**\n * @name useFavicon\n * @description - Hook that manages the favicon\n *\n * @param {string} [initialFavicon] The initial favicon. If not provided, the current favicon will be used\n * @returns {UseFaviconReturn} An array containing the current favicon and a function to update the favicon\n *\n * @example\n * const { href, set } = useFavicon('https://www.google.com/favicon.ico');\n */\nexport const useFavicon = (initialHref?: string) => {\n const [href, setHref] = useState(\n initialHref ?? document.querySelector<HTMLLinkElement>(`link[rel*=\"icon\"]`)?.href\n );\n\n const injectFavicon = (favicon: string) => {\n const link =\n document.querySelector<HTMLLinkElement>(`link[rel*=\"icon\"]`) ||\n document.createElement('link');\n link.rel = 'icon';\n link.href = favicon;\n link.type = `image/${favicon.split('.').pop()}`;\n document.head.append(link);\n };\n\n const set = (favicon: string) => {\n setHref(favicon);\n injectFavicon(favicon);\n };\n\n useMount(() => {\n if (!initialHref) return;\n injectFavicon(initialHref);\n });\n\n useDidUpdate(() => {\n if (!initialHref) return;\n setHref(initialHref);\n injectFavicon(initialHref);\n }, [initialHref]);\n\n return { href, set } as const;\n};\n"],"names":["useFavicon","initialHref","_document$querySelect","_useState","useState","document","querySelector","href","_useState2","_slicedToArray","setHref","injectFavicon","favicon","link","createElement","rel","type","concat","split","pop","head","append","useMount","useDidUpdate","set"],"mappings":";iUAmBaA,EAAa,SAACC,GAAyB,IAAAC,EAClDC,EAAwBC,EACtBH,QAAAA,EAA2E,QAAhEC,EAAIG,SAASC,cAAa,4BAAtBJ,IAA4DA,OAA5DA,EAAAA,EAA8DK,MAC9EC,EAAAC,EAAAN,EAAA,GAFMI,EAAIC,EAAA,GAAEE,EAAOF,EAAA,GAIdG,EAAgB,SAACC,GACrB,IAAMC,EACJR,SAASC,cAAa,sBACtBD,SAASS,cAAc,QACzBD,EAAKE,IAAM,OACXF,EAAKN,KAAOK,EACZC,EAAKG,KAAIC,SAAAA,OAAYL,EAAQM,MAAM,KAAKC,OACxCd,SAASe,KAAKC,OAAOR,IAmBvB,OAXAS,GAAS,WACFrB,GACLU,EAAcV,EAChB,IAEAsB,GAAa,WACNtB,IACLS,EAAQT,GACRU,EAAcV,GAChB,GAAG,CAACA,IAEG,CAAEM,KAAAA,EAAMiB,IAhBH,SAACZ,GACXF,EAAQE,GACRD,EAAcC,IAelB"}
1
+ {"version":3,"file":"useFavicon.js","sources":["../../../../src/hooks/useFavicon/useFavicon.ts"],"sourcesContent":["import type { Dispatch, SetStateAction } from 'react';\nimport { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/** The use favicon return type */\nexport type UseFaviconReturn = [string, Dispatch<SetStateAction<string>>];\n\n/**\n * @name useFavicon\n * @description - Hook that manages the favicon\n * @category Browser\n *\n * @param {string} [initialFavicon] The initial favicon. If not provided, the current favicon will be used\n * @returns {UseFaviconReturn} An array containing the current favicon and a function to update the favicon\n *\n * @example\n * const { href, set } = useFavicon('https://www.google.com/favicon.ico');\n */\nexport const useFavicon = (initialHref?: string) => {\n const [href, setHref] = useState(\n initialHref ?? document.querySelector<HTMLLinkElement>(`link[rel*=\"icon\"]`)?.href\n );\n\n const injectFavicon = (favicon: string) => {\n const link =\n document.querySelector<HTMLLinkElement>(`link[rel*=\"icon\"]`) ||\n document.createElement('link');\n link.rel = 'icon';\n link.href = favicon;\n link.type = `image/${favicon.split('.').pop()}`;\n document.head.append(link);\n };\n\n const set = (favicon: string) => {\n setHref(favicon);\n injectFavicon(favicon);\n };\n\n useMount(() => {\n if (!initialHref) return;\n injectFavicon(initialHref);\n });\n\n useDidUpdate(() => {\n if (!initialHref) return;\n setHref(initialHref);\n injectFavicon(initialHref);\n }, [initialHref]);\n\n return { href, set } as const;\n};\n"],"names":["useFavicon","initialHref","_document$querySelect","_useState","useState","document","querySelector","href","_useState2","_slicedToArray","setHref","injectFavicon","favicon","link","createElement","rel","type","concat","split","pop","head","append","useMount","useDidUpdate","set"],"mappings":";iUAoBaA,EAAa,SAACC,GAAyB,IAAAC,EAClDC,EAAwBC,EACtBH,QAAAA,EAA2E,QAAhEC,EAAIG,SAASC,cAAa,4BAAtBJ,IAA4DA,OAA5DA,EAAAA,EAA8DK,MAC9EC,EAAAC,EAAAN,EAAA,GAFMI,EAAIC,EAAA,GAAEE,EAAOF,EAAA,GAIdG,EAAgB,SAACC,GACrB,IAAMC,EACJR,SAASC,cAAa,sBACtBD,SAASS,cAAc,QACzBD,EAAKE,IAAM,OACXF,EAAKN,KAAOK,EACZC,EAAKG,KAAIC,SAAAA,OAAYL,EAAQM,MAAM,KAAKC,OACxCd,SAASe,KAAKC,OAAOR,IAmBvB,OAXAS,GAAS,WACFrB,GACLU,EAAcV,EAChB,IAEAsB,GAAa,WACNtB,IACLS,EAAQT,GACRU,EAAcV,GAChB,GAAG,CAACA,IAEG,CAAEM,KAAAA,EAAMiB,IAhBH,SAACZ,GACXF,EAAQE,GACRD,EAAcC,IAelB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e,b as r,c as n}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useRef as t,useState as u}from"react";import{useRerender as a}from"../useRerender/useRerender.js";var i=function(i){var l,c,o=null!==(l=null==i?void 0:i.initialValue)&&void 0!==l?l:"",v=t(),d=t(!1),f=a(),s=u(!1),p=e(s,2),m=p[0],h=p[1],g=u(null!==(c=null==i?void 0:i.initialTouched)&&void 0!==c&&c),x=e(g,2),k=x[0],b=x[1],y=u(void 0),L=e(y,2),V=L[0],w=L[1],B=function(){var e,r,n,t;return"radio"===(null===(e=v.current)||void 0===e?void 0:e.type)||"checkbox"===(null===(r=v.current)||void 0===r?void 0:r.type)?v.current.checked:null!==(n=null===(t=v.current)||void 0===t?void 0:t.value)&&void 0!==n?n:o},C=function(e){var r,n;"radio"!==(null===(r=v.current)||void 0===r?void 0:r.type)&&"checkbox"!==(null===(n=v.current)||void 0===n?void 0:n.type)?v.current.value=e:v.current.checked=e},O=function(e){if(e.required&&!v.current.value)return w(e.required);if(e.minLength&&v.current.value.length<e.minLength.value)return w(e.minLength.message);if(e.maxLength&&v.current.value.length>e.maxLength.value)return w(e.maxLength.message);if(e.min&&Number(v.current.value)<e.min.value)return w(e.min.message);if(e.max&&Number(v.current.value)>e.max.value)return w(e.max.message);if(e.pattern&&!e.pattern.value.test(v.current.value))return w(e.pattern.message);if(e.validate){var r=e.validate(v.current.value);if("string"==typeof r)return w(r)}w(void 0)};return{register:function(e){return{ref:function(r){if(!v.current&&r){if(null!=i&&i.autoFocus&&r.focus(),v.current=r,"radio"===v.current.type)return void(v.current.defaultChecked=(null==i?void 0:i.initialValue)===r.value);if("checkbox"===v.current.type)return void(v.current.defaultChecked=!(null==i||!i.initialValue));v.current.defaultValue=String(o),e&&null!=i&&i.validateOnMount&&O(e)}},onChange:(u=r(n().mark((function r(){return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!d.current){r.next=2;break}return r.abrupt("return",f.update());case 2:if(v.current.value!==o&&h(!0),m&&v.current.value===o&&h(!1),!e||null==i||!i.validateOnChange){r.next=7;break}return r.next=7,O(e);case 7:e&&null!=i&&i.validateOnBlur&&w(void 0);case 8:case"end":return r.stop()}}),r)}))),function(){return u.apply(this,arguments)}),onBlur:(t=r(n().mark((function r(){return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!e||null==i||!i.validateOnBlur){r.next=3;break}return r.next=3,O(e);case 3:b(!0);case 4:case"end":return r.stop()}}),r)}))),function(){return t.apply(this,arguments)})};var t,u},dirty:m,touched:k,error:V,setError:w,clearError:function(){return w(void 0)},getValue:B,setValue:C,reset:function(){C(o),h(!1),b(!1),w(void 0)},watch:function(){return d.current=!0,B()},focus:function(){v.current.focus()}}};export{i as useField};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e,c as r,d as n}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useRef as t,useState as u}from"react";import{useRerender as a}from"../useRerender/useRerender.js";var i=function(i){var l,c,o=null!==(l=null==i?void 0:i.initialValue)&&void 0!==l?l:"",v=t(),d=t(!1),f=a(),s=u(!1),p=e(s,2),m=p[0],h=p[1],g=u(null!==(c=null==i?void 0:i.initialTouched)&&void 0!==c&&c),x=e(g,2),k=x[0],b=x[1],y=u(void 0),L=e(y,2),V=L[0],w=L[1],B=function(){var e,r,n,t;return"radio"===(null===(e=v.current)||void 0===e?void 0:e.type)||"checkbox"===(null===(r=v.current)||void 0===r?void 0:r.type)?v.current.checked:null!==(n=null===(t=v.current)||void 0===t?void 0:t.value)&&void 0!==n?n:o},C=function(e){var r,n;return"radio"===(null===(r=v.current)||void 0===r?void 0:r.type)||"checkbox"===(null===(n=v.current)||void 0===n?void 0:n.type)?(v.current.checked=e,d.current?f.update():void 0):(v.current.value=e,d.current?f.update():void 0)},O=function(e){if(e.required&&!v.current.value)return w(e.required);if(e.minLength&&v.current.value.length<e.minLength.value)return w(e.minLength.message);if(e.maxLength&&v.current.value.length>e.maxLength.value)return w(e.maxLength.message);if(e.min&&Number(v.current.value)<e.min.value)return w(e.min.message);if(e.max&&Number(v.current.value)>e.max.value)return w(e.max.message);if(e.pattern&&!e.pattern.value.test(v.current.value))return w(e.pattern.message);if(e.validate){var r=e.validate(v.current.value);if("string"==typeof r)return w(r)}w(void 0)};return{register:function(e){return{ref:function(r){if(!v.current&&r){if(null!=i&&i.autoFocus&&r.focus(),v.current=r,"radio"===v.current.type)return void(v.current.defaultChecked=(null==i?void 0:i.initialValue)===r.value);if("checkbox"===v.current.type)return void(v.current.defaultChecked=!(null==i||!i.initialValue));v.current.defaultValue=String(o),e&&null!=i&&i.validateOnMount&&O(e)}},onChange:(u=r(n().mark((function r(){return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!d.current){r.next=2;break}return r.abrupt("return",f.update());case 2:if(v.current.value!==o&&h(!0),m&&v.current.value===o&&h(!1),!e||null==i||!i.validateOnChange){r.next=7;break}return r.next=7,O(e);case 7:e&&null!=i&&i.validateOnBlur&&w(void 0);case 8:case"end":return r.stop()}}),r)}))),function(){return u.apply(this,arguments)}),onBlur:(t=r(n().mark((function r(){return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!e||null==i||!i.validateOnBlur){r.next=3;break}return r.next=3,O(e);case 3:b(!0);case 4:case"end":return r.stop()}}),r)}))),function(){return t.apply(this,arguments)})};var t,u},dirty:m,touched:k,error:V,setError:w,clearError:function(){return w(void 0)},getValue:B,setValue:C,reset:function(){C(o),h(!1),b(!1),w(void 0)},watch:function(){return d.current=!0,B()},focus:function(){v.current.focus()}}};export{i as useField};
3
3
  //# sourceMappingURL=useField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useField.js","sources":["../../../../src/hooks/useField/useField.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use field params */\nexport interface UseFieldParams<Value> {\n /** The initial value */\n initialValue?: Value;\n /** The initial touched */\n initialTouched?: boolean;\n /** The auto focus */\n autoFocus?: boolean;\n /** The validate on mount */\n validateOnChange?: boolean;\n /** The validate on blur */\n validateOnBlur?: boolean;\n /** The validate on mount */\n validateOnMount?: boolean;\n}\n\n/** The use field register params */\nexport interface UseFieldRegisterParams {\n /** The required validation */\n required?: string;\n /** The min value validation */\n max?: {\n value: number;\n message: string;\n };\n /** The max value validation */\n min?: {\n value: number;\n message: string;\n };\n /** The max length validation */\n maxLength?: {\n value: number;\n message: string;\n };\n /** The min length validation */\n minLength?: {\n value: number;\n message: string;\n };\n /** The pattern validation */\n pattern?: {\n value: RegExp;\n message: string;\n };\n /** The custom validation */\n validate?: (value: string) => Promise<string | true>;\n}\n\n/** The use field return type */\nexport interface UseFieldReturn<Value> {\n /** The register function */\n register: (params?: UseFieldRegisterParams) => {\n onBlur: () => void;\n onChange: () => void;\n ref: (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => void;\n };\n /** The get value function */\n getValue: () => Value;\n /** The set value function */\n setValue: (value: Value) => void;\n /** The dirty state */\n dirty: boolean;\n /** The error state */\n error?: string;\n /** The set error function */\n touched: boolean;\n /** The focus function */\n focus: () => void;\n /** The watch function */\n watch: () => Value;\n /** The reset function */\n reset: () => void;\n /** The set error function */\n setError: (error: string) => void;\n /** The set error function */\n clearError: () => void;\n}\n\n/**\n * @name UseField\n * @description - Hook to manage a form field\n *\n * @template Value The input value\n * @template Type The input value type\n * @param {Value} [params.initialValue] Initial value\n * @param {boolean} [params.initialTouched=false] Initial touched state\n * @param {boolean} [params.autoFocus=false] Auto focus\n * @param {boolean} [params.validateOnChange=false] Validate on change\n * @param {boolean} [params.validateOnBlur=false] Validate on blur\n * @param {boolean} [params.validateOnMount=false] Validate on mount\n * @returns {UseFieldReturn<Value>} An object containing input information\n *\n * @example\n * const { register, getValue, setValue, reset, dirty, error, setError, clearError, touched, focus, watch } = useField();\n */\nexport const useField = <\n Value extends string | boolean = string,\n Type = Value extends string ? string : boolean\n>(\n params?: UseFieldParams<Value>\n): UseFieldReturn<Type> => {\n const initialValue = (params?.initialValue ?? '') as Value;\n\n const inputRef = useRef<HTMLInputElement>();\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const [dirty, setDirty] = useState(false);\n const [touched, setTouched] = useState(params?.initialTouched ?? false);\n const [error, setError] = useState<string | undefined>(undefined);\n\n const getValue = () => {\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox')\n return inputRef.current.checked as Type;\n return (inputRef.current?.value ?? initialValue) as Type;\n };\n\n const setValue = (value: Type) => {\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox') {\n inputRef.current.checked = value as boolean;\n return;\n }\n\n inputRef.current!.value = value as string;\n };\n\n const reset = () => {\n setValue(initialValue as unknown as Type);\n setDirty(false);\n setTouched(false);\n setError(undefined);\n };\n\n const focus = () => {\n inputRef.current!.focus();\n };\n\n const validate = (params: UseFieldRegisterParams) => {\n if (params.required && !inputRef.current!.value) {\n return setError(params.required);\n }\n\n if (params.minLength && inputRef.current!.value.length < params.minLength.value) {\n return setError(params.minLength.message);\n }\n\n if (params.maxLength && inputRef.current!.value.length > params.maxLength.value) {\n return setError(params.maxLength.message);\n }\n\n if (params.min && Number(inputRef.current!.value) < params.min.value) {\n return setError(params.min.message);\n }\n\n if (params.max && Number(inputRef.current!.value) > params.max.value) {\n return setError(params.max.message);\n }\n\n if (params.pattern && !params.pattern.value.test(inputRef.current!.value)) {\n return setError(params.pattern.message);\n }\n\n if (params.validate) {\n const error = params.validate(inputRef.current!.value);\n if (typeof error === 'string') return setError(error);\n }\n\n setError(undefined);\n };\n\n const register = (registerParams?: UseFieldRegisterParams) => ({\n ref: (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => {\n if (!inputRef.current && node) {\n if (params?.autoFocus) node.focus();\n inputRef.current = node as HTMLInputElement;\n if (inputRef.current.type === 'radio') {\n inputRef.current.defaultChecked = params?.initialValue === node.value;\n return;\n }\n if (inputRef.current.type === 'checkbox') {\n inputRef.current.defaultChecked = !!params?.initialValue;\n return;\n }\n inputRef.current.defaultValue = String(initialValue);\n\n if (registerParams && params?.validateOnMount) validate(registerParams);\n }\n },\n onChange: async () => {\n if (watchingRef.current) return rerender.update();\n if (inputRef.current!.value !== initialValue) setDirty(true);\n if (dirty && inputRef.current!.value === initialValue) setDirty(false);\n if (registerParams && params?.validateOnChange) await validate(registerParams);\n if (registerParams && params?.validateOnBlur) setError(undefined);\n },\n onBlur: async () => {\n if (registerParams && params?.validateOnBlur) await validate(registerParams);\n setTouched(true);\n }\n });\n\n const watch = () => {\n watchingRef.current = true;\n return getValue();\n };\n\n const clearError = () => setError(undefined);\n\n return {\n register,\n dirty,\n touched,\n error,\n setError,\n clearError,\n getValue,\n setValue,\n reset,\n watch,\n focus\n };\n};\n"],"names":["useField","params","_params$initialValue","_params$initialTouche","initialValue","inputRef","useRef","watchingRef","rerender","useRerender","_useState","useState","_useState2","_slicedToArray","dirty","setDirty","_useState3","initialTouched","_useState4","touched","setTouched","_useState5","undefined","_useState6","error","setError","getValue","_inputRef$current","_inputRef$current2","_inputRef$current$val","_inputRef$current3","current","type","checked","value","setValue","_inputRef$current4","_inputRef$current5","validate","required","minLength","length","message","maxLength","min","Number","max","pattern","test","register","registerParams","ref","node","autoFocus","focus","defaultChecked","defaultValue","String","validateOnMount","onChange","_onChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","update","validateOnChange","validateOnBlur","stop","apply","this","arguments","onBlur","_onBlur","_callee2","_context2","clearError","reset","watch"],"mappings":"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"}
1
+ {"version":3,"file":"useField.js","sources":["../../../../src/hooks/useField/useField.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use field params */\nexport interface UseFieldParams<Value> {\n /** The initial value */\n initialValue?: Value;\n /** The initial touched */\n initialTouched?: boolean;\n /** The auto focus */\n autoFocus?: boolean;\n /** The validate on mount */\n validateOnChange?: boolean;\n /** The validate on blur */\n validateOnBlur?: boolean;\n /** The validate on mount */\n validateOnMount?: boolean;\n}\n\n/** The use field register params */\nexport interface UseFieldRegisterParams {\n /** The required validation */\n required?: string;\n /** The min value validation */\n max?: {\n value: number;\n message: string;\n };\n /** The max value validation */\n min?: {\n value: number;\n message: string;\n };\n /** The max length validation */\n maxLength?: {\n value: number;\n message: string;\n };\n /** The min length validation */\n minLength?: {\n value: number;\n message: string;\n };\n /** The pattern validation */\n pattern?: {\n value: RegExp;\n message: string;\n };\n /** The custom validation */\n validate?: (value: string) => Promise<string | true>;\n}\n\n/** The use field return type */\nexport interface UseFieldReturn<Value> {\n /** The register function */\n register: (params?: UseFieldRegisterParams) => {\n onBlur: () => void;\n onChange: () => void;\n ref: (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => void;\n };\n /** The get value function */\n getValue: () => Value;\n /** The set value function */\n setValue: (value: Value) => void;\n /** The dirty state */\n dirty: boolean;\n /** The error state */\n error?: string;\n /** The set error function */\n touched: boolean;\n /** The focus function */\n focus: () => void;\n /** The watch function */\n watch: () => Value;\n /** The reset function */\n reset: () => void;\n /** The set error function */\n setError: (error: string) => void;\n /** The set error function */\n clearError: () => void;\n}\n\n/**\n * @name useField\n * @description - Hook to manage a form field\n * @category Utilities\n *\n * @template Value The input value\n * @template Type The input value type\n * @param {Value} [params.initialValue] Initial value\n * @param {boolean} [params.initialTouched=false] Initial touched state\n * @param {boolean} [params.autoFocus=false] Auto focus\n * @param {boolean} [params.validateOnChange=false] Validate on change\n * @param {boolean} [params.validateOnBlur=false] Validate on blur\n * @param {boolean} [params.validateOnMount=false] Validate on mount\n * @returns {UseFieldReturn<Value>} An object containing input information\n *\n * @example\n * const { register, getValue, setValue, reset, dirty, error, setError, clearError, touched, focus, watch } = useField();\n */\nexport const useField = <\n Value extends string | boolean = string,\n Type = Value extends string ? string : boolean\n>(\n params?: UseFieldParams<Value>\n): UseFieldReturn<Type> => {\n const initialValue = (params?.initialValue ?? '') as Value;\n\n const inputRef = useRef<HTMLInputElement>();\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const [dirty, setDirty] = useState(false);\n const [touched, setTouched] = useState(params?.initialTouched ?? false);\n const [error, setError] = useState<string | undefined>(undefined);\n\n const getValue = () => {\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox')\n return inputRef.current.checked as Type;\n return (inputRef.current?.value ?? initialValue) as Type;\n };\n\n const setValue = (value: Type) => {\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox') {\n inputRef.current.checked = value as boolean;\n if (watchingRef.current) return rerender.update();\n return;\n }\n\n inputRef.current!.value = value as string;\n if (watchingRef.current) return rerender.update();\n };\n\n const reset = () => {\n setValue(initialValue as unknown as Type);\n setDirty(false);\n setTouched(false);\n setError(undefined);\n };\n\n const focus = () => {\n inputRef.current!.focus();\n };\n\n const validate = (params: UseFieldRegisterParams) => {\n if (params.required && !inputRef.current!.value) {\n return setError(params.required);\n }\n\n if (params.minLength && inputRef.current!.value.length < params.minLength.value) {\n return setError(params.minLength.message);\n }\n\n if (params.maxLength && inputRef.current!.value.length > params.maxLength.value) {\n return setError(params.maxLength.message);\n }\n\n if (params.min && Number(inputRef.current!.value) < params.min.value) {\n return setError(params.min.message);\n }\n\n if (params.max && Number(inputRef.current!.value) > params.max.value) {\n return setError(params.max.message);\n }\n\n if (params.pattern && !params.pattern.value.test(inputRef.current!.value)) {\n return setError(params.pattern.message);\n }\n\n if (params.validate) {\n const error = params.validate(inputRef.current!.value);\n if (typeof error === 'string') return setError(error);\n }\n\n setError(undefined);\n };\n\n const register = (registerParams?: UseFieldRegisterParams) => ({\n ref: (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => {\n if (!inputRef.current && node) {\n if (params?.autoFocus) node.focus();\n inputRef.current = node as HTMLInputElement;\n if (inputRef.current.type === 'radio') {\n inputRef.current.defaultChecked = params?.initialValue === node.value;\n return;\n }\n if (inputRef.current.type === 'checkbox') {\n inputRef.current.defaultChecked = !!params?.initialValue;\n return;\n }\n inputRef.current.defaultValue = String(initialValue);\n\n if (registerParams && params?.validateOnMount) validate(registerParams);\n }\n },\n onChange: async () => {\n if (watchingRef.current) return rerender.update();\n if (inputRef.current!.value !== initialValue) setDirty(true);\n if (dirty && inputRef.current!.value === initialValue) setDirty(false);\n if (registerParams && params?.validateOnChange) await validate(registerParams);\n if (registerParams && params?.validateOnBlur) setError(undefined);\n },\n onBlur: async () => {\n if (registerParams && params?.validateOnBlur) await validate(registerParams);\n setTouched(true);\n }\n });\n\n const watch = () => {\n watchingRef.current = true;\n return getValue();\n };\n\n const clearError = () => setError(undefined);\n\n return {\n register,\n dirty,\n touched,\n error,\n setError,\n clearError,\n getValue,\n setValue,\n reset,\n watch,\n focus\n };\n};\n"],"names":["useField","params","_params$initialValue","_params$initialTouche","initialValue","inputRef","useRef","watchingRef","rerender","useRerender","_useState","useState","_useState2","_slicedToArray","dirty","setDirty","_useState3","initialTouched","_useState4","touched","setTouched","_useState5","undefined","_useState6","error","setError","getValue","_inputRef$current","_inputRef$current2","_inputRef$current$val","_inputRef$current3","current","type","checked","value","setValue","_inputRef$current4","_inputRef$current5","update","validate","required","minLength","length","message","maxLength","min","Number","max","pattern","test","register","registerParams","ref","node","autoFocus","focus","defaultChecked","defaultValue","String","validateOnMount","onChange","_onChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","validateOnChange","validateOnBlur","stop","apply","this","arguments","onBlur","_onBlur","_callee2","_context2","clearError","reset","watch"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as r}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as n,useEffect as e}from"react";var a=function(){var a=n(0),o=r(a,2),t=o[0],i=o[1];return e((function(){var r,n=0,e=performance.now();return r=requestAnimationFrame((function a(){n+=1;var o=performance.now(),t=o-e;if(t>=1e3){var m=Math.round(1e3*n/t);i(m),n=0,e=o}r=requestAnimationFrame(a)})),function(){cancelAnimationFrame(r)}}),[]),t};export{a as useFps};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as n,useEffect as e}from"react";var a=function(){var a=n(0),o=r(a,2),t=o[0],i=o[1];return e((function(){var r,n=0,e=performance.now();return r=requestAnimationFrame((function a(){n+=1;var o=performance.now(),t=o-e;if(t>=1e3){var m=Math.round(1e3*n/t);i(m),n=0,e=o}r=requestAnimationFrame(a)})),function(){cancelAnimationFrame(r)}}),[]),t};export{a as useFps};
3
3
  //# sourceMappingURL=useFps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFps.js","sources":["../../../../src/hooks/useFps/useFps.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * @name useFps\n * @description - Hook that measures frames per second\n *\n * @returns {number} A number which determines frames per second\n *\n * @example\n * const fps = useFps();\n */\nexport const useFps = () => {\n const [fps, setFps] = useState(0);\n\n useEffect(() => {\n let frameCount = 0;\n let startTime = performance.now();\n let requestId: number;\n\n const onRequestAnimationFrame = () => {\n frameCount += 1;\n const currentTime = performance.now();\n const elapsedTime = currentTime - startTime;\n\n if (elapsedTime >= 1000) {\n const calculatedFps = Math.round((frameCount * 1000) / elapsedTime);\n setFps(calculatedFps);\n frameCount = 0;\n startTime = currentTime;\n }\n\n requestId = requestAnimationFrame(onRequestAnimationFrame);\n };\n\n requestId = requestAnimationFrame(onRequestAnimationFrame);\n\n return () => {\n cancelAnimationFrame(requestId);\n };\n }, []);\n\n return fps;\n};\n"],"names":["useFps","_useState","useState","_useState2","_slicedToArray","fps","setFps","useEffect","requestId","frameCount","startTime","performance","now","requestAnimationFrame","onRequestAnimationFrame","currentTime","elapsedTime","calculatedFps","Math","round","cancelAnimationFrame"],"mappings":";oHAWaA,EAAS,WACpB,IAAAC,EAAsBC,EAAS,GAAEC,EAAAC,EAAAH,EAAA,GAA1BI,EAAGF,EAAA,GAAEG,EAAMH,EAAA,GA6BlB,OA3BAI,GAAU,WACR,IAEIC,EAFAC,EAAa,EACbC,EAAYC,YAAYC,MAoB5B,OAFAJ,EAAYK,uBAfoB,SAA1BC,IACJL,GAAc,EACd,IAAMM,EAAcJ,YAAYC,MAC1BI,EAAcD,EAAcL,EAElC,GAAIM,GAAe,IAAM,CACvB,IAAMC,EAAgBC,KAAKC,MAAoB,IAAbV,EAAqBO,GACvDV,EAAOW,GACPR,EAAa,EACbC,EAAYK,CACd,CAEAP,EAAYK,sBAAsBC,MAK7B,WACLM,qBAAqBZ,GAExB,GAAE,IAEIH,CACT"}
1
+ {"version":3,"file":"useFps.js","sources":["../../../../src/hooks/useFps/useFps.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * @name useFps\n * @description - Hook that measures frames per second\n * @category Sensors\n *\n * @returns {number} A number which determines frames per second\n *\n * @example\n * const fps = useFps();\n */\nexport const useFps = () => {\n const [fps, setFps] = useState(0);\n\n useEffect(() => {\n let frameCount = 0;\n let startTime = performance.now();\n let requestId: number;\n\n const onRequestAnimationFrame = () => {\n frameCount += 1;\n const currentTime = performance.now();\n const elapsedTime = currentTime - startTime;\n\n if (elapsedTime >= 1000) {\n const calculatedFps = Math.round((frameCount * 1000) / elapsedTime);\n setFps(calculatedFps);\n frameCount = 0;\n startTime = currentTime;\n }\n\n requestId = requestAnimationFrame(onRequestAnimationFrame);\n };\n\n requestId = requestAnimationFrame(onRequestAnimationFrame);\n\n return () => {\n cancelAnimationFrame(requestId);\n };\n }, []);\n\n return fps;\n};\n"],"names":["useFps","_useState","useState","_useState2","_slicedToArray","fps","setFps","useEffect","requestId","frameCount","startTime","performance","now","requestAnimationFrame","onRequestAnimationFrame","currentTime","elapsedTime","calculatedFps","Math","round","cancelAnimationFrame"],"mappings":";oHAYaA,EAAS,WACpB,IAAAC,EAAsBC,EAAS,GAAEC,EAAAC,EAAAH,EAAA,GAA1BI,EAAGF,EAAA,GAAEG,EAAMH,EAAA,GA6BlB,OA3BAI,GAAU,WACR,IAEIC,EAFAC,EAAa,EACbC,EAAYC,YAAYC,MAoB5B,OAFAJ,EAAYK,uBAfoB,SAA1BC,IACJL,GAAc,EACd,IAAMM,EAAcJ,YAAYC,MAC1BI,EAAcD,EAAcL,EAElC,GAAIM,GAAe,IAAM,CACvB,IAAMC,EAAgBC,KAAKC,MAAoB,IAAbV,EAAqBO,GACvDV,EAAOW,GACPR,EAAa,EACbC,EAAYK,CACd,CAEAP,EAAYK,sBAAsBC,MAK7B,WACLM,qBAAqBZ,GAExB,GAAE,IAEIH,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e,d as n}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useRef as l,useState as r}from"react";import{useUnmount as t}from"../useUnmount/useUnmount.js";const c=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=(()=>{if("undefined"==typeof document)return!1;const e=c[0],n={};for(const l of c){const r=l?.[1];if(r in document){for(const[r,t]of l.entries())n[e[r]]=t;return n}}return!1})(),u={change:o.fullscreenchange,error:o.fullscreenerror};let s={request:(e=document.documentElement,n)=>new Promise(((l,r)=>{const t=()=>{s.off("change",t),l()};s.on("change",t);const c=e[o.requestFullscreen](n);c instanceof Promise&&c.then(t).catch(r)})),exit:()=>new Promise(((e,n)=>{if(!s.isFullscreen)return void e();const l=()=>{s.off("change",l),e()};s.on("change",l);const r=document[o.exitFullscreen]();r instanceof Promise&&r.then(l).catch(n)})),toggle:(e,n)=>s.isFullscreen?s.exit():s.request(e,n),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,n){const l=u[e];l&&document.addEventListener(l,n,!1)},off(e,n){const l=u[e];l&&document.removeEventListener(l,n,!1)},raw:o};Object.defineProperties(s,{isFullscreen:{get:()=>Boolean(document[o.fullscreenElement])},element:{enumerable:!0,get:()=>document[o.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[o.fullscreenEnabled])}}),o||(s={isEnabled:!1});var i=s,a=function(){var c,o=void 0===(arguments.length<=1?void 0:arguments[1])||arguments.length<=0?void 0:arguments[0],u=o?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],s=l(null),a=r(null!==(c=null==u?void 0:u.initialValue)&&void 0!==c&&c),f=e(a,2),m=f[0],d=f[1],g=function e(){if(i.isEnabled){var n,l;if(i.isFullscreen)null==u||null===(n=u.onEnter)||void 0===n||n.call(u);else i.off("change",e),null==u||null===(l=u.onExit)||void 0===l||l.call(u);d(i.isFullscreen)}},b=function(){var e=o?function(e){return"function"==typeof e?e():e instanceof Element?e:e.current}(o):s.current;if(e&&i.isEnabled)try{i.request(e),i.on("change",g)}catch(e){console.error(e)}},E=function(){i.isEnabled&&i.exit()};return t((function(){i.isEnabled&&i.off("change",g)})),n(n({},!o&&{ref:s}),{},{enter:b,exit:E,toggle:function(){if(m)return E();b()},value:m})};export{a as useFullscreen};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e,e as n}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useRef as l,useState as r}from"react";import{useUnmount as t}from"../useUnmount/useUnmount.js";const c=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=(()=>{if("undefined"==typeof document)return!1;const e=c[0],n={};for(const l of c){const r=l?.[1];if(r in document){for(const[r,t]of l.entries())n[e[r]]=t;return n}}return!1})(),u={change:o.fullscreenchange,error:o.fullscreenerror};let s={request:(e=document.documentElement,n)=>new Promise(((l,r)=>{const t=()=>{s.off("change",t),l()};s.on("change",t);const c=e[o.requestFullscreen](n);c instanceof Promise&&c.then(t).catch(r)})),exit:()=>new Promise(((e,n)=>{if(!s.isFullscreen)return void e();const l=()=>{s.off("change",l),e()};s.on("change",l);const r=document[o.exitFullscreen]();r instanceof Promise&&r.then(l).catch(n)})),toggle:(e,n)=>s.isFullscreen?s.exit():s.request(e,n),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,n){const l=u[e];l&&document.addEventListener(l,n,!1)},off(e,n){const l=u[e];l&&document.removeEventListener(l,n,!1)},raw:o};Object.defineProperties(s,{isFullscreen:{get:()=>Boolean(document[o.fullscreenElement])},element:{enumerable:!0,get:()=>document[o.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[o.fullscreenEnabled])}}),o||(s={isEnabled:!1});var i=s,a=function(){var c,o=void 0===(arguments.length<=1?void 0:arguments[1])||arguments.length<=0?void 0:arguments[0],u=o?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],s=l(null),a=r(null!==(c=null==u?void 0:u.initialValue)&&void 0!==c&&c),f=e(a,2),m=f[0],d=f[1],g=function e(){if(i.isEnabled){var n,l;if(i.isFullscreen)null==u||null===(n=u.onEnter)||void 0===n||n.call(u);else i.off("change",e),null==u||null===(l=u.onExit)||void 0===l||l.call(u);d(i.isFullscreen)}},b=function(){var e=o?function(e){return"function"==typeof e?e():e instanceof Element?e:e.current}(o):s.current;if(e&&i.isEnabled)try{i.request(e),i.on("change",g)}catch(e){console.error(e)}},E=function(){i.isEnabled&&i.exit()};return t((function(){i.isEnabled&&i.off("change",g)})),n(n({},!o&&{ref:s}),{},{enter:b,exit:E,toggle:function(){if(m)return E();b()},value:m})};export{a as useFullscreen};
3
3
  //# sourceMappingURL=useFullscreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFullscreen.js","sources":["../../../../node_modules/screenfull/index.js","../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","import type { RefObject } from 'react';\nimport { useRef, useState } from 'react';\nimport screenfull from 'screenfull';\n\nimport { useUnmount } from '../useUnmount/useUnmount';\n\n/** The use fullscreen target element type */\ntype UseFullScreenTarget = RefObject<Element | null> | (() => Element) | Element;\n\n/** Function to get target element based on its type */\nconst getElement = (target: UseFullScreenTarget) => {\n if (typeof target === 'function') {\n return target();\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return target.current;\n};\n\n/** The use fullscreen options type */\nexport interface UseFullScreenOptions {\n /** initial value */\n initialValue?: boolean;\n /** on enter fullscreen */\n onEnter?: () => void;\n /** on exit fullscreen */\n onExit?: () => void;\n}\n\n/** The use click outside return type */\nexport interface UseFullScreenReturn {\n enter: () => void;\n exit: () => void;\n toggle: () => void;\n value: boolean;\n}\n\nexport type UseFullScreen = {\n <Target extends UseFullScreenTarget>(\n target: Target,\n options?: UseFullScreenOptions\n ): UseFullScreenReturn;\n\n <Target extends UseFullScreenTarget>(\n options?: UseFullScreenOptions,\n target?: never\n ): UseFullScreenReturn & { ref: RefObject<Target> };\n};\n\n/**\n * @name useFullscreen\n * @description - Hook to handle fullscreen events\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {Target} target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn} An object with the fullscreen state and methods\n *\n * @example\n * const { enter, exit, toggle, value } = useFullscreen(ref);\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn & { ref: RefObject<Target> }} An object with the fullscreen state and methods\n *\n * @example\n * const { ref, enter, exit, toggle, value } = useFullscreen();\n */\nexport const useFullscreen = ((...params: any[]) => {\n const target = (typeof params[1] === 'undefined' ? undefined : params[0]) as\n | UseFullScreenTarget\n | undefined;\n const options = (target ? params[1] : params[0]) as UseFullScreenOptions | undefined;\n\n const internalRef = useRef<Element>(null);\n const [value, setValue] = useState(options?.initialValue ?? false);\n\n const onChange = () => {\n if (!screenfull.isEnabled) return;\n\n if (screenfull.isFullscreen) {\n options?.onEnter?.();\n } else {\n screenfull.off('change', onChange);\n options?.onExit?.();\n }\n\n setValue(screenfull.isFullscreen);\n };\n\n const enter = () => {\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n if (screenfull.isEnabled) {\n try {\n screenfull.request(element);\n screenfull.on('change', onChange);\n } catch (error) {\n console.error(error);\n }\n }\n };\n\n const exit = () => {\n if (screenfull.isEnabled) screenfull.exit();\n };\n\n const toggle = () => {\n if (value) return exit();\n enter();\n };\n\n useUnmount(() => {\n if (screenfull.isEnabled) screenfull.off('change', onChange);\n });\n\n return {\n ...(!target && { ref: internalRef }),\n enter,\n exit,\n toggle,\n value\n };\n}) as UseFullScreen;\n"],"names":["methodMap","nativeAPI","document","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","index","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","element","documentElement","options","Promise","resolve","reject","onFullScreenEntered","off","on","returnPromise","requestFullscreen","then","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","get","Boolean","fullscreenElement","enumerable","undefined","isEnabled","fullscreenEnabled","screenfull$1","useFullscreen","_options$initialValue","target","arguments","length","internalRef","useRef","_useState","useState","initialValue","_useState2","_slicedToArray","value","setValue","onChange","_options$onEnter","_options$onExit","onEnter","call","onExit","enter","Element","current","getElement","console","useUnmount","_objectSpread","ref"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"useFullscreen.js","sources":["../../../../node_modules/screenfull/index.js","../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","import type { RefObject } from 'react';\nimport { useRef, useState } from 'react';\nimport screenfull from 'screenfull';\n\nimport { useUnmount } from '../useUnmount/useUnmount';\n\n/** The use fullscreen target element type */\ntype UseFullScreenTarget = RefObject<Element | null> | (() => Element) | Element;\n\n/** Function to get target element based on its type */\nconst getElement = (target: UseFullScreenTarget) => {\n if (typeof target === 'function') {\n return target();\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return target.current;\n};\n\n/** The use fullscreen options type */\nexport interface UseFullScreenOptions {\n /** initial value */\n initialValue?: boolean;\n /** on enter fullscreen */\n onEnter?: () => void;\n /** on exit fullscreen */\n onExit?: () => void;\n}\n\n/** The use click outside return type */\nexport interface UseFullScreenReturn {\n enter: () => void;\n exit: () => void;\n toggle: () => void;\n value: boolean;\n}\n\nexport type UseFullScreen = {\n <Target extends UseFullScreenTarget>(\n target: Target,\n options?: UseFullScreenOptions\n ): UseFullScreenReturn;\n\n <Target extends UseFullScreenTarget>(\n options?: UseFullScreenOptions,\n target?: never\n ): UseFullScreenReturn & { ref: RefObject<Target> };\n};\n\n/**\n * @name useFullscreen\n * @description - Hook to handle fullscreen events\n * @category Browser\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {Target} target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn} An object with the fullscreen state and methods\n *\n * @example\n * const { enter, exit, toggle, value } = useFullscreen(ref);\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn & { ref: RefObject<Target> }} An object with the fullscreen state and methods\n *\n * @example\n * const { ref, enter, exit, toggle, value } = useFullscreen();\n */\nexport const useFullscreen = ((...params: any[]) => {\n const target = (typeof params[1] === 'undefined' ? undefined : params[0]) as\n | UseFullScreenTarget\n | undefined;\n const options = (target ? params[1] : params[0]) as UseFullScreenOptions | undefined;\n\n const internalRef = useRef<Element>(null);\n const [value, setValue] = useState(options?.initialValue ?? false);\n\n const onChange = () => {\n if (!screenfull.isEnabled) return;\n\n if (screenfull.isFullscreen) {\n options?.onEnter?.();\n } else {\n screenfull.off('change', onChange);\n options?.onExit?.();\n }\n\n setValue(screenfull.isFullscreen);\n };\n\n const enter = () => {\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n if (screenfull.isEnabled) {\n try {\n screenfull.request(element);\n screenfull.on('change', onChange);\n } catch (error) {\n console.error(error);\n }\n }\n };\n\n const exit = () => {\n if (screenfull.isEnabled) screenfull.exit();\n };\n\n const toggle = () => {\n if (value) return exit();\n enter();\n };\n\n useUnmount(() => {\n if (screenfull.isEnabled) screenfull.off('change', onChange);\n });\n\n return {\n ...(!target && { ref: internalRef }),\n enter,\n exit,\n toggle,\n value\n };\n}) as UseFullScreen;\n"],"names":["methodMap","nativeAPI","document","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","index","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","element","documentElement","options","Promise","resolve","reject","onFullScreenEntered","off","on","returnPromise","requestFullscreen","then","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","get","Boolean","fullscreenElement","enumerable","undefined","isEnabled","fullscreenEnabled","screenfull$1","useFullscreen","_options$initialValue","target","arguments","length","internalRef","useRef","_useState","useState","initialValue","_useState2","_slicedToArray","value","setValue","onChange","_options$onEnter","_options$onExit","onEnter","call","onExit","enter","Element","current","getElement","console","useUnmount","_objectSpread","ref"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as n}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as o,useEffect as e}from"react";var r=function(){return decodeURIComponent(window.location.hash.replace("#",""))},t=function(){var t=o(window?r():""),i=n(t,2),a=i[0],c=i[1];return e((function(){var n=function(){return c(r())};return window.addEventListener("hashchange",n),function(){window.removeEventListener("hashchange",n)}})),[a,function(n){window.location.hash=n,c(n)}]};export{t as useHash};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as n}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as o,useEffect as e}from"react";var r=function(){return decodeURIComponent(window.location.hash.replace("#",""))},t=function(){var t=o(window?r():""),i=n(t,2),a=i[0],c=i[1];return e((function(){var n=function(){return c(r())};return window.addEventListener("hashchange",n),function(){window.removeEventListener("hashchange",n)}})),[a,function(n){window.location.hash=n,c(n)}]};export{t as useHash};
3
3
  //# sourceMappingURL=useHash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHash.js","sources":["../../../../src/hooks/useHash/useHash.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst getHash = () => decodeURIComponent(window.location.hash.replace('#', ''));\n\n/** The use hash return type */\ntype UseHashReturn = [string, (value: string) => void];\n\n/**\n * @name useHash\n * @description - Hook that manages the hash value\n *\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const [hash, setHash] = useHash();\n */\nexport const useHash = (): UseHashReturn => {\n const [hash, setHash] = useState(window ? getHash() : '');\n\n const set = (value: string) => {\n window.location.hash = value;\n setHash(value);\n };\n\n useEffect(() => {\n const onHashChange = () => setHash(getHash());\n window.addEventListener('hashchange', onHashChange);\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n };\n });\n\n return [hash, set] as const;\n};\n"],"names":["getHash","decodeURIComponent","window","location","hash","replace","useHash","_useState","useState","_useState2","_slicedToArray","setHash","useEffect","onHashChange","addEventListener","removeEventListener","value"],"mappings":";gHAEA,IAAMA,EAAU,WAAH,OAASC,mBAAmBC,OAAOC,SAASC,KAAKC,QAAQ,IAAK,IAAI,EAclEC,EAAU,WACrB,IAAAC,EAAwBC,EAASN,OAASF,IAAY,IAAGS,EAAAC,EAAAH,EAAA,GAAlDH,EAAIK,EAAA,GAAEE,EAAOF,EAAA,GAepB,OARAG,GAAU,WACR,IAAMC,EAAe,WAAH,OAASF,EAAQX,IAAU,EAE7C,OADAE,OAAOY,iBAAiB,aAAcD,GAC/B,WACLX,OAAOa,oBAAoB,aAAcF,GAE7C,IAEO,CAACT,EAbI,SAACY,GACXd,OAAOC,SAASC,KAAOY,EACvBL,EAAQK,IAYZ"}
1
+ {"version":3,"file":"useHash.js","sources":["../../../../src/hooks/useHash/useHash.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst getHash = () => decodeURIComponent(window.location.hash.replace('#', ''));\n\n/** The use hash return type */\ntype UseHashReturn = [string, (value: string) => void];\n\n/**\n * @name useHash\n * @description - Hook that manages the hash value\n * @category Browser\n *\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const [hash, setHash] = useHash();\n */\nexport const useHash = (): UseHashReturn => {\n const [hash, setHash] = useState(window ? getHash() : '');\n\n const set = (value: string) => {\n window.location.hash = value;\n setHash(value);\n };\n\n useEffect(() => {\n const onHashChange = () => setHash(getHash());\n window.addEventListener('hashchange', onHashChange);\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n };\n });\n\n return [hash, set] as const;\n};\n"],"names":["getHash","decodeURIComponent","window","location","hash","replace","useHash","_useState","useState","_useState2","_slicedToArray","setHash","useEffect","onHashChange","addEventListener","removeEventListener","value"],"mappings":";gHAEA,IAAMA,EAAU,WAAH,OAASC,mBAAmBC,OAAOC,SAASC,KAAKC,QAAQ,IAAK,IAAI,EAelEC,EAAU,WACrB,IAAAC,EAAwBC,EAASN,OAASF,IAAY,IAAGS,EAAAC,EAAAH,EAAA,GAAlDH,EAAIK,EAAA,GAAEE,EAAOF,EAAA,GAepB,OARAG,GAAU,WACR,IAAMC,EAAe,WAAH,OAASF,EAAQX,IAAU,EAE7C,OADAE,OAAOY,iBAAiB,aAAcD,GAC/B,WACLX,OAAOa,oBAAoB,aAAcF,GAE7C,IAEO,CAACT,EAbI,SAACY,GACXd,OAAOC,SAASC,KAAOY,EACvBL,EAAQK,IAYZ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e,e as o}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as n}from"react";import{useDidUpdate as t}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(e,o){return e.toLowerCase().split(/[+_-]/g).map((function(e){return e.trim()})).every((function(e){return o.find((function(o){return e===o.code.toLocaleLowerCase()||e===o.key.toLocaleLowerCase()||e===o.alias.toLocaleLowerCase()}))}))},u=function(u,l,a){var s,c,d,f,v=null===(s=null==a?void 0:a.enabled)||void 0===s||s,p=null===(c=null==a?void 0:a.preventDefault)||void 0===c||c,m=n([]),y=e(m,2)[1];t((function(){y([])}),[v]),r(null!==(d=null==a?void 0:a.target)&&void 0!==d?d:window,"keydown",(function(e){p&&e.preventDefault(),v&&y((function(n){var t,r,s,c;if(n.some((function(o){return o.code===e.code})))return n;var d=null!==(t=null!==(r=null==a||null===(s=a.aliasMap)||void 0===s?void 0:s[e.key])&&void 0!==r?r:null==a||null===(c=a.aliasMap)||void 0===c?void 0:c[e.key])&&void 0!==t?t:e.code,f=[].concat(o(n),[{key:e.key,code:e.code,alias:d}]);Array.isArray(u)?u.forEach((function(o){i(o,f)&&l(e)})):i(u,f)&&l(e);return f}))})),r(null!==(f=null==a?void 0:a.target)&&void 0!==f?f:window,"keyup",(function(e){v&&y((function(o){return o.filter((function(o){return o.code!==e.code}))}))}))};export{i as isHotkeyMatch,u as useHotkeys};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as n}from"react";import{useDidUpdate as t}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(e,o){return e.toLowerCase().split(/[+_-]/g).map((function(e){return e.trim()})).every((function(e){return o.find((function(o){return e===o.code.toLocaleLowerCase()||e===o.key.toLocaleLowerCase()||e===o.alias.toLocaleLowerCase()}))}))},u=function(u,l,a){var s,c,d,f,v=null===(s=null==a?void 0:a.enabled)||void 0===s||s,p=null===(c=null==a?void 0:a.preventDefault)||void 0===c||c,m=n([]),y=e(m,2)[1];t((function(){y([])}),[v]),r(null!==(d=null==a?void 0:a.target)&&void 0!==d?d:window,"keydown",(function(e){p&&e.preventDefault(),v&&y((function(n){var t,r,s,c;if(n.some((function(o){return o.code===e.code})))return n;var d=null!==(t=null!==(r=null==a||null===(s=a.aliasMap)||void 0===s?void 0:s[e.key])&&void 0!==r?r:null==a||null===(c=a.aliasMap)||void 0===c?void 0:c[e.key])&&void 0!==t?t:e.code,f=[].concat(o(n),[{key:e.key,code:e.code,alias:d}]);Array.isArray(u)?u.forEach((function(o){i(o,f)&&l(e)})):i(u,f)&&l(e);return f}))})),r(null!==(f=null==a?void 0:a.target)&&void 0!==f?f:window,"keyup",(function(e){v&&y((function(o){return o.filter((function(o){return o.code!==e.code}))}))}))};export{i as isHotkeyMatch,u as useHotkeys};
3
3
  //# sourceMappingURL=useHotkeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkeys.js","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use hotkeys params */\nexport interface UseHotkeysOptions {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n\n /** Enable or disable the event listeners */\n enabled?: boolean;\n\n /** Whether to prevent the default behavior of the event */\n preventDefault?: boolean;\n\n /** Alias map for hotkeys */\n aliasMap?: Record<string, string>;\n}\n\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\n hotkey\n .toLowerCase()\n .split(/[+_-]/g)\n .map((key) => key.trim())\n .every((key) =>\n keys.find(\n (updatedKey) =>\n key === updatedKey.code.toLocaleLowerCase() ||\n key === updatedKey.key.toLocaleLowerCase() ||\n key === updatedKey.alias.toLocaleLowerCase()\n )\n );\n\nexport type UseHotkeysHotkeys = string[] | string;\nexport type UseHotkeysKey = { key: string; code: string; alias: string };\n\n/**\n * @name useHotkeys\n * @description - Hook that listens for hotkeys\n *\n * @param {UseHotkeysHotkeys} hotkeys The key or keys to listen for\n * @param {(event: KeyboardEvent) => void} callback The callback function to be called when the hotkey is pressed\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\n * @param {boolean} [options.preventDefault=true] Whether to prevent the default behavior of the event\n * @param {Record<string, string>} [options.aliasMap] Alias map for hotkeys\n * @returns {useKeysPressedReturns} Array of strings with keys that were press\n *\n * @example\n * useHotkeys('control+a', () => console.log('hotkey pressed'));\n *\n * @example\n * useHotkeys('ControlLeft+KeyA', () => console.log('hotkey pressed'));\n */\nexport const useHotkeys = (\n hotkeys: UseHotkeysHotkeys,\n callback: (event: KeyboardEvent) => void,\n options?: UseHotkeysOptions\n) => {\n const enabled = options?.enabled ?? true;\n const preventDefault = options?.preventDefault ?? true;\n const [, setKeys] = useState<UseHotkeysKey[]>([]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (preventDefault) event.preventDefault();\n\n if (!enabled) return;\n\n setKeys((prevKeys) => {\n if (prevKeys.some(({ code }) => code === event.code)) return prevKeys;\n const alias = options?.aliasMap?.[event.key] ?? options?.aliasMap?.[event.key] ?? event.code;\n const updatedKeys = [...prevKeys, { key: event.key, code: event.code, alias }];\n\n if (Array.isArray(hotkeys)) {\n hotkeys.forEach((hotkey) => {\n const isMatch = isHotkeyMatch(hotkey, updatedKeys);\n if (isMatch) callback(event);\n });\n } else {\n const isMatch = isHotkeyMatch(hotkeys, updatedKeys);\n if (isMatch) callback(event);\n }\n\n return updatedKeys;\n });\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => prevKeys.filter(({ code }) => code !== event.code));\n };\n\n useDidUpdate(() => {\n setKeys([]);\n }, [enabled]);\n\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["isHotkeyMatch","hotkey","keys","toLowerCase","split","map","key","trim","every","find","updatedKey","code","toLocaleLowerCase","alias","useHotkeys","hotkeys","callback","options","_options$enabled","_options$preventDefau","_options$target","_options$target2","enabled","preventDefault","_useState","useState","setKeys","_slicedToArray","useDidUpdate","useEventListener","target","window","event","prevKeys","_ref2","_options$aliasMap$eve","_options$aliasMap","_options$aliasMap2","some","_ref","aliasMap","updatedKeys","concat","_toConsumableArray","Array","isArray","forEach","filter","_ref3"],"mappings":";4XAqBO,IAAMA,EAAgB,SAACC,EAAgBC,GAAqB,OACjED,EACGE,cACAC,MAAM,UACNC,KAAI,SAACC,GAAG,OAAKA,EAAIC,MAAM,IACvBC,OAAM,SAACF,GAAG,OACTJ,EAAKO,MACH,SAACC,GAAU,OACTJ,IAAQI,EAAWC,KAAKC,qBACxBN,IAAQI,EAAWJ,IAAIM,qBACvBN,IAAQI,EAAWG,MAAMD,mBAAmB,GAC/C,GACF,EAuBQE,EAAa,SACxBC,EACAC,EACAC,GACG,IAAAC,EAAAC,EAAAC,EAAAC,EACGC,EAA0BJ,QAAnBA,EAAGD,aAAO,EAAPA,EAASK,eAAOJ,IAAAA,GAAAA,EAC1BK,EAAwCJ,QAA1BA,EAAGF,aAAO,EAAPA,EAASM,sBAAcJ,IAAAA,GAAAA,EAC9CK,EAAoBC,EAA0B,IAArCC,EAAwCC,EAAAH,EAAA,GAAjC,GA+BhBI,GAAa,WACXF,EAAQ,GACV,GAAG,CAACJ,IAEJO,UAAgBT,EAACH,aAAO,EAAPA,EAASa,cAAM,IAAAV,EAAAA,EAAIW,OAAQ,WAjC1B,SAACC,GACbT,GAAgBS,EAAMT,iBAErBD,GAELI,GAAQ,SAACO,GAAa,IAAAC,EAAAC,EAAAC,EAAAC,EACpB,GAAIJ,EAASK,MAAK,SAAAC,GAAO,OAAAA,EAAJ5B,OAAoBqB,EAAMrB,QAAO,OAAOsB,EAC7D,IAAMpB,EAAwE,QAAnEqB,EAAiC,QAAjCC,EAAGlB,SAAiBmB,QAAVA,EAAPnB,EAASuB,gBAATJ,IAAiBA,OAAjBA,EAAAA,EAAoBJ,EAAM1B,YAAI,IAAA6B,EAAAA,EAAIlB,SAAiB,QAAVoB,EAAPpB,EAASuB,gBAAQ,IAAAH,OAAA,EAAjBA,EAAoBL,EAAM1B,YAAI,IAAA4B,EAAAA,EAAIF,EAAMrB,KAClF8B,EAAWC,GAAAA,OAAAC,EAAOV,GAAU,CAAA,CAAE3B,IAAK0B,EAAM1B,IAAKK,KAAMqB,EAAMrB,KAAME,MAAAA,KAElE+B,MAAMC,QAAQ9B,GAChBA,EAAQ+B,SAAQ,SAAC7C,GACCD,EAAcC,EAAQwC,IACzBzB,EAASgB,EACxB,IAEgBhC,EAAce,EAAS0B,IAC1BzB,EAASgB,GAGxB,OAAOS,CACT,OAaFZ,UAAgBR,EAACJ,aAAO,EAAPA,EAASa,cAAM,IAAAT,EAAAA,EAAIU,OAAQ,SAV5B,SAACC,GACVV,GACLI,GAAQ,SAACO,GAAQ,OAAKA,EAASc,QAAO,SAAAC,GAAO,OAAAA,EAAJrC,OAAoBqB,EAAMrB,aASvE"}
1
+ {"version":3,"file":"useHotkeys.js","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use hotkeys params */\nexport interface UseHotkeysOptions {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n\n /** Enable or disable the event listeners */\n enabled?: boolean;\n\n /** Whether to prevent the default behavior of the event */\n preventDefault?: boolean;\n\n /** Alias map for hotkeys */\n aliasMap?: Record<string, string>;\n}\n\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\n hotkey\n .toLowerCase()\n .split(/[+_-]/g)\n .map((key) => key.trim())\n .every((key) =>\n keys.find(\n (updatedKey) =>\n key === updatedKey.code.toLocaleLowerCase() ||\n key === updatedKey.key.toLocaleLowerCase() ||\n key === updatedKey.alias.toLocaleLowerCase()\n )\n );\n\nexport type UseHotkeysHotkeys = string[] | string;\nexport type UseHotkeysKey = { key: string; code: string; alias: string };\n\n/**\n * @name useHotkeys\n * @description - Hook that listens for hotkeys\n * @category Sensors\n *\n * @param {UseHotkeysHotkeys} hotkeys The key or keys to listen for\n * @param {(event: KeyboardEvent) => void} callback The callback function to be called when the hotkey is pressed\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\n * @param {boolean} [options.preventDefault=true] Whether to prevent the default behavior of the event\n * @param {Record<string, string>} [options.aliasMap] Alias map for hotkeys\n * @returns {useKeysPressedReturns} Array of strings with keys that were press\n *\n * @example\n * useHotkeys('control+a', () => console.log('hotkey pressed'));\n *\n * @example\n * useHotkeys('ControlLeft+KeyA', () => console.log('hotkey pressed'));\n */\nexport const useHotkeys = (\n hotkeys: UseHotkeysHotkeys,\n callback: (event: KeyboardEvent) => void,\n options?: UseHotkeysOptions\n) => {\n const enabled = options?.enabled ?? true;\n const preventDefault = options?.preventDefault ?? true;\n const [, setKeys] = useState<UseHotkeysKey[]>([]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (preventDefault) event.preventDefault();\n\n if (!enabled) return;\n\n setKeys((prevKeys) => {\n if (prevKeys.some(({ code }) => code === event.code)) return prevKeys;\n const alias = options?.aliasMap?.[event.key] ?? options?.aliasMap?.[event.key] ?? event.code;\n const updatedKeys = [...prevKeys, { key: event.key, code: event.code, alias }];\n\n if (Array.isArray(hotkeys)) {\n hotkeys.forEach((hotkey) => {\n const isMatch = isHotkeyMatch(hotkey, updatedKeys);\n if (isMatch) callback(event);\n });\n } else {\n const isMatch = isHotkeyMatch(hotkeys, updatedKeys);\n if (isMatch) callback(event);\n }\n\n return updatedKeys;\n });\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => prevKeys.filter(({ code }) => code !== event.code));\n };\n\n useDidUpdate(() => {\n setKeys([]);\n }, [enabled]);\n\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["isHotkeyMatch","hotkey","keys","toLowerCase","split","map","key","trim","every","find","updatedKey","code","toLocaleLowerCase","alias","useHotkeys","hotkeys","callback","options","_options$enabled","_options$preventDefau","_options$target","_options$target2","enabled","preventDefault","_useState","useState","setKeys","_slicedToArray","useDidUpdate","useEventListener","target","window","event","prevKeys","_ref2","_options$aliasMap$eve","_options$aliasMap","_options$aliasMap2","some","_ref","aliasMap","updatedKeys","concat","_toConsumableArray","Array","isArray","forEach","filter","_ref3"],"mappings":";4XAqBO,IAAMA,EAAgB,SAACC,EAAgBC,GAAqB,OACjED,EACGE,cACAC,MAAM,UACNC,KAAI,SAACC,GAAG,OAAKA,EAAIC,MAAM,IACvBC,OAAM,SAACF,GAAG,OACTJ,EAAKO,MACH,SAACC,GAAU,OACTJ,IAAQI,EAAWC,KAAKC,qBACxBN,IAAQI,EAAWJ,IAAIM,qBACvBN,IAAQI,EAAWG,MAAMD,mBAAmB,GAC/C,GACF,EAwBQE,EAAa,SACxBC,EACAC,EACAC,GACG,IAAAC,EAAAC,EAAAC,EAAAC,EACGC,EAA0BJ,QAAnBA,EAAGD,aAAO,EAAPA,EAASK,eAAOJ,IAAAA,GAAAA,EAC1BK,EAAwCJ,QAA1BA,EAAGF,aAAO,EAAPA,EAASM,sBAAcJ,IAAAA,GAAAA,EAC9CK,EAAoBC,EAA0B,IAArCC,EAAwCC,EAAAH,EAAA,GAAjC,GA+BhBI,GAAa,WACXF,EAAQ,GACV,GAAG,CAACJ,IAEJO,UAAgBT,EAACH,aAAO,EAAPA,EAASa,cAAM,IAAAV,EAAAA,EAAIW,OAAQ,WAjC1B,SAACC,GACbT,GAAgBS,EAAMT,iBAErBD,GAELI,GAAQ,SAACO,GAAa,IAAAC,EAAAC,EAAAC,EAAAC,EACpB,GAAIJ,EAASK,MAAK,SAAAC,GAAO,OAAAA,EAAJ5B,OAAoBqB,EAAMrB,QAAO,OAAOsB,EAC7D,IAAMpB,EAAwE,QAAnEqB,EAAiC,QAAjCC,EAAGlB,SAAiBmB,QAAVA,EAAPnB,EAASuB,gBAATJ,IAAiBA,OAAjBA,EAAAA,EAAoBJ,EAAM1B,YAAI,IAAA6B,EAAAA,EAAIlB,SAAiB,QAAVoB,EAAPpB,EAASuB,gBAAQ,IAAAH,OAAA,EAAjBA,EAAoBL,EAAM1B,YAAI,IAAA4B,EAAAA,EAAIF,EAAMrB,KAClF8B,EAAWC,GAAAA,OAAAC,EAAOV,GAAU,CAAA,CAAE3B,IAAK0B,EAAM1B,IAAKK,KAAMqB,EAAMrB,KAAME,MAAAA,KAElE+B,MAAMC,QAAQ9B,GAChBA,EAAQ+B,SAAQ,SAAC7C,GACCD,EAAcC,EAAQwC,IACzBzB,EAASgB,EACxB,IAEgBhC,EAAce,EAAS0B,IAC1BzB,EAASgB,GAGxB,OAAOS,CACT,OAaFZ,UAAgBR,EAACJ,aAAO,EAAPA,EAASa,cAAM,IAAAT,EAAAA,EAAIU,OAAQ,SAV5B,SAACC,GACVV,GACLI,GAAQ,SAACO,GAAQ,OAAKA,EAASc,QAAO,SAAAC,GAAO,OAAAA,EAAJrC,OAAoBqB,EAAMrB,aASvE"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{a as e,_ as n}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as t,useRef as o}from"react";import{useEventListener as l}from"../useEventListener/useEventListener.js";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var i=function(){var i=(arguments.length<=0?void 0:arguments[0])instanceof Function||!("current"in(arguments.length<=0?void 0:arguments[0]))||arguments.length<=0?void 0:arguments[0],r=i?"object"===e(arguments.length<=1?void 0:arguments[1])?arguments.length<=1?void 0:arguments[1]:{onEntry:arguments.length<=1?void 0:arguments[1]}:"object"===e(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:{onEntry:arguments.length<=0?void 0:arguments[0]},u=t(!1),s=n(u,2),v=s[0],a=s[1],c=o(null);return l(null!=i?i:c,"mouseenter",(function(){var e;null==r||null===(e=r.onEntry)||void 0===e||e.call(r),a(!0)})),l(null!=i?i:c,"mouseleave",(function(){var e;null==r||null===(e=r.onLeave)||void 0===e||e.call(r),a(!1)})),i?v:[c,v]};export{i as useHover};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{b as e,_ as n}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as t,useRef as o}from"react";import{useEventListener as l}from"../useEventListener/useEventListener.js";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var i=function(){var i=(arguments.length<=0?void 0:arguments[0])instanceof Function||!("current"in(arguments.length<=0?void 0:arguments[0]))||arguments.length<=0?void 0:arguments[0],r=i?"object"===e(arguments.length<=1?void 0:arguments[1])?arguments.length<=1?void 0:arguments[1]:{onEntry:arguments.length<=1?void 0:arguments[1]}:"object"===e(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:{onEntry:arguments.length<=0?void 0:arguments[0]},u=t(!1),s=n(u,2),v=s[0],a=s[1],c=o(null);return l(null!=i?i:c,"mouseenter",(function(){var e;null==r||null===(e=r.onEntry)||void 0===e||e.call(r),a(!0)})),l(null!=i?i:c,"mouseleave",(function(){var e;null==r||null===(e=r.onLeave)||void 0===e||e.call(r),a(!1)})),i?v:[c,v]};export{i as useHover};
3
3
  //# sourceMappingURL=useHover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useRef, useState } 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 = RefObject<Element | null> | Element;\n//* The use hover return type */\nexport type UseHoverReturn<Target extends UseHoverTarget> = [RefObject<Target>, boolean];\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 * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {() => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {() => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {() => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, {\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n *\n * @overload\n * @template Target The target element\n * @param {() => void} [callback] The callback function to be invoked on mouse enter\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {() => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {() => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover({\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n */\nexport const useHover = ((...params: any[]) => {\n const target = (\n params[0] instanceof Function || !('current' in params[0]) ? undefined : params[0]\n ) as UseHoverTarget | 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] = useState(false);\n const internalRef = useRef<Element>(null);\n\n const onMouseEnter = () => {\n options?.onEntry?.();\n setHovering(true);\n };\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","_useState","useState","_useState2","_slicedToArray","hovering","setHovering","internalRef","useRef","useEventListener","_options$onEntry","call","_options$onLeave","onLeave"],"mappings":";6UA6EaA,EAAY,WACvB,IAAMC,GACJC,UAAAC,QAAA,OAAAC,EAAAF,UAAqBG,cAAAA,YAAc,YAASH,UAAAC,eAAAC,EAAAF,UAAA,MAA0BA,UAAAC,QAAA,OAATC,EAASF,UACzC,GAEzBI,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,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAAcC,EAAgB,MAepC,OAHAC,EAAiBhB,QAAAA,EAAUc,EAAa,cAVnB,WAAM,IAAAG,EACzBZ,SAAgBY,QAATA,EAAPZ,EAASE,mBAAOU,GAAhBA,EAAAC,KAAAb,GACAQ,GAAY,MASdG,EAAiBhB,QAAAA,EAAUc,EAAa,cANnB,WAAM,IAAAK,EACzBd,SAAgBc,QAATA,EAAPd,EAASe,mBAAOD,GAAhBA,EAAAD,KAAAb,GACAQ,GAAY,MAMVb,EAAeY,EACZ,CAACE,EAAaF,EACvB"}
1
+ {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useRef, useState } 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 = RefObject<Element | null> | Element;\n//* The use hover return type */\nexport type UseHoverReturn<Target extends UseHoverTarget> = [RefObject<Target>, boolean];\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 * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {() => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {() => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {() => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, {\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n *\n * @overload\n * @template Target The target element\n * @param {() => void} [callback] The callback function to be invoked on mouse enter\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {() => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {() => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover({\n * onEntry: () => console.log('onEntry'),\n * onLeave: () => console.log('onLeave'),\n * });\n */\nexport const useHover = ((...params: any[]) => {\n const target = (\n params[0] instanceof Function || !('current' in params[0]) ? undefined : params[0]\n ) as UseHoverTarget | 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] = useState(false);\n const internalRef = useRef<Element>(null);\n\n const onMouseEnter = () => {\n options?.onEntry?.();\n setHovering(true);\n };\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","_useState","useState","_useState2","_slicedToArray","hovering","setHovering","internalRef","useRef","useEventListener","_options$onEntry","call","_options$onLeave","onLeave"],"mappings":";6UA8EaA,EAAY,WACvB,IAAMC,GACJC,UAAAC,QAAA,OAAAC,EAAAF,UAAqBG,cAAAA,YAAc,YAASH,UAAAC,eAAAC,EAAAF,UAAA,MAA0BA,UAAAC,QAAA,OAATC,EAASF,UACzC,GAEzBI,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,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAAcC,EAAgB,MAepC,OAHAC,EAAiBhB,QAAAA,EAAUc,EAAa,cAVnB,WAAM,IAAAG,EACzBZ,SAAgBY,QAATA,EAAPZ,EAASE,mBAAOU,GAAhBA,EAAAC,KAAAb,GACAQ,GAAY,MASdG,EAAiBhB,QAAAA,EAAUc,EAAa,cANnB,WAAM,IAAAK,EACzBd,SAAgBc,QAATA,EAAPd,EAASe,mBAAOD,GAAhBA,EAAAD,KAAAb,GACAQ,GAAY,MAMVb,EAAeY,EACZ,CAACE,EAAaF,EACvB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as t,useEffect as n}from"react";import"../../utils/helpers/isClient.js";import{throttle as i}from"../../utils/helpers/throttle.js";var o=["mousemove","mousedown","keydown","touchstart","wheel","resize"],r=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=u.initialValue,l=void 0!==s&&s,a=u.events,c=void 0===a?o:a,d=t(l),m=e(d,2),v=m[0],f=m[1],h=t(Date.now()),p=e(h,2),w=p[0],E=p[1];return n((function(){var e,t=function(){return f(!0)},n=i((function(){f(!1),E(Date.now()),clearTimeout(e),e=setTimeout(t,r)}),500),o=function(){document.hidden||n()};return e=setTimeout(t,r),c.forEach((function(e){return window.addEventListener(e,n)})),document.addEventListener("visibilitychange",o),function(){c.forEach((function(e){return window.addEventListener(e,n)})),document.removeEventListener("visibilitychange",o),clearTimeout(e)}}),[r,c]),{idle:v,lastActive:w}};export{r as useIdle};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as t,useEffect as n}from"react";import"../../utils/helpers/isClient.js";import{throttle as i}from"../../utils/helpers/throttle.js";var o=["mousemove","mousedown","keydown","touchstart","wheel","resize"],r=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=u.initialValue,l=void 0!==s&&s,a=u.events,c=void 0===a?o:a,d=t(l),m=e(d,2),v=m[0],f=m[1],h=t(Date.now()),p=e(h,2),w=p[0],E=p[1];return n((function(){var e,t=function(){return f(!0)},n=i((function(){f(!1),E(Date.now()),clearTimeout(e),e=setTimeout(t,r)}),500),o=function(){document.hidden||n()};return e=setTimeout(t,r),c.forEach((function(e){return window.addEventListener(e,n)})),document.addEventListener("visibilitychange",o),function(){c.forEach((function(e){return window.addEventListener(e,n)})),document.removeEventListener("visibilitychange",o),clearTimeout(e)}}),[r,c]),{idle:v,lastActive:w}};export{r as useIdle};
3
3
  //# sourceMappingURL=useIdle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIdle.js","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\ninterface UseIdleOptions {\n initialValue?: boolean;\n events?: Array<keyof DocumentEventMap>;\n}\n\nconst IDLE_EVENTS = [\n 'mousemove',\n 'mousedown',\n 'keydown',\n 'touchstart',\n 'wheel',\n 'resize'\n] satisfies Array<keyof DocumentEventMap>;\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 { initialValue = false, events = IDLE_EVENTS }: UseIdleOptions = {}\n): UseIdleReturn => {\n const [idle, setIdle] = useState(initialValue);\n const [lastActive, setLastActive] = useState(Date.now());\n\n 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 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 clearTimeout(timeoutId);\n };\n }, [milliseconds, events]);\n\n return { idle, lastActive };\n};\n"],"names":["IDLE_EVENTS","useIdle","milliseconds","arguments","length","undefined","_ref","_ref$initialValue","initialValue","_ref$events","events","_useState","useState","_useState2","_slicedToArray","idle","setIdle","_useState3","Date","now","_useState4","lastActive","setLastActive","useEffect","timeoutId","onTimeout","onEvent","throttle","clearTimeout","setTimeout","onVisibilitychange","document","hidden","forEach","event","window","addEventListener","removeEventListener"],"mappings":";mNASA,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,EAASJ,GAAaK,EAAAC,EAAAH,EAAA,GAAvCI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpBI,EAAoCL,EAASM,KAAKC,OAAMC,EAAAN,EAAAG,EAAA,GAAjDI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GA6BhC,OA3BAG,GAAU,WACR,IAAIC,EACEC,EAAY,WAAH,OAAST,GAAQ,EAAK,EAE/BU,EAAUC,GAAS,WACvBX,GAAQ,GACRM,EAAcJ,KAAKC,OACnBS,aAAaJ,GACbA,EAAYK,WAAWJ,EAAWvB,EACnC,GAAE,KAEG4B,EAAqB,WACpBC,SAASC,QAAQN,KAQxB,OALAF,EAAYK,WAAWJ,EAAWvB,GAElCQ,EAAOuB,SAAQ,SAACC,GAAK,OAAKC,OAAOC,iBAAiBF,EAAOR,MACzDK,SAASK,iBAAiB,mBAAoBN,GAEvC,WACLpB,EAAOuB,SAAQ,SAACC,GAAK,OAAKC,OAAOC,iBAAiBF,EAAOR,MACzDK,SAASM,oBAAoB,mBAAoBP,GACjDF,aAAaJ,GAEjB,GAAG,CAACtB,EAAcQ,IAEX,CAAEK,KAAAA,EAAMM,WAAAA,EACjB"}
1
+ {"version":3,"file":"useIdle.js","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\ninterface UseIdleOptions {\n initialValue?: boolean;\n events?: Array<keyof DocumentEventMap>;\n}\n\nconst IDLE_EVENTS = [\n 'mousemove',\n 'mousedown',\n 'keydown',\n 'touchstart',\n 'wheel',\n 'resize'\n] satisfies Array<keyof DocumentEventMap>;\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 * @category Sensors\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 { initialValue = false, events = IDLE_EVENTS }: UseIdleOptions = {}\n): UseIdleReturn => {\n const [idle, setIdle] = useState(initialValue);\n const [lastActive, setLastActive] = useState(Date.now());\n\n 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 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 clearTimeout(timeoutId);\n };\n }, [milliseconds, events]);\n\n return { idle, lastActive };\n};\n"],"names":["IDLE_EVENTS","useIdle","milliseconds","arguments","length","undefined","_ref","_ref$initialValue","initialValue","_ref$events","events","_useState","useState","_useState2","_slicedToArray","idle","setIdle","_useState3","Date","now","_useState4","lastActive","setLastActive","useEffect","timeoutId","onTimeout","onEvent","throttle","clearTimeout","setTimeout","onVisibilitychange","document","hidden","forEach","event","window","addEventListener","removeEventListener"],"mappings":";mNASA,IAAMA,EAAc,CAClB,YACA,YACA,UACA,aACA,QACA,UAyBWC,EAAU,WAGH,IAFlBC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAxBK,IAwBQG,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,EAASJ,GAAaK,EAAAC,EAAAH,EAAA,GAAvCI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpBI,EAAoCL,EAASM,KAAKC,OAAMC,EAAAN,EAAAG,EAAA,GAAjDI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GA6BhC,OA3BAG,GAAU,WACR,IAAIC,EACEC,EAAY,WAAH,OAAST,GAAQ,EAAK,EAE/BU,EAAUC,GAAS,WACvBX,GAAQ,GACRM,EAAcJ,KAAKC,OACnBS,aAAaJ,GACbA,EAAYK,WAAWJ,EAAWvB,EACnC,GAAE,KAEG4B,EAAqB,WACpBC,SAASC,QAAQN,KAQxB,OALAF,EAAYK,WAAWJ,EAAWvB,GAElCQ,EAAOuB,SAAQ,SAACC,GAAK,OAAKC,OAAOC,iBAAiBF,EAAOR,MACzDK,SAASK,iBAAiB,mBAAoBN,GAEvC,WACLpB,EAAOuB,SAAQ,SAACC,GAAK,OAAKC,OAAOC,iBAAiBF,EAAOR,MACzDK,SAASM,oBAAoB,mBAAoBP,GACjDF,aAAaJ,GAEjB,GAAG,CAACtB,EAAcQ,IAEX,CAAEK,KAAAA,EAAMM,WAAAA,EACjB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{a as n,_ as e,d as t}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as r,useRef as o,useEffect as i}from"react";var l=function(){var l,u="object"!==n(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,c=u?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],v=null===(l=null==c?void 0:c.enabled)||void 0===l||l,d=r(),a=e(d,2),s=a[0],f=a[1],g=o(null),h=o();return h.current=null==c?void 0:c.onChange,i((function(){if(v){var n,r=u?function(n){return"function"==typeof n?n():n instanceof Element?n:n.current}(u):g.current,o=new IntersectionObserver((function(n){var t,r=e(n,1)[0];f(r),null===(t=h.current)||void 0===t||t.call(h,r)}),t(t({},c),{},{root:(n=null==c?void 0:c.root,n?n instanceof Element||n instanceof Document?n:n.current:document)}));return o.observe(r),function(){o.disconnect()}}}),[u,null==c?void 0:c.rootMargin,null==c?void 0:c.threshold,v]),u?{entry:s,inView:!(null==s||!s.isIntersecting)}:{ref:g,entry:s,inView:!(null==s||!s.isIntersecting)}};export{l as useIntersectionObserver};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{b as n,_ as e,e as t}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as r,useRef as o,useEffect as i}from"react";var l=function(){var l,u="object"!==n(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,c=u?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],v=null===(l=null==c?void 0:c.enabled)||void 0===l||l,d=r(),s=e(d,2),a=s[0],f=s[1],g=o(null),h=o();return h.current=null==c?void 0:c.onChange,i((function(){if(v){var n,r=u?function(n){return"function"==typeof n?n():n instanceof Element?n:n.current}(u):g.current,o=new IntersectionObserver((function(n){var t,r=e(n,1)[0];f(r),null===(t=h.current)||void 0===t||t.call(h,r)}),t(t({},c),{},{root:(n=null==c?void 0:c.root,n?n instanceof Element||n instanceof Document?n:n.current:document)}));return o.observe(r),function(){o.disconnect()}}}),[u,null==c?void 0:c.rootMargin,null==c?void 0:c.threshold,v]),u?{entry:a,inView:!(null==a||!a.isIntersecting)}:{ref:g,entry:a,inView:!(null==a||!a.isIntersecting)}};export{l as useIntersectionObserver};
3
3
  //# sourceMappingURL=useIntersectionObserver.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{a as e,_ as r}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as t,useRef as n,useEffect as u}from"react";import{useEvent as l}from"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var o=function(){for(var o,i,a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var f=s[0],v=null!==(o="number"==typeof s[1]?s[1]:s[1].interval)&&void 0!==o?o:1e3,p="object"===e(s[1])?s[1]:s[2],m=null===(i=null==p?void 0:p.enabled)||void 0===i||i,I=t(null==m||m),j=r(I,2),b=j[0],d=j[1],h=n(),y=l(f);u((function(){if(m)return h.current=setInterval(y,v),function(){clearInterval(h.current)}}),[m,v]);return{isActive:b,pause:function(){d(!1),clearInterval(h.current)},resume:function(){v<=0||(d(!0),clearInterval(h.current),h.current=setInterval(y,v))}}};export{o as useInterval};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{b as e,_ as r}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as t,useRef as n,useEffect as u}from"react";import{useEvent as l}from"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var o=function(){for(var o,i,a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var f=s[0],v=null!==(o="number"==typeof s[1]?s[1]:s[1].interval)&&void 0!==o?o:1e3,p="object"===e(s[1])?s[1]:s[2],m=null===(i=null==p?void 0:p.enabled)||void 0===i||i,I=t(null==m||m),b=r(I,2),j=b[0],d=b[1],h=n(),y=l(f);u((function(){if(m)return h.current=setInterval(y,v),function(){clearInterval(h.current)}}),[m,v]);return{isActive:j,pause:function(){d(!1),clearInterval(h.current)},resume:function(){v<=0||(d(!0),clearInterval(h.current),h.current=setInterval(y,v))}}};export{o as useInterval};
3
3
  //# sourceMappingURL=useInterval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInterval.js","sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n enabled?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n isActive: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n}\n\ntype UseInterval = {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n};\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediate=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { isActive, pause, resume } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediate=true] Start the interval immediately\n *\n * @example\n * const { isActive, pause, resume } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const enabled = options?.enabled ?? true;\n\n const [isActive, setIsActive] = useState<boolean>(enabled ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n const internalCallback = useEvent(callback);\n\n useEffect(() => {\n if (!enabled) return;\n\n intervalIdRef.current = setInterval(internalCallback, interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, interval]);\n\n const pause = () => {\n setIsActive(false);\n clearInterval(intervalIdRef.current);\n };\n\n const resume = () => {\n if (interval <= 0) return;\n setIsActive(true);\n clearInterval(intervalIdRef.current);\n intervalIdRef.current = setInterval(internalCallback, interval);\n };\n\n return {\n isActive,\n pause,\n resume\n };\n}) as UseInterval;\n"],"names":["useInterval","_ref","_options$enabled","_len","arguments","length","params","Array","_key","callback","interval","options","_typeof","enabled","_useState","useState","_useState2","_slicedToArray","isActive","setIsActive","intervalIdRef","useRef","internalCallback","useEvent","useEffect","current","setInterval","clearInterval","pause","resume"],"mappings":";oSA8CaA,EAAe,WAAyC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAArCC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACpC,IAAMC,EAAWH,EAAO,GAClBI,EAGkE,QAH1DT,EACW,iBAAdK,EAAO,GACZA,EAAO,GACNA,EAAO,GAAkDI,gBAAQ,IAAAT,EAAAA,EAAgB,IAClFU,EACiB,WAArBC,EAAON,EAAO,IACTA,EAAO,GACPA,EAAO,GACRO,EAA0BX,QAAnBA,EAAGS,aAAO,EAAPA,EAASE,eAAOX,IAAAA,GAAAA,EAEhCY,EAAgCC,EAAkBF,SAAAA,GAAgBG,EAAAC,EAAAH,EAAA,GAA3DI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAEtBI,EAAgBC,IAChBC,EAAmBC,EAASd,GAElCe,GAAU,WACR,GAAKX,EAGL,OADAO,EAAcK,QAAUC,YAAYJ,EAAkBZ,GAC/C,WACLiB,cAAcP,EAAcK,SAEhC,GAAG,CAACZ,EAASH,IAcb,MAAO,CACLQ,SAAAA,EACAU,MAdY,WACZT,GAAY,GACZQ,cAAcP,EAAcK,UAa5BI,OAVa,WACTnB,GAAY,IAChBS,GAAY,GACZQ,cAAcP,EAAcK,SAC5BL,EAAcK,QAAUC,YAAYJ,EAAkBZ,KAQ1D"}
1
+ {"version":3,"file":"useInterval.js","sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n enabled?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n isActive: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n}\n\ntype UseInterval = {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n};\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n * @category Time\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediate=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { isActive, pause, resume } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediate=true] Start the interval immediately\n *\n * @example\n * const { isActive, pause, resume } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const enabled = options?.enabled ?? true;\n\n const [isActive, setIsActive] = useState<boolean>(enabled ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n const internalCallback = useEvent(callback);\n\n useEffect(() => {\n if (!enabled) return;\n\n intervalIdRef.current = setInterval(internalCallback, interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, interval]);\n\n const pause = () => {\n setIsActive(false);\n clearInterval(intervalIdRef.current);\n };\n\n const resume = () => {\n if (interval <= 0) return;\n setIsActive(true);\n clearInterval(intervalIdRef.current);\n intervalIdRef.current = setInterval(internalCallback, interval);\n };\n\n return {\n isActive,\n pause,\n resume\n };\n}) as UseInterval;\n"],"names":["useInterval","_ref","_options$enabled","_len","arguments","length","params","Array","_key","callback","interval","options","_typeof","enabled","_useState","useState","_useState2","_slicedToArray","isActive","setIsActive","intervalIdRef","useRef","internalCallback","useEvent","useEffect","current","setInterval","clearInterval","pause","resume"],"mappings":";oSA+CaA,EAAe,WAAyC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAArCC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACpC,IAAMC,EAAWH,EAAO,GAClBI,EAGkE,QAH1DT,EACW,iBAAdK,EAAO,GACZA,EAAO,GACNA,EAAO,GAAkDI,gBAAQ,IAAAT,EAAAA,EAAgB,IAClFU,EACiB,WAArBC,EAAON,EAAO,IACTA,EAAO,GACPA,EAAO,GACRO,EAA0BX,QAAnBA,EAAGS,aAAO,EAAPA,EAASE,eAAOX,IAAAA,GAAAA,EAEhCY,EAAgCC,EAAkBF,SAAAA,GAAgBG,EAAAC,EAAAH,EAAA,GAA3DI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAEtBI,EAAgBC,IAChBC,EAAmBC,EAASd,GAElCe,GAAU,WACR,GAAKX,EAGL,OADAO,EAAcK,QAAUC,YAAYJ,EAAkBZ,GAC/C,WACLiB,cAAcP,EAAcK,SAEhC,GAAG,CAACZ,EAASH,IAcb,MAAO,CACLQ,SAAAA,EACAU,MAdY,WACZT,GAAY,GACZQ,cAAcP,EAAcK,UAa5BI,OAVa,WACTnB,GAAY,IAChBS,GAAY,GACZQ,cAAcP,EAAcK,SAC5BL,EAAcK,QAAUC,YAAYJ,EAAkBZ,KAQ1D"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
2
  import{useRef as r}from"react";var t=function(){var t=r(!0);return!0===t.current?(t.current=!1,!0):t.current};export{t as useIsFirstRender};
3
3
  //# sourceMappingURL=useIsFirstRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFirstRender.js","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } 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 = 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","useRef","current"],"mappings":";mCAWaA,EAAmB,WAC9B,IAAMC,EAAYC,GAAO,GAEzB,OAA0B,IAAtBD,EAAUE,SACZF,EAAUE,SAAU,GACb,GAGFF,EAAUE,OACnB"}
1
+ {"version":3,"file":"useIsFirstRender.js","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n * @category Lifecycle\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 = 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","useRef","current"],"mappings":";mCAYaA,EAAmB,WAC9B,IAAMC,EAAYC,GAAO,GAEzB,OAA0B,IAAtBD,EAAUE,SACZF,EAAUE,SAAU,GACb,GAGFF,EAAUE,OACnB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
2
  import{useLayoutEffect as r,useEffect as t}from"react";import{isClient as e}from"../../utils/helpers/isClient.js";var i=e?r:t;export{i as useIsomorphicLayoutEffect};
3
3
  //# sourceMappingURL=useIsomorphicLayoutEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\nimport { isClient } from '@/utils/helpers';\n\n/**\n * @name useIsomorphicLayoutEffect\n * @description - Hook conditionally selects either `useLayoutEffect` or `useEffect` based on the environment\n *\n * @example\n * useIsomorphicLayoutEffect(() => console.log('effect'), [])\n */\nexport const useIsomorphicLayoutEffect = isClient ? useLayoutEffect : useEffect;\n"],"names":["useIsomorphicLayoutEffect","isClient","useLayoutEffect","useEffect"],"mappings":";sHAWaA,EAA4BC,EAAWC,EAAkBC"}
1
+ {"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\nimport { isClient } from '@/utils/helpers';\n\n/**\n * @name useIsomorphicLayoutEffect\n * @description - Hook conditionally selects either `useLayoutEffect` or `useEffect` based on the environment\n * @category Lifecycle\n *\n * @example\n * useIsomorphicLayoutEffect(() => console.log('effect'), [])\n */\nexport const useIsomorphicLayoutEffect = isClient ? useLayoutEffect : useEffect;\n"],"names":["useIsomorphicLayoutEffect","isClient","useLayoutEffect","useEffect"],"mappings":";sHAYaA,EAA4BC,EAAWC,EAAkBC"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as r}from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var i=function(i,o){var n,s,u=r(!1),l=e(u,2),a=l[0],p=l[1];return t(null!==(n=null==o?void 0:o.target)&&void 0!==n?n:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&p(!0)})),t(null!==(s=null==o?void 0:o.target)&&void 0!==s?s:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&p(!1)})),a};export{i as useKeyPress};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as r}from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var i=function(i,o){var n,s,u=r(!1),l=e(u,2),a=l[0],p=l[1];return t(null!==(n=null==o?void 0:o.target)&&void 0!==n?n:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&p(!0)})),t(null!==(s=null==o?void 0:o.target)&&void 0!==s?s:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&p(!1)})),a};export{i as useKeyPress};
3
3
  //# sourceMappingURL=useKeyPress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPress.js","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The use key press options type */\nexport type UseKeyPressOptions = {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n};\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n *\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\n * @returns {useKeyPressReturns} Return boolean type (`true` if the specified keys are currently pressed)\n *\n * @example\n * const isKeyPressed = useKeyPress('a');\n */\nexport const useKeyPress = (key: UseKeyPressKey, options?: UseKeyPressOptions) => {\n const [pressed, setPressed] = useState(false);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(true);\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(false);\n };\n\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\n\n return pressed;\n};\n"],"names":["useKeyPress","key","options","_options$target","_options$target2","_useState","useState","_useState2","_slicedToArray","pressed","setPressed","useEventListener","target","window","event","Array","isArray","includes"],"mappings":";sTAyBO,IAAMA,EAAc,SAACC,EAAqBC,GAAiC,IAAAC,EAAAC,EAChFC,EAA8BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAtCI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAa1B,OAHAI,UAAgBR,EAACD,aAAO,EAAPA,EAASU,cAAM,IAAAT,EAAAA,EAAIU,OAAQ,WAR1B,SAACC,IACbC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,MAQnFC,UAAgBP,EAACF,aAAO,EAAPA,EAASU,cAAM,IAAAR,EAAAA,EAAIS,OAAQ,SAL5B,SAACC,IACXC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,MAM5ED,CACT"}
1
+ {"version":3,"file":"useKeyPress.js","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The use key press options type */\nexport type UseKeyPressOptions = {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n};\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\n *\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\n * @returns {useKeyPressReturns} Return boolean type (`true` if the specified keys are currently pressed)\n *\n * @example\n * const isKeyPressed = useKeyPress('a');\n */\nexport const useKeyPress = (key: UseKeyPressKey, options?: UseKeyPressOptions) => {\n const [pressed, setPressed] = useState(false);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(true);\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(false);\n };\n\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\n\n return pressed;\n};\n"],"names":["useKeyPress","key","options","_options$target","_options$target2","_useState","useState","_useState2","_slicedToArray","pressed","setPressed","useEventListener","target","window","event","Array","isArray","includes"],"mappings":";sTA0BO,IAAMA,EAAc,SAACC,EAAqBC,GAAiC,IAAAC,EAAAC,EAChFC,EAA8BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAtCI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAa1B,OAHAI,UAAgBR,EAACD,aAAO,EAAPA,EAASU,cAAM,IAAAT,EAAAA,EAAIU,OAAQ,WAR1B,SAACC,IACbC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,MAQnFC,UAAgBP,EAACF,aAAO,EAAPA,EAASU,cAAM,IAAAR,EAAAA,EAAIS,OAAQ,SAL5B,SAACC,IACXC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,MAM5ED,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
2
  import{useEventListener as e}from"../useEventListener/useEventListener.js";import"react";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var t=function(){var t=Array.isArray(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:[arguments.length<=0?void 0:arguments[0]],n=(arguments.length<=1?void 0:arguments[1])instanceof Function?null:arguments.length<=1?void 0:arguments[1],i=n?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1];e(null!=n?n:window,"keydown",(function(e){t.includes(e.key)&&i(e)}),n?arguments.length<=3?void 0:arguments[3]:arguments.length<=2?void 0:arguments[2])};export{t as useKeyPressEvent};
3
3
  //# sourceMappingURL=useKeyPressEvent.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
2
  import{useEventListener as o}from"../useEventListener/useEventListener.js";import"react";import"../useEvent/useEvent.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";var e=function(e){var n,t;o(null!==(n=null==e?void 0:e.target)&&void 0!==n?n:window,"keydown",(function(o){var n;return null==e||null===(n=e.onKeyDown)||void 0===n?void 0:n.call(e,o)})),o(null!==(t=null==e?void 0:e.target)&&void 0!==t?t:window,"keyup",(function(o){var n;return null==e||null===(n=e.onKeyUp)||void 0===n?void 0:n.call(e,o)}))};export{e as useKeyboard};
3
3
  //# sourceMappingURL=useKeyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboard.js","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use key press options type */\nexport type UseKeyboardParams = {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n /** The callback function to be invoked on key down */\n onKeyDown?: (event: KeyboardEvent) => void;\n /** The callback function to be invoked on key up */\n onKeyUp?: (event: KeyboardEvent) => void;\n};\n\n/**\n * @name useKeyboard\n * @description - Hook that help to listen for keyboard events\n *\n * @param {UseEventListenerTarget} [target=window] The target to attach the event listeners to\n * @param {(event: KeyboardEvent) => void} [onKeyDown] The callback function to be invoked on key down\n * @param {(event: KeyboardEvent) => void} [onKeyUp] The callback function to be invoked on key up\n *\n * @example\n * useKeyboard({ onKeyDown: () => console.log('key down'), onKeyUp: () => console.log('key up') })\n */\nexport const useKeyboard = (params?: UseKeyboardParams) => {\n const onKeyDown = (event: KeyboardEvent) => params?.onKeyDown?.(event);\n const onKeyUp = (event: KeyboardEvent) => params?.onKeyUp?.(event);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["useKeyboard","params","_params$target","_params$target2","useEventListener","target","window","event","_params$onKeyDown","onKeyDown","call","_params$onKeyUp","onKeyUp"],"mappings":";uOAwBaA,EAAc,SAACC,GAA+B,IAAAC,EAAAC,EAIzDC,UAAgBF,EAACD,aAAM,EAANA,EAAQI,cAAM,IAAAH,EAAAA,EAAII,OAAQ,WAHzB,SAACC,GAAoB,IAAAC,EAAA,OAAKP,iBAAMO,EAANP,EAAQQ,iBAAS,IAAAD,OAAA,EAAjBA,EAAAE,KAAAT,EAAoBM,EAAM,IAItEH,UAAgBD,EAACF,aAAM,EAANA,EAAQI,cAAM,IAAAF,EAAAA,EAAIG,OAAQ,SAH3B,SAACC,GAAoB,IAAAI,EAAA,OAAKV,iBAAMU,EAANV,EAAQW,eAAO,IAAAD,OAAA,EAAfA,EAAAD,KAAAT,EAAkBM,EAAM,GAIpE"}
1
+ {"version":3,"file":"useKeyboard.js","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use key press options type */\nexport type UseKeyboardParams = {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n /** The callback function to be invoked on key down */\n onKeyDown?: (event: KeyboardEvent) => void;\n /** The callback function to be invoked on key up */\n onKeyUp?: (event: KeyboardEvent) => void;\n};\n\n/**\n * @name useKeyboard\n * @description - Hook that help to listen for keyboard events\n * @category Sensors\n *\n * @param {UseEventListenerTarget} [target=window] The target to attach the event listeners to\n * @param {(event: KeyboardEvent) => void} [onKeyDown] The callback function to be invoked on key down\n * @param {(event: KeyboardEvent) => void} [onKeyUp] The callback function to be invoked on key up\n *\n * @example\n * useKeyboard({ onKeyDown: () => console.log('key down'), onKeyUp: () => console.log('key up') })\n */\nexport const useKeyboard = (params?: UseKeyboardParams) => {\n const onKeyDown = (event: KeyboardEvent) => params?.onKeyDown?.(event);\n const onKeyUp = (event: KeyboardEvent) => params?.onKeyUp?.(event);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["useKeyboard","params","_params$target","_params$target2","useEventListener","target","window","event","_params$onKeyDown","onKeyDown","call","_params$onKeyUp","onKeyUp"],"mappings":";uOAyBaA,EAAc,SAACC,GAA+B,IAAAC,EAAAC,EAIzDC,UAAgBF,EAACD,aAAM,EAANA,EAAQI,cAAM,IAAAH,EAAAA,EAAII,OAAQ,WAHzB,SAACC,GAAoB,IAAAC,EAAA,OAAKP,iBAAMO,EAANP,EAAQQ,iBAAS,IAAAD,OAAA,EAAjBA,EAAAE,KAAAT,EAAoBM,EAAM,IAItEH,UAAgBD,EAACF,aAAM,EAANA,EAAQI,cAAM,IAAAF,EAAAA,EAAIG,OAAQ,SAH3B,SAACC,GAAoB,IAAAI,EAAA,OAAKV,iBAAMU,EAANV,EAAQW,eAAO,IAAAD,OAAA,EAAfA,EAAAD,KAAAT,EAAkBM,EAAM,GAIpE"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.40 */
2
- import{_ as e,e as o}from"../../_rollupPluginBabelHelpers-C3RCtdrL.js";import{useState as t}from"react";import{useDidUpdate as n}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(i){var u,s,l,c=null===(u=null==i?void 0:i.enabled)||void 0===u||u,d=t([]),f=e(d,2),p=f[0],a=f[1];return n((function(){a([])}),[c]),r(null!==(s=null==i?void 0:i.target)&&void 0!==s?s:window,"keydown",(function(e){c&&a((function(t){return t.some((function(o){return o.code===e.code}))?t:[].concat(o(t),[{key:e.key,code:e.code}])}))})),r(null!==(l=null==i?void 0:i.target)&&void 0!==l?l:window,"keyup",(function(e){c&&a((function(o){return o.filter((function(o){return o.code!==e.code}))}))})),p};export{i as useKeysPressed};
1
+ /* @license @siberiacancode/reactuse v0.0.42 */
2
+ import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-BvpZjoHU.js";import{useState as t}from"react";import{useDidUpdate as n}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(i){var u,s,l,c=null===(u=null==i?void 0:i.enabled)||void 0===u||u,d=t([]),f=e(d,2),p=f[0],a=f[1];return n((function(){a([])}),[c]),r(null!==(s=null==i?void 0:i.target)&&void 0!==s?s:window,"keydown",(function(e){c&&a((function(t){return t.some((function(o){return o.code===e.code}))?t:[].concat(o(t),[{key:e.key,code:e.code}])}))})),r(null!==(l=null==i?void 0:i.target)&&void 0!==l?l:window,"keyup",(function(e){c&&a((function(o){return o.filter((function(o){return o.code!==e.code}))}))})),p};export{i as useKeysPressed};
3
3
  //# sourceMappingURL=useKeysPressed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeysPressed.js","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use keys pressed params */\ninterface UseKeysPressedParams {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\n/**\n * @name useKeysPressed\n * @description - Hook for get keys that were pressed\n *\n * @param {UseEventListenerTarget} [params.target=window] The target to attach the event listeners to\n * @param {boolean} [params.enabled=bollean] Enable or disable the event listeners\n * @returns {useKeysPressedReturns} Array of strings with keys that were press\n *\n * @example\n * const pressedKeys = useKeysPressed();\n */\nexport const useKeysPressed = (params?: UseKeysPressedParams) => {\n const enabled = params?.enabled ?? true;\n const [keys, setKeys] = useState<{ key: string; code: string }[]>([]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => {\n if (prevKeys.some(({ code }) => code === event.code)) return prevKeys;\n return [...prevKeys, { key: event.key, code: event.code }];\n });\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => prevKeys.filter(({ code }) => code !== event.code));\n };\n\n useDidUpdate(() => {\n setKeys([]);\n }, [enabled]);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n\n return keys;\n};\n"],"names":["useKeysPressed","params","_params$enabled","_params$target","_params$target2","enabled","_useState","useState","_useState2","_slicedToArray","keys","setKeys","useDidUpdate","useEventListener","target","window","event","prevKeys","some","_ref","code","concat","_toConsumableArray","key","filter","_ref2"],"mappings":";gYA0BaA,EAAiB,SAACC,GAAkC,IAAAC,EAAAC,EAAAC,EACzDC,EAAyBH,QAAlBA,EAAGD,aAAM,EAANA,EAAQI,eAAOH,IAAAA,GAAAA,EAC/BI,EAAwBC,EAA0C,IAAGC,EAAAC,EAAAH,EAAA,GAA9DI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAsBpB,OAPAI,GAAa,WACXD,EAAQ,GACV,GAAG,CAACN,IAEJQ,UAAgBV,EAACF,aAAM,EAANA,EAAQa,cAAM,IAAAX,EAAAA,EAAIY,OAAQ,WAjBzB,SAACC,GACZX,GACLM,GAAQ,SAACM,GACP,OAAIA,EAASC,MAAK,SAAAC,GAAO,OAAAA,EAAJC,OAAoBJ,EAAMI,QAAcH,EAC7D,GAAAI,OAAAC,EAAWL,GAAU,CAAA,CAAEM,IAAKP,EAAMO,IAAKH,KAAMJ,EAAMI,OACrD,OAaFP,UAAgBT,EAACH,aAAM,EAANA,EAAQa,cAAM,IAAAV,EAAAA,EAAIW,OAAQ,SAV3B,SAACC,GACVX,GACLM,GAAQ,SAACM,GAAQ,OAAKA,EAASO,QAAO,SAAAC,GAAO,OAAAA,EAAJL,OAAoBJ,EAAMI,cAU9DV,CACT"}
1
+ {"version":3,"file":"useKeysPressed.js","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use keys pressed params */\ninterface UseKeysPressedParams {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\n/**\n * @name useKeysPressed\n * @description - Hook for get keys that were pressed\n * @category Sensors\n *\n * @param {UseEventListenerTarget} [params.target=window] The target to attach the event listeners to\n * @param {boolean} [params.enabled=bollean] Enable or disable the event listeners\n * @returns {useKeysPressedReturns} Array of strings with keys that were press\n *\n * @example\n * const pressedKeys = useKeysPressed();\n */\nexport const useKeysPressed = (params?: UseKeysPressedParams) => {\n const enabled = params?.enabled ?? true;\n const [keys, setKeys] = useState<{ key: string; code: string }[]>([]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => {\n if (prevKeys.some(({ code }) => code === event.code)) return prevKeys;\n return [...prevKeys, { key: event.key, code: event.code }];\n });\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!enabled) return;\n setKeys((prevKeys) => prevKeys.filter(({ code }) => code !== event.code));\n };\n\n useDidUpdate(() => {\n setKeys([]);\n }, [enabled]);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n\n return keys;\n};\n"],"names":["useKeysPressed","params","_params$enabled","_params$target","_params$target2","enabled","_useState","useState","_useState2","_slicedToArray","keys","setKeys","useDidUpdate","useEventListener","target","window","event","prevKeys","some","_ref","code","concat","_toConsumableArray","key","filter","_ref2"],"mappings":";gYA2BaA,EAAiB,SAACC,GAAkC,IAAAC,EAAAC,EAAAC,EACzDC,EAAyBH,QAAlBA,EAAGD,aAAM,EAANA,EAAQI,eAAOH,IAAAA,GAAAA,EAC/BI,EAAwBC,EAA0C,IAAGC,EAAAC,EAAAH,EAAA,GAA9DI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAsBpB,OAPAI,GAAa,WACXD,EAAQ,GACV,GAAG,CAACN,IAEJQ,UAAgBV,EAACF,aAAM,EAANA,EAAQa,cAAM,IAAAX,EAAAA,EAAIY,OAAQ,WAjBzB,SAACC,GACZX,GACLM,GAAQ,SAACM,GACP,OAAIA,EAASC,MAAK,SAAAC,GAAO,OAAAA,EAAJC,OAAoBJ,EAAMI,QAAcH,EAC7D,GAAAI,OAAAC,EAAWL,GAAU,CAAA,CAAEM,IAAKP,EAAMO,IAAKH,KAAMJ,EAAMI,OACrD,OAaFP,UAAgBT,EAACH,aAAM,EAANA,EAAQa,cAAM,IAAAV,EAAAA,EAAIW,OAAQ,SAV3B,SAACC,GACVX,GACLM,GAAQ,SAACM,GAAQ,OAAKA,EAASO,QAAO,SAAAC,GAAO,OAAAA,EAAJL,OAAoBJ,EAAMI,cAU9DV,CACT"}