@siberiacancode/reactuse 0.0.71 → 0.0.72

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 (312) hide show
  1. package/dist/cjs/{_rollupPluginBabelHelpers-mppFXOYB.js → _rollupPluginBabelHelpers-We1VD7hv.js} +2 -2
  2. package/dist/cjs/_rollupPluginBabelHelpers-We1VD7hv.js.map +1 -0
  3. package/dist/cjs/hooks/index.js +2 -2
  4. package/dist/cjs/hooks/useActiveElement/useActiveElement.js +3 -0
  5. package/dist/cjs/hooks/useActiveElement/useActiveElement.js.map +1 -0
  6. package/dist/cjs/hooks/useAsync/useAsync.js +2 -2
  7. package/dist/cjs/hooks/useAsync/useAsync.js.map +1 -1
  8. package/dist/cjs/hooks/useBattery/useBattery.js +2 -2
  9. package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
  10. package/dist/cjs/hooks/useBoolean/useBoolean.js.map +1 -1
  11. package/dist/cjs/hooks/useBreakpoints/constants/breakpoints.js +1 -1
  12. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.js +2 -2
  13. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.js.map +1 -1
  14. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  15. package/dist/cjs/hooks/useClickOutside/useClickOutside.js +2 -2
  16. package/dist/cjs/hooks/useClipboard/useClipboard.js +2 -2
  17. package/dist/cjs/hooks/useClipboard/useClipboard.js.map +1 -1
  18. package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
  19. package/dist/cjs/hooks/useCounter/useCounter.js.map +1 -1
  20. package/dist/cjs/hooks/useCssVar/useCssVar.js +2 -2
  21. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  22. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
  23. package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
  24. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
  25. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js.map +1 -1
  26. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.js +2 -2
  27. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +1 -1
  28. package/dist/cjs/hooks/useDisclosure/useDisclosure.js +2 -2
  29. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
  30. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  31. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  32. package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
  33. package/dist/cjs/hooks/useEventListener/useEventListener.js +2 -2
  34. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
  35. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
  36. package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
  37. package/dist/cjs/hooks/useField/useField.js +2 -2
  38. package/dist/cjs/hooks/useField/useField.js.map +1 -1
  39. package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
  40. package/dist/cjs/hooks/useFileDialog/useFileDialog.js.map +1 -1
  41. package/dist/cjs/hooks/useFocus/useFocus.js +2 -2
  42. package/dist/cjs/hooks/useFocus/useFocus.js.map +1 -1
  43. package/dist/cjs/hooks/useFps/useFps.js +2 -2
  44. package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
  45. package/dist/cjs/hooks/useFullscreen/useFullscreen.js.map +1 -1
  46. package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
  47. package/dist/cjs/hooks/useGamepad/useGamepad.js +2 -2
  48. package/dist/cjs/hooks/useGeolocation/useGeolocation.js +2 -2
  49. package/dist/cjs/hooks/useHash/useHash.js +2 -2
  50. package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
  51. package/dist/cjs/hooks/useHotkeys/useHotkeys.js.map +1 -1
  52. package/dist/cjs/hooks/useHover/useHover.js +2 -2
  53. package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
  54. package/dist/cjs/hooks/useIdle/useIdle.js.map +1 -1
  55. package/dist/cjs/hooks/useImage/useImage.js +2 -2
  56. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
  57. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
  58. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  59. package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
  60. package/dist/cjs/hooks/useInterval/useInterval.js.map +1 -1
  61. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  62. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  63. package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
  64. package/dist/cjs/hooks/useKeyPress/useKeyPress.js.map +1 -1
  65. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  66. package/dist/cjs/hooks/useKeyboard/useKeyboard.js +2 -2
  67. package/dist/cjs/hooks/useKeyboard/useKeyboard.js.map +1 -1
  68. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
  69. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  70. package/dist/cjs/hooks/useLastChanged/useLastChanged.js +2 -2
  71. package/dist/cjs/hooks/useLastChanged/useLastChanged.js.map +1 -1
  72. package/dist/cjs/hooks/useList/useList.js +2 -2
  73. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
  74. package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
  75. package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
  76. package/dist/cjs/hooks/useLongPress/useLongPress.js.map +1 -1
  77. package/dist/cjs/hooks/useMap/useMap.js +2 -2
  78. package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
  79. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
  80. package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
  81. package/dist/cjs/hooks/useMount/useMount.js +1 -1
  82. package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
  83. package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
  84. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js +2 -2
  85. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  86. package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
  87. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
  88. package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
  89. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  90. package/dist/cjs/hooks/useOptimistic/useOptimistic.js +2 -2
  91. package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
  92. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.js +2 -2
  93. package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
  94. package/dist/cjs/hooks/usePaint/helpers/Paint.js +2 -2
  95. package/dist/cjs/hooks/usePaint/helpers/Pointer.js +2 -2
  96. package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
  97. package/dist/cjs/hooks/useParallax/useParallax.js +2 -2
  98. package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
  99. package/dist/cjs/hooks/usePermission/usePermission.js.map +1 -1
  100. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  101. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
  102. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.js +1 -1
  103. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  104. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
  105. package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
  106. package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
  107. package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
  108. package/dist/cjs/hooks/useQueue/useQueue.js.map +1 -1
  109. package/dist/cjs/hooks/useRaf/useRaf.js +2 -2
  110. package/dist/cjs/hooks/useRaf/useRaf.js.map +1 -1
  111. package/dist/cjs/hooks/useRafValue/useRafValue.js +2 -2
  112. package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
  113. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
  114. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js.map +1 -1
  115. package/dist/cjs/hooks/useRerender/useRerender.js +2 -2
  116. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +2 -2
  117. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  118. package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
  119. package/dist/cjs/hooks/useScript/useScript.js +2 -2
  120. package/dist/cjs/hooks/useScript/useScript.js.map +1 -1
  121. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
  122. package/dist/cjs/hooks/useSet/useSet.js +2 -2
  123. package/dist/cjs/hooks/useShare/useShare.js +2 -2
  124. package/dist/cjs/hooks/useStep/useStep.js +2 -2
  125. package/dist/cjs/hooks/useStopwatch/useStopwatch.js +2 -2
  126. package/dist/cjs/hooks/useStopwatch/useStopwatch.js.map +1 -1
  127. package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
  128. package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
  129. package/dist/cjs/hooks/useTime/useTime.js +2 -2
  130. package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
  131. package/dist/cjs/hooks/useTimer/useTimer.js +2 -2
  132. package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
  133. package/dist/cjs/hooks/useToggle/useToggle.js.map +1 -1
  134. package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
  135. package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
  136. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +2 -2
  137. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.js +3 -0
  138. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.js.map +1 -0
  139. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.js +2 -2
  140. package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
  141. package/dist/cjs/hooks/useWindowSize/useWindowSize.js.map +1 -1
  142. package/dist/cjs/hooks/useWizard/useWizard.js +2 -2
  143. package/dist/cjs/{index-Bi1s-nNB.js → index-CgoC48JK.js} +2 -2
  144. package/dist/cjs/{index-Bi1s-nNB.js.map → index-CgoC48JK.js.map} +1 -1
  145. package/dist/cjs/index.js +2 -2
  146. package/dist/cjs/utils/helpers/debounce.js +1 -1
  147. package/dist/cjs/utils/helpers/debounce.js.map +1 -1
  148. package/dist/cjs/utils/helpers/getElement.js +1 -1
  149. package/dist/cjs/utils/helpers/getRetry.js +1 -1
  150. package/dist/cjs/utils/helpers/index.js +1 -1
  151. package/dist/cjs/utils/helpers/isClient.js +1 -1
  152. package/dist/cjs/utils/helpers/throttle.js +1 -1
  153. package/dist/cjs/utils/helpers/throttle.js.map +1 -1
  154. package/dist/cjs/utils/helpers/time/getDate.js +1 -1
  155. package/dist/esm/{_rollupPluginBabelHelpers-DnmVbpNy.js → _rollupPluginBabelHelpers-DKveiPYY.js} +2 -2
  156. package/dist/esm/_rollupPluginBabelHelpers-DKveiPYY.js.map +1 -0
  157. package/dist/esm/hooks/index.js +2 -2
  158. package/dist/esm/hooks/useActiveElement/useActiveElement.js +3 -0
  159. package/dist/esm/hooks/useActiveElement/useActiveElement.js.map +1 -0
  160. package/dist/esm/hooks/useAsync/useAsync.js +2 -2
  161. package/dist/esm/hooks/useAsync/useAsync.js.map +1 -1
  162. package/dist/esm/hooks/useBattery/useBattery.js +2 -2
  163. package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
  164. package/dist/esm/hooks/useBoolean/useBoolean.js.map +1 -1
  165. package/dist/esm/hooks/useBreakpoints/constants/breakpoints.js +1 -1
  166. package/dist/esm/hooks/useBreakpoints/useBreakpoints.js +2 -2
  167. package/dist/esm/hooks/useBreakpoints/useBreakpoints.js.map +1 -1
  168. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  169. package/dist/esm/hooks/useClickOutside/useClickOutside.js +2 -2
  170. package/dist/esm/hooks/useClipboard/useClipboard.js +2 -2
  171. package/dist/esm/hooks/useClipboard/useClipboard.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/useCssVar/useCssVar.js +2 -2
  175. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  176. package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
  177. package/dist/esm/hooks/useDefault/useDefault.js +2 -2
  178. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
  179. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js.map +1 -1
  180. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.js +2 -2
  181. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
  182. package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
  183. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
  184. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  185. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  186. package/dist/esm/hooks/useEvent/useEvent.js +1 -1
  187. package/dist/esm/hooks/useEventListener/useEventListener.js +2 -2
  188. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
  189. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
  190. package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
  191. package/dist/esm/hooks/useField/useField.js +2 -2
  192. package/dist/esm/hooks/useField/useField.js.map +1 -1
  193. package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
  194. package/dist/esm/hooks/useFileDialog/useFileDialog.js.map +1 -1
  195. package/dist/esm/hooks/useFocus/useFocus.js +2 -2
  196. package/dist/esm/hooks/useFocus/useFocus.js.map +1 -1
  197. package/dist/esm/hooks/useFps/useFps.js +2 -2
  198. package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
  199. package/dist/esm/hooks/useFullscreen/useFullscreen.js.map +1 -1
  200. package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
  201. package/dist/esm/hooks/useGamepad/useGamepad.js +2 -2
  202. package/dist/esm/hooks/useGeolocation/useGeolocation.js +2 -2
  203. package/dist/esm/hooks/useHash/useHash.js +2 -2
  204. package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
  205. package/dist/esm/hooks/useHotkeys/useHotkeys.js.map +1 -1
  206. package/dist/esm/hooks/useHover/useHover.js +2 -2
  207. package/dist/esm/hooks/useIdle/useIdle.js +2 -2
  208. package/dist/esm/hooks/useIdle/useIdle.js.map +1 -1
  209. package/dist/esm/hooks/useImage/useImage.js +2 -2
  210. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
  211. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
  212. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  213. package/dist/esm/hooks/useInterval/useInterval.js +2 -2
  214. package/dist/esm/hooks/useInterval/useInterval.js.map +1 -1
  215. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  216. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  217. package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
  218. package/dist/esm/hooks/useKeyPress/useKeyPress.js.map +1 -1
  219. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  220. package/dist/esm/hooks/useKeyboard/useKeyboard.js +2 -2
  221. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  222. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
  223. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  224. package/dist/esm/hooks/useLastChanged/useLastChanged.js +2 -2
  225. package/dist/esm/hooks/useLastChanged/useLastChanged.js.map +1 -1
  226. package/dist/esm/hooks/useList/useList.js +2 -2
  227. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
  228. package/dist/esm/hooks/useLogger/useLogger.js +2 -2
  229. package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
  230. package/dist/esm/hooks/useLongPress/useLongPress.js.map +1 -1
  231. package/dist/esm/hooks/useMap/useMap.js +2 -2
  232. package/dist/esm/hooks/useMeasure/useMeasure.js +2 -2
  233. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
  234. package/dist/esm/hooks/useMemory/useMemory.js +2 -2
  235. package/dist/esm/hooks/useMount/useMount.js +1 -1
  236. package/dist/esm/hooks/useMouse/useMouse.js +2 -2
  237. package/dist/esm/hooks/useMutation/useMutation.js +2 -2
  238. package/dist/esm/hooks/useMutationObserver/useMutationObserver.js +2 -2
  239. package/dist/esm/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  240. package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
  241. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
  242. package/dist/esm/hooks/useOnline/useOnline.js +1 -1
  243. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  244. package/dist/esm/hooks/useOptimistic/useOptimistic.js +2 -2
  245. package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
  246. package/dist/esm/hooks/useOtpCredential/useOtpCredential.js +2 -2
  247. package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
  248. package/dist/esm/hooks/usePaint/helpers/Paint.js +2 -2
  249. package/dist/esm/hooks/usePaint/helpers/Pointer.js +2 -2
  250. package/dist/esm/hooks/usePaint/usePaint.js +2 -2
  251. package/dist/esm/hooks/useParallax/useParallax.js +2 -2
  252. package/dist/esm/hooks/usePermission/usePermission.js +2 -2
  253. package/dist/esm/hooks/usePermission/usePermission.js.map +1 -1
  254. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  255. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
  256. package/dist/esm/hooks/usePreferredDark/usePreferredDark.js +1 -1
  257. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  258. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
  259. package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
  260. package/dist/esm/hooks/useQuery/useQuery.js +2 -2
  261. package/dist/esm/hooks/useQueue/useQueue.js +2 -2
  262. package/dist/esm/hooks/useQueue/useQueue.js.map +1 -1
  263. package/dist/esm/hooks/useRaf/useRaf.js +2 -2
  264. package/dist/esm/hooks/useRaf/useRaf.js.map +1 -1
  265. package/dist/esm/hooks/useRafValue/useRafValue.js +2 -2
  266. package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
  267. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
  268. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js.map +1 -1
  269. package/dist/esm/hooks/useRerender/useRerender.js +2 -2
  270. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +2 -2
  271. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  272. package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
  273. package/dist/esm/hooks/useScript/useScript.js +2 -2
  274. package/dist/esm/hooks/useScript/useScript.js.map +1 -1
  275. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
  276. package/dist/esm/hooks/useSet/useSet.js +2 -2
  277. package/dist/esm/hooks/useShare/useShare.js +2 -2
  278. package/dist/esm/hooks/useStep/useStep.js +2 -2
  279. package/dist/esm/hooks/useStopwatch/useStopwatch.js +2 -2
  280. package/dist/esm/hooks/useStopwatch/useStopwatch.js.map +1 -1
  281. package/dist/esm/hooks/useStorage/useStorage.js +2 -2
  282. package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
  283. package/dist/esm/hooks/useTime/useTime.js +2 -2
  284. package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
  285. package/dist/esm/hooks/useTimer/useTimer.js +2 -2
  286. package/dist/esm/hooks/useToggle/useToggle.js +2 -2
  287. package/dist/esm/hooks/useToggle/useToggle.js.map +1 -1
  288. package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
  289. package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
  290. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +2 -2
  291. package/dist/esm/hooks/useWindowFocus/useWindowFocus.js +3 -0
  292. package/dist/esm/hooks/useWindowFocus/useWindowFocus.js.map +1 -0
  293. package/dist/esm/hooks/useWindowScroll/useWindowScroll.js +2 -2
  294. package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
  295. package/dist/esm/hooks/useWindowSize/useWindowSize.js.map +1 -1
  296. package/dist/esm/hooks/useWizard/useWizard.js +2 -2
  297. package/dist/esm/{index-DaDsOQsh.js → index-C0eyELV9.js} +2 -2
  298. package/dist/esm/{index-DaDsOQsh.js.map → index-C0eyELV9.js.map} +1 -1
  299. package/dist/esm/index.js +2 -2
  300. package/dist/esm/utils/helpers/debounce.js +1 -1
  301. package/dist/esm/utils/helpers/debounce.js.map +1 -1
  302. package/dist/esm/utils/helpers/getElement.js +1 -1
  303. package/dist/esm/utils/helpers/getRetry.js +1 -1
  304. package/dist/esm/utils/helpers/index.js +1 -1
  305. package/dist/esm/utils/helpers/isClient.js +1 -1
  306. package/dist/esm/utils/helpers/throttle.js +1 -1
  307. package/dist/esm/utils/helpers/throttle.js.map +1 -1
  308. package/dist/esm/utils/helpers/time/getDate.js +1 -1
  309. package/dist/index.d.ts +28 -2
  310. package/package.json +1 -1
  311. package/dist/cjs/_rollupPluginBabelHelpers-mppFXOYB.js.map +0 -1
  312. package/dist/esm/_rollupPluginBabelHelpers-DnmVbpNy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useEyeDropper.js","sources":["../../../../src/hooks/useEyeDropper/useEyeDropper.ts"],"sourcesContent":["import { useState } from 'react';\r\n\r\nexport interface ColorSelectionOptions {\r\n signal?: AbortSignal;\r\n}\r\n\r\nexport interface ColorSelectionResult {\r\n sRGBHex: string;\r\n}\r\n\r\nexport interface EyeDropper {\r\n open: (options?: ColorSelectionOptions) => Promise<ColorSelectionResult>;\r\n}\r\n\r\nexport interface EyeDropperConstructor {\r\n new (): EyeDropper;\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n readonly EyeDropper?: EyeDropperConstructor | undefined;\r\n }\r\n}\r\n\r\n/** The color selection return type */\r\nexport interface UseEyeDropperReturn {\r\n /** The eye dropper supported status */\r\n supported: boolean;\r\n /** The eye dropper value */\r\n value?: string;\r\n /** The eye dropper open method */\r\n open: (colorSelectionOptions?: ColorSelectionOptions) => Promise<ColorSelectionResult>;\r\n}\r\n\r\n/**\r\n * @name useEyeDropper\r\n * @description - Hook that gives you access to the eye dropper\r\n * @category Browser\r\n *\r\n * @param {string} [initialValue=undefined] The initial value for the eye dropper\r\n * @returns {UseEyeDropperReturn} An object containing the supported status, the value and the open method\r\n *\r\n * @example\r\n * const { supported, value, open } = useEyeDropper();\r\n */\r\nexport const useEyeDropper = (\r\n initialValue: string | undefined = undefined\r\n): UseEyeDropperReturn => {\r\n const supported = window && 'EyeDropper' in window;\r\n const [value, setValue] = useState(initialValue);\r\n\r\n const open = async (colorSelectionOptions?: ColorSelectionOptions) => {\r\n if (!window.EyeDropper) throw new Error('EyeDropper is not supported');\r\n const eyeDropper = new window.EyeDropper();\r\n const result = await eyeDropper.open(colorSelectionOptions);\r\n setValue(result.sRGBHex);\r\n return result;\r\n };\r\n\r\n return {\r\n supported,\r\n value,\r\n open\r\n };\r\n};\r\n"],"names":["useEyeDropper","supported","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":";mHA6CaA,EAAgB,WAEH,IAClBC,EAAYC,QAAU,eAAgBA,OAC5CC,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,CACLJ,UAAAA,EACAS,MAAAA,EACAE,KAAAA,EAEJ"}
1
+ {"version":3,"file":"useEyeDropper.js","sources":["../../../../src/hooks/useEyeDropper/useEyeDropper.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport interface ColorSelectionOptions {\n signal?: AbortSignal;\n}\n\nexport interface ColorSelectionResult {\n sRGBHex: string;\n}\n\nexport interface EyeDropper {\n open: (options?: ColorSelectionOptions) => Promise<ColorSelectionResult>;\n}\n\nexport interface EyeDropperConstructor {\n new (): EyeDropper;\n}\n\ndeclare global {\n interface Window {\n readonly EyeDropper?: EyeDropperConstructor | undefined;\n }\n}\n\n/** The color selection return type */\nexport interface UseEyeDropperReturn {\n /** The eye dropper supported status */\n supported: boolean;\n /** The eye dropper value */\n value?: string;\n /** The eye dropper open method */\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 = window && 'EyeDropper' in window;\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","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":";mHA6CaA,EAAgB,WAEH,IAClBC,EAAYC,QAAU,eAAgBA,OAC5CC,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,CACLJ,UAAAA,EACAS,MAAAA,EACAE,KAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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.72 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-DKveiPYY.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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e,d as r,e as n}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as e,d as r,e as n}from"../../_rollupPluginBabelHelpers-DKveiPYY.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';\r\n\r\nimport { useRerender } from '../useRerender/useRerender';\r\n\r\n/** The use field params type */\r\nexport interface UseFieldParams<Value> {\r\n /** The initial value */\r\n initialValue?: Value;\r\n /** The initial touched */\r\n initialTouched?: boolean;\r\n /** The auto focus */\r\n autoFocus?: boolean;\r\n /** The validate on mount */\r\n validateOnChange?: boolean;\r\n /** The validate on blur */\r\n validateOnBlur?: boolean;\r\n /** The validate on mount */\r\n validateOnMount?: boolean;\r\n}\r\n\r\n/** The use field register params type */\r\nexport interface UseFieldRegisterParams {\r\n /** The required validation */\r\n required?: string;\r\n /** The min value validation */\r\n max?: {\r\n value: number;\r\n message: string;\r\n };\r\n /** The max value validation */\r\n min?: {\r\n value: number;\r\n message: string;\r\n };\r\n /** The max length validation */\r\n maxLength?: {\r\n value: number;\r\n message: string;\r\n };\r\n /** The min length validation */\r\n minLength?: {\r\n value: number;\r\n message: string;\r\n };\r\n /** The pattern validation */\r\n pattern?: {\r\n value: RegExp;\r\n message: string;\r\n };\r\n /** The custom validation */\r\n validate?: (value: string) => Promise<string | true>;\r\n}\r\n\r\n/** The use field return type */\r\nexport interface UseFieldReturn<Value> {\r\n /** The register function */\r\n register: (params?: UseFieldRegisterParams) => {\r\n onBlur: () => void;\r\n onChange: () => void;\r\n ref: (\r\n node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null | undefined\r\n ) => void;\r\n };\r\n /** The get value function */\r\n getValue: () => Value;\r\n /** The set value function */\r\n setValue: (value: Value) => void;\r\n /** The dirty state */\r\n dirty: boolean;\r\n /** The error state */\r\n error?: string;\r\n /** The set error function */\r\n touched: boolean;\r\n /** The focus function */\r\n focus: () => void;\r\n /** The watch function */\r\n watch: () => Value;\r\n /** The reset function */\r\n reset: () => void;\r\n /** The set error function */\r\n setError: (error: string) => void;\r\n /** The set error function */\r\n clearError: () => void;\r\n}\r\n\r\n/**\r\n * @name useField\r\n * @description - Hook to manage a form field\r\n * @category Utilities\r\n *\r\n * @template Value The input value\r\n * @template Type The input value type\r\n * @param {Value} [params.initialValue] Initial value\r\n * @param {boolean} [params.initialTouched=false] Initial touched state\r\n * @param {boolean} [params.autoFocus=false] Auto focus\r\n * @param {boolean} [params.validateOnChange=false] Validate on change\r\n * @param {boolean} [params.validateOnBlur=false] Validate on blur\r\n * @param {boolean} [params.validateOnMount=false] Validate on mount\r\n * @returns {UseFieldReturn<Value>} An object containing input information\r\n *\r\n * @example\r\n * const { register, getValue, setValue, reset, dirty, error, setError, clearError, touched, focus, watch } = useField();\r\n */\r\nexport const useField = <\r\n Value extends string | boolean = string,\r\n Type = Value extends string ? string : boolean\r\n>(\r\n params?: UseFieldParams<Value>\r\n): UseFieldReturn<Type> => {\r\n const initialValue = (params?.initialValue ?? '') as Value;\r\n\r\n const inputRef = useRef<HTMLInputElement>();\r\n const watchingRef = useRef(false);\r\n const rerender = useRerender();\r\n\r\n const [dirty, setDirty] = useState(false);\r\n const [touched, setTouched] = useState(params?.initialTouched ?? false);\r\n const [error, setError] = useState<string | undefined>(undefined);\r\n\r\n const getValue = () => {\r\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox')\r\n return inputRef.current.checked as Type;\r\n return (inputRef.current?.value ?? initialValue) as Type;\r\n };\r\n\r\n const setValue = (value: Type) => {\r\n if (inputRef.current?.type === 'radio' || inputRef.current?.type === 'checkbox') {\r\n inputRef.current.checked = value as boolean;\r\n if (watchingRef.current) return rerender.update();\r\n return;\r\n }\r\n\r\n inputRef.current!.value = value as string;\r\n if (watchingRef.current) return rerender.update();\r\n };\r\n\r\n const reset = () => {\r\n setValue(initialValue as unknown as Type);\r\n setDirty(false);\r\n setTouched(false);\r\n setError(undefined);\r\n };\r\n\r\n const focus = () => {\r\n inputRef.current!.focus();\r\n };\r\n\r\n const validate = (params: UseFieldRegisterParams) => {\r\n if (params.required && !inputRef.current!.value) {\r\n return setError(params.required);\r\n }\r\n\r\n if (params.minLength && inputRef.current!.value.length < params.minLength.value) {\r\n return setError(params.minLength.message);\r\n }\r\n\r\n if (params.maxLength && inputRef.current!.value.length > params.maxLength.value) {\r\n return setError(params.maxLength.message);\r\n }\r\n\r\n if (params.min && Number(inputRef.current!.value) < params.min.value) {\r\n return setError(params.min.message);\r\n }\r\n\r\n if (params.max && Number(inputRef.current!.value) > params.max.value) {\r\n return setError(params.max.message);\r\n }\r\n\r\n if (params.pattern && !params.pattern.value.test(inputRef.current!.value)) {\r\n return setError(params.pattern.message);\r\n }\r\n\r\n if (params.validate) {\r\n const error = params.validate(inputRef.current!.value);\r\n if (typeof error === 'string') return setError(error);\r\n }\r\n\r\n setError(undefined);\r\n };\r\n\r\n const register = (registerParams?: UseFieldRegisterParams) => ({\r\n ref: (node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null | undefined) => {\r\n if (!inputRef.current && node) {\r\n if (params?.autoFocus) node.focus();\r\n inputRef.current = node as HTMLInputElement;\r\n if (inputRef.current.type === 'radio') {\r\n inputRef.current.defaultChecked = params?.initialValue === node.value;\r\n return;\r\n }\r\n if (inputRef.current.type === 'checkbox') {\r\n inputRef.current.defaultChecked = !!params?.initialValue;\r\n return;\r\n }\r\n inputRef.current.defaultValue = String(initialValue);\r\n\r\n if (registerParams && params?.validateOnMount) validate(registerParams);\r\n }\r\n },\r\n onChange: async () => {\r\n if (watchingRef.current) return rerender.update();\r\n if (inputRef.current!.value !== initialValue) setDirty(true);\r\n if (dirty && inputRef.current!.value === initialValue) setDirty(false);\r\n if (registerParams && params?.validateOnChange) await validate(registerParams);\r\n if (registerParams && params?.validateOnBlur) setError(undefined);\r\n },\r\n onBlur: async () => {\r\n if (registerParams && params?.validateOnBlur) await validate(registerParams);\r\n setTouched(true);\r\n }\r\n });\r\n\r\n const watch = () => {\r\n watchingRef.current = true;\r\n return getValue();\r\n };\r\n\r\n const clearError = () => setError(undefined);\r\n\r\n return {\r\n register,\r\n dirty,\r\n touched,\r\n error,\r\n setError,\r\n clearError,\r\n getValue,\r\n setValue,\r\n reset,\r\n watch,\r\n focus\r\n };\r\n};\r\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":";2LAuGaA,EAAW,SAItBC,GACyB,IAAAC,EAAAC,EACnBC,EAAoCF,QAAxBA,EAAID,aAAM,EAANA,EAAQG,oBAAYF,IAAAA,EAAAA,EAAI,GAExCG,EAAWC,IACXC,EAAcD,GAAO,GACrBE,EAAWC,IAEjBC,EAA0BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAlCI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtBI,EAA8BL,EAA+BR,QAAvBA,EAACF,eAAAA,EAAQgB,0BAAcd,GAAAA,GAAUe,EAAAL,EAAAG,EAAA,GAAhEG,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAA0BV,OAA6BW,GAAUC,EAAAV,EAAAQ,EAAA,GAA1DG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAEhBG,EAAW,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EACrB,MAA+B,WAAX,QAAhBH,EAAAtB,EAAS0B,eAAO,IAAAJ,OAAA,EAAhBA,EAAkBK,OAA+C,cAAX,QAAhBJ,EAAAvB,EAAS0B,eAAO,IAAAH,OAAA,EAAhBA,EAAkBI,MACnD3B,EAAS0B,QAAQE,QACK,QAA/BJ,EAAwBC,QAAxBA,EAAQzB,EAAS0B,eAATD,IAAgBA,OAAhBA,EAAAA,EAAkBI,aAAKL,IAAAA,EAAAA,EAAIzB,GAG/B+B,EAAW,SAACD,GAAgB,IAAAE,EAAAC,EAChC,MAA+B,WAAXD,QAAhBA,EAAA/B,EAAS0B,eAATK,IAAgBA,OAAhBA,EAAAA,EAAkBJ,OAA+C,cAAX,QAAhBK,EAAAhC,EAAS0B,eAAO,IAAAM,OAAA,EAAhBA,EAAkBL,OAC1D3B,EAAS0B,QAAQE,QAAUC,EACvB3B,EAAYwB,QAAgBvB,EAAS8B,cACzC,IAGFjC,EAAS0B,QAASG,MAAQA,EACtB3B,EAAYwB,QAAgBvB,EAAS8B,cAAzC,IAcIC,EAAW,SAACtC,GAChB,GAAIA,EAAOuC,WAAanC,EAAS0B,QAASG,MACxC,OAAOT,EAASxB,EAAOuC,UAGzB,GAAIvC,EAAOwC,WAAapC,EAAS0B,QAASG,MAAMQ,OAASzC,EAAOwC,UAAUP,MACxE,OAAOT,EAASxB,EAAOwC,UAAUE,SAGnC,GAAI1C,EAAO2C,WAAavC,EAAS0B,QAASG,MAAMQ,OAASzC,EAAO2C,UAAUV,MACxE,OAAOT,EAASxB,EAAO2C,UAAUD,SAGnC,GAAI1C,EAAO4C,KAAOC,OAAOzC,EAAS0B,QAASG,OAASjC,EAAO4C,IAAIX,MAC7D,OAAOT,EAASxB,EAAO4C,IAAIF,SAG7B,GAAI1C,EAAO8C,KAAOD,OAAOzC,EAAS0B,QAASG,OAASjC,EAAO8C,IAAIb,MAC7D,OAAOT,EAASxB,EAAO8C,IAAIJ,SAG7B,GAAI1C,EAAO+C,UAAY/C,EAAO+C,QAAQd,MAAMe,KAAK5C,EAAS0B,QAASG,OACjE,OAAOT,EAASxB,EAAO+C,QAAQL,SAGjC,GAAI1C,EAAOsC,SAAU,CACnB,IAAMf,EAAQvB,EAAOsC,SAASlC,EAAS0B,QAASG,OAChD,GAAqB,iBAAVV,EAAoB,OAAOC,EAASD,EACjD,CAEAC,OAASH,IAyCX,MAAO,CACL4B,SAvCe,SAACC,GAAuC,MAAM,CAC7DC,IAAK,SAACC,GACJ,IAAKhD,EAAS0B,SAAWsB,EAAM,CAG7B,GAFIpD,SAAAA,EAAQqD,WAAWD,EAAKE,QAC5BlD,EAAS0B,QAAUsB,EACW,UAA1BhD,EAAS0B,QAAQC,KAEnB,YADA3B,EAAS0B,QAAQyB,gBAAiBvD,aAAM,EAANA,EAAQG,gBAAiBiD,EAAKnB,OAGlE,GAA8B,aAA1B7B,EAAS0B,QAAQC,KAEnB,YADA3B,EAAS0B,QAAQyB,iBAAmBvD,UAAAA,EAAQG,eAG9CC,EAAS0B,QAAQ0B,aAAeC,OAAOtD,GAEnC+C,SAAkBlD,GAAAA,EAAQ0D,iBAAiBpB,EAASY,EAC1D,CACD,EACDS,UAAQC,EAAAC,EAAAC,IAAAC,MAAE,SAAAC,IAAA,OAAAF,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,IACJ9D,EAAYwB,QAAO,CAAAoC,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,SAAS9D,EAAS8B,UAAQ,KAAA,EAEsB,GADnEjC,EAAS0B,QAASG,QAAU9B,GAAcW,GAAS,GACnDD,GAAST,EAAS0B,QAASG,QAAU9B,GAAcW,GAAS,IAC5DoC,SAAkBlD,IAAAA,EAAQsE,iBAAgB,CAAAJ,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAE,KAAA,EAAQ9B,EAASY,GAAe,KAAA,EAC1EA,SAAkBlD,GAAAA,EAAQuE,gBAAgB/C,OAASH,GAAW,KAAA,EAAA,IAAA,MAAA,OAAA6C,EAAAM,OAAA,GAAAR,EACnE,KAAA,WAAA,OAAAJ,EAAAa,MAAAC,KAAAC,UAAA,GACDC,QAAMC,EAAAhB,EAAAC,IAAAC,MAAE,SAAAe,IAAA,OAAAhB,IAAAG,MAAA,SAAAc,GAAA,cAAAA,EAAAZ,KAAAY,EAAAX,MAAA,KAAA,EAAA,IACFlB,SAAkBlD,IAAAA,EAAQuE,eAAc,CAAAQ,EAAAX,KAAA,EAAA,KAAA,CAAA,OAAAW,EAAAX,KAAA,EAAQ9B,EAASY,GAAe,KAAA,EAC5E/B,GAAW,GAAM,KAAA,EAAA,IAAA,MAAA,OAAA4D,EAAAP,OAAA,GAAAM,EAClB,KAAA,WAAA,OAAAD,EAAAJ,MAAAC,KAAAC,UAAA,IAHK,IAAAE,EAPEjB,GAsBR/C,MAAAA,EACAK,QAAAA,EACAK,MAAAA,EACAC,SAAAA,EACAwD,WARiB,WAAH,OAASxD,OAASH,EAAU,EAS1CI,SAAAA,EACAS,SAAAA,EACA+C,MA3FY,WACZ/C,EAAS/B,GACTW,GAAS,GACTK,GAAW,GACXK,OAASH,IAwFT6D,MAjBY,WAEZ,OADA5E,EAAYwB,SAAU,EACfL,KAgBP6B,MAtFY,WACZlD,EAAS0B,QAASwB,SAuFtB"}
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 type */\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 type */\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: (\n node: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null | undefined\n ) => 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 | undefined) => {\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":";2LAuGaA,EAAW,SAItBC,GACyB,IAAAC,EAAAC,EACnBC,EAAoCF,QAAxBA,EAAID,aAAM,EAANA,EAAQG,oBAAYF,IAAAA,EAAAA,EAAI,GAExCG,EAAWC,IACXC,EAAcD,GAAO,GACrBE,EAAWC,IAEjBC,EAA0BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAlCI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtBI,EAA8BL,EAA+BR,QAAvBA,EAACF,eAAAA,EAAQgB,0BAAcd,GAAAA,GAAUe,EAAAL,EAAAG,EAAA,GAAhEG,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAA0BV,OAA6BW,GAAUC,EAAAV,EAAAQ,EAAA,GAA1DG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAEhBG,EAAW,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EACrB,MAA+B,WAAX,QAAhBH,EAAAtB,EAAS0B,eAAO,IAAAJ,OAAA,EAAhBA,EAAkBK,OAA+C,cAAX,QAAhBJ,EAAAvB,EAAS0B,eAAO,IAAAH,OAAA,EAAhBA,EAAkBI,MACnD3B,EAAS0B,QAAQE,QACK,QAA/BJ,EAAwBC,QAAxBA,EAAQzB,EAAS0B,eAATD,IAAgBA,OAAhBA,EAAAA,EAAkBI,aAAKL,IAAAA,EAAAA,EAAIzB,GAG/B+B,EAAW,SAACD,GAAgB,IAAAE,EAAAC,EAChC,MAA+B,WAAXD,QAAhBA,EAAA/B,EAAS0B,eAATK,IAAgBA,OAAhBA,EAAAA,EAAkBJ,OAA+C,cAAX,QAAhBK,EAAAhC,EAAS0B,eAAO,IAAAM,OAAA,EAAhBA,EAAkBL,OAC1D3B,EAAS0B,QAAQE,QAAUC,EACvB3B,EAAYwB,QAAgBvB,EAAS8B,cACzC,IAGFjC,EAAS0B,QAASG,MAAQA,EACtB3B,EAAYwB,QAAgBvB,EAAS8B,cAAzC,IAcIC,EAAW,SAACtC,GAChB,GAAIA,EAAOuC,WAAanC,EAAS0B,QAASG,MACxC,OAAOT,EAASxB,EAAOuC,UAGzB,GAAIvC,EAAOwC,WAAapC,EAAS0B,QAASG,MAAMQ,OAASzC,EAAOwC,UAAUP,MACxE,OAAOT,EAASxB,EAAOwC,UAAUE,SAGnC,GAAI1C,EAAO2C,WAAavC,EAAS0B,QAASG,MAAMQ,OAASzC,EAAO2C,UAAUV,MACxE,OAAOT,EAASxB,EAAO2C,UAAUD,SAGnC,GAAI1C,EAAO4C,KAAOC,OAAOzC,EAAS0B,QAASG,OAASjC,EAAO4C,IAAIX,MAC7D,OAAOT,EAASxB,EAAO4C,IAAIF,SAG7B,GAAI1C,EAAO8C,KAAOD,OAAOzC,EAAS0B,QAASG,OAASjC,EAAO8C,IAAIb,MAC7D,OAAOT,EAASxB,EAAO8C,IAAIJ,SAG7B,GAAI1C,EAAO+C,UAAY/C,EAAO+C,QAAQd,MAAMe,KAAK5C,EAAS0B,QAASG,OACjE,OAAOT,EAASxB,EAAO+C,QAAQL,SAGjC,GAAI1C,EAAOsC,SAAU,CACnB,IAAMf,EAAQvB,EAAOsC,SAASlC,EAAS0B,QAASG,OAChD,GAAqB,iBAAVV,EAAoB,OAAOC,EAASD,EACjD,CAEAC,OAASH,IAyCX,MAAO,CACL4B,SAvCe,SAACC,GAAuC,MAAM,CAC7DC,IAAK,SAACC,GACJ,IAAKhD,EAAS0B,SAAWsB,EAAM,CAG7B,GAFIpD,SAAAA,EAAQqD,WAAWD,EAAKE,QAC5BlD,EAAS0B,QAAUsB,EACW,UAA1BhD,EAAS0B,QAAQC,KAEnB,YADA3B,EAAS0B,QAAQyB,gBAAiBvD,aAAM,EAANA,EAAQG,gBAAiBiD,EAAKnB,OAGlE,GAA8B,aAA1B7B,EAAS0B,QAAQC,KAEnB,YADA3B,EAAS0B,QAAQyB,iBAAmBvD,UAAAA,EAAQG,eAG9CC,EAAS0B,QAAQ0B,aAAeC,OAAOtD,GAEnC+C,SAAkBlD,GAAAA,EAAQ0D,iBAAiBpB,EAASY,EAC1D,CACD,EACDS,UAAQC,EAAAC,EAAAC,IAAAC,MAAE,SAAAC,IAAA,OAAAF,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,IACJ9D,EAAYwB,QAAO,CAAAoC,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,SAAS9D,EAAS8B,UAAQ,KAAA,EAEsB,GADnEjC,EAAS0B,QAASG,QAAU9B,GAAcW,GAAS,GACnDD,GAAST,EAAS0B,QAASG,QAAU9B,GAAcW,GAAS,IAC5DoC,SAAkBlD,IAAAA,EAAQsE,iBAAgB,CAAAJ,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAE,KAAA,EAAQ9B,EAASY,GAAe,KAAA,EAC1EA,SAAkBlD,GAAAA,EAAQuE,gBAAgB/C,OAASH,GAAW,KAAA,EAAA,IAAA,MAAA,OAAA6C,EAAAM,OAAA,GAAAR,EACnE,KAAA,WAAA,OAAAJ,EAAAa,MAAAC,KAAAC,UAAA,GACDC,QAAMC,EAAAhB,EAAAC,IAAAC,MAAE,SAAAe,IAAA,OAAAhB,IAAAG,MAAA,SAAAc,GAAA,cAAAA,EAAAZ,KAAAY,EAAAX,MAAA,KAAA,EAAA,IACFlB,SAAkBlD,IAAAA,EAAQuE,eAAc,CAAAQ,EAAAX,KAAA,EAAA,KAAA,CAAA,OAAAW,EAAAX,KAAA,EAAQ9B,EAASY,GAAe,KAAA,EAC5E/B,GAAW,GAAM,KAAA,EAAA,IAAA,MAAA,OAAA4D,EAAAP,OAAA,GAAAM,EAClB,KAAA,WAAA,OAAAD,EAAAJ,MAAAC,KAAAC,UAAA,IAHK,IAAAE,EAPEjB,GAsBR/C,MAAAA,EACAK,QAAAA,EACAK,MAAAA,EACAC,SAAAA,EACAwD,WARiB,WAAH,OAASxD,OAASH,EAAU,EAS1CI,SAAAA,EACAS,SAAAA,EACA+C,MA3FY,WACZ/C,EAAS/B,GACTW,GAAS,GACTK,GAAW,GACXK,OAASH,IAwFT6D,MAjBY,WAEZ,OADA5E,EAAYwB,SAAU,EACfL,KAgBP6B,MAtFY,WACZlD,EAAS0B,QAASwB,SAuFtB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as l}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as n,useRef as u,useEffect as e}from"react";var r=!0,t="*",i=!1,o=function(){var o="function"==typeof(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,c=o?arguments.length<=0?void 0:arguments[0]:arguments.length<=1?void 0:arguments[1],v=n(null),d=l(v,2),a=d[0],p=d[1],f=u(),m=u(o);m.current=o;var s=function(){var l;p(null),null===(l=m.current)||void 0===l||l.call(m,null),f.current&&(f.current.value="")};return e((function(){var l;return f.current=((l=document.createElement("input")).type="file",l.onchange=function(l){var n,u=l.target.files;p(u),null===(n=m.current)||void 0===n||n.call(m,u)},l),function(){var l;null===(l=f.current)||void 0===l||l.remove()}}),[null==c?void 0:c.multiple,null==c?void 0:c.accept,null==c?void 0:c.capture,null==c?void 0:c.reset]),{value:a,open:function(l){var n,u,e,o,v,d,a;if(f.current){f.current.multiple=null!==(n=null!==(u=null==l?void 0:l.multiple)&&void 0!==u?u:null==c?void 0:c.multiple)&&void 0!==n?n:r,f.current.accept=null!==(e=null!==(o=null==l?void 0:l.accept)&&void 0!==o?o:null==c?void 0:c.accept)&&void 0!==e?e:t;var p=null!==(v=null==l?void 0:l.capture)&&void 0!==v?v:null==c?void 0:c.capture;p&&(f.current.capture=p),(null!==(d=null!==(a=null==l?void 0:l.reset)&&void 0!==a?a:null==c?void 0:c.reset)&&void 0!==d?d:i)&&s(),f.current.click()}},reset:s}};export{o as useFileDialog};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as l}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as n,useRef as u,useEffect as e}from"react";var r=!0,t="*",i=!1,o=function(){var o="function"==typeof(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,c=o?arguments.length<=0?void 0:arguments[0]:arguments.length<=1?void 0:arguments[1],v=n(null),d=l(v,2),a=d[0],p=d[1],f=u(),m=u(o);m.current=o;var s=function(){var l;p(null),null===(l=m.current)||void 0===l||l.call(m,null),f.current&&(f.current.value="")};return e((function(){var l;return f.current=((l=document.createElement("input")).type="file",l.onchange=function(l){var n,u=l.target.files;p(u),null===(n=m.current)||void 0===n||n.call(m,u)},l),function(){var l;null===(l=f.current)||void 0===l||l.remove()}}),[null==c?void 0:c.multiple,null==c?void 0:c.accept,null==c?void 0:c.capture,null==c?void 0:c.reset]),{value:a,open:function(l){var n,u,e,o,v,d,a;if(f.current){f.current.multiple=null!==(n=null!==(u=null==l?void 0:l.multiple)&&void 0!==u?u:null==c?void 0:c.multiple)&&void 0!==n?n:r,f.current.accept=null!==(e=null!==(o=null==l?void 0:l.accept)&&void 0!==o?o:null==c?void 0:c.accept)&&void 0!==e?e:t;var p=null!==(v=null==l?void 0:l.capture)&&void 0!==v?v:null==c?void 0:c.capture;p&&(f.current.capture=p),(null!==(d=null!==(a=null==l?void 0:l.reset)&&void 0!==a?a:null==c?void 0:c.reset)&&void 0!==d?d:i)&&s(),f.current.click()}},reset:s}};export{o as useFileDialog};
3
3
  //# sourceMappingURL=useFileDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFileDialog.js","sources":["../../../../src/hooks/useFileDialog/useFileDialog.ts"],"sourcesContent":["import type { ComponentProps } from 'react';\r\nimport { useEffect, useRef, useState } from 'react';\r\n\r\n/* The use file dialog options */\r\nexport interface UseFileDialogOptions extends Pick<ComponentProps<'input'>, 'multiple' | 'accept'> {\r\n /** The capture value */\r\n capture?: string;\r\n /** The reset value */\r\n reset?: boolean;\r\n}\r\n\r\nconst DEFAULT_OPTIONS = {\r\n multiple: true,\r\n accept: '*',\r\n reset: false\r\n} satisfies UseFileDialogOptions;\r\n\r\n/* The use file dialog return type */\r\nexport interface UseFileDialogReturn {\r\n /** The selected files */\r\n value: FileList | null;\r\n /** The open function */\r\n open: (openParams?: UseFileDialogOptions) => void;\r\n /** The reset function */\r\n reset: () => void;\r\n}\r\n\r\nexport interface UseFileDialog {\r\n (\r\n callback?: (value: FileList | null) => void,\r\n options?: UseFileDialogOptions\r\n ): UseFileDialogReturn;\r\n\r\n (options?: UseFileDialogOptions, callback?: never): UseFileDialogReturn;\r\n}\r\n\r\n/**\r\n * @name useFileDialog\r\n * @description - Hook to handle file input\r\n * @category Browser\r\n *\r\n * @overload\r\n * @param {(value: FileList | null) => void} callback The callback to execute when a file is selected\r\n * @param {boolean} [options.multiple=true] Whether multiple files can be selected\r\n * @param {string} [options.accept='*'] The accepted file types\r\n * @param {boolean} [options.reset=false] Whether the input should be reset when the callback is called\r\n * @param {string} [options.capture] The capture value\r\n * @returns {UseFileDialogReturn} An object containing the selected files\r\n *\r\n * @example\r\n * const { values, open, reset } = useFileDialog((value) => console.log(value));\r\n *\r\n * @overload\r\n * @param {boolean} [options.multiple=true] Whether multiple files can be selected\r\n * @param {string} [options.accept='*'] The accepted file types\r\n * @param {boolean} [options.reset=false] Whether the input should be reset when the callback is called\r\n * @param {string} [options.capture] The capture value\r\n * @returns {UseFileDialogReturn} An object containing the selected files\r\n *\r\n * @example\r\n * const { values, open, reset } = useFileDialog({ accept: 'image/*' });\r\n */\r\nexport const useFileDialog = ((...params: any[]) => {\r\n const callback = (typeof params[0] === 'function' ? params[0] : undefined) as\r\n | ((value: FileList | null) => void)\r\n | undefined;\r\n const options = (callback ? params[0] : params[1]) as UseFileDialogOptions | undefined;\r\n\r\n const [value, setValue] = useState<FileList | null>(null);\r\n const inputRef = useRef<HTMLInputElement>();\r\n const internalCallbackRef = useRef(callback);\r\n internalCallbackRef.current = callback;\r\n\r\n const reset = () => {\r\n setValue(null);\r\n internalCallbackRef.current?.(null);\r\n if (inputRef.current) inputRef.current.value = '';\r\n };\r\n\r\n const open = (openParams?: UseFileDialogOptions) => {\r\n if (!inputRef.current) return;\r\n\r\n inputRef.current.multiple =\r\n openParams?.multiple ?? options?.multiple ?? DEFAULT_OPTIONS.multiple;\r\n inputRef.current.accept = openParams?.accept ?? options?.accept ?? DEFAULT_OPTIONS.accept;\r\n\r\n const capture = openParams?.capture ?? options?.capture;\r\n if (capture) inputRef.current.capture = capture;\r\n\r\n if (openParams?.reset ?? options?.reset ?? DEFAULT_OPTIONS.reset) reset();\r\n\r\n inputRef.current.click();\r\n };\r\n\r\n useEffect(() => {\r\n const init = () => {\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n\r\n input.onchange = (event: Event) => {\r\n const { files } = event.target as HTMLInputElement;\r\n setValue(files);\r\n internalCallbackRef.current?.(files);\r\n };\r\n return input;\r\n };\r\n\r\n inputRef.current = init();\r\n return () => {\r\n inputRef.current?.remove();\r\n };\r\n }, [options?.multiple, options?.accept, options?.capture, options?.reset]);\r\n\r\n return { value, open, reset };\r\n}) as UseFileDialog;\r\n"],"names":["DEFAULT_OPTIONS","useFileDialog","callback","arguments","length","undefined","options","_useState","useState","_useState2","_slicedToArray","value","setValue","inputRef","useRef","internalCallbackRef","current","reset","_internalCallbackRef$","call","useEffect","input","document","createElement","type","onchange","event","_internalCallbackRef$2","files","target","_inputRef$current","remove","multiple","accept","capture","open","openParams","_ref","_openParams$multiple","_ref2","_openParams$accept","_openParams$capture","_ref3","_openParams$reset","click"],"mappings":";4HAWA,IAAMA,GACM,EADNA,EAEI,IAFJA,GAGG,EAgDIC,EAAiB,WAC5B,IAAMC,EAAiC,mBAArBC,UAAAC,QAAA,OAAAC,EAAAF,UAAA,IAA+BA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAG1DC,EAAWJ,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAA6D,GAEtFI,EAA0BC,EAA0B,MAAKC,EAAAC,EAAAH,EAAA,GAAlDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAWC,IACXC,EAAsBD,EAAOZ,GACnCa,EAAoBC,QAAUd,EAE9B,IAAMe,EAAQ,WAAM,IAAAC,EAClBN,EAAS,MACkBM,QAA3BA,EAAAH,EAAoBC,eAApBE,IAA2BA,GAA3BA,EAAAC,KAAAJ,EAA8B,MAC1BF,EAASG,UAASH,EAASG,QAAQL,MAAQ,KAqCjD,OAnBAS,GAAU,WACR,IACQC,EAYR,OADAR,EAASG,UAXDK,EAAQC,SAASC,cAAc,UAC/BC,KAAO,OAEbH,EAAMI,SAAW,SAACC,GAAiB,IAAAC,EACzBC,EAAUF,EAAMG,OAAhBD,MACRhB,EAASgB,GACkBD,QAA3BA,EAAAZ,EAAoBC,eAApBW,IAA2BA,GAA3BA,EAAAR,KAAAJ,EAA8Ba,IAEzBP,GAIF,WAAM,IAAAS,EACK,QAAhBA,EAAAjB,EAASG,eAAO,IAAAc,GAAhBA,EAAkBC,SAEtB,GAAG,CAACzB,aAAAA,EAAAA,EAAS0B,SAAU1B,aAAO,EAAPA,EAAS2B,OAAQ3B,aAAAA,EAAAA,EAAS4B,QAAS5B,aAAAA,EAAAA,EAASW,QAE5D,CAAEN,MAAAA,EAAOwB,KAlCH,SAACC,GAAsC,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClD,GAAK9B,EAASG,QAAd,CAEAH,EAASG,QAAQgB,SAC0B,QADlBK,EACH,QADGC,EACvBF,aAAAA,EAAAA,EAAYJ,gBAAQ,IAAAM,EAAAA,EAAIhC,eAAAA,EAAS0B,gBAAQK,IAAAA,EAAAA,EAAIrC,EAC/Ca,EAASG,QAAQiB,OAA8C,QAAxCM,EAAqB,QAArBC,EAAGJ,aAAAA,EAAAA,EAAYH,cAAM,IAAAO,EAAAA,EAAIlC,eAAAA,EAAS2B,cAAMM,IAAAA,EAAAA,EAAIvC,EAEnE,IAAMkC,UAAOO,EAAGL,aAAAA,EAAAA,EAAYF,eAAO,IAAAO,EAAAA,EAAInC,aAAO,EAAPA,EAAS4B,QAC5CA,IAASrB,EAASG,QAAQkB,QAAUA,YAExCQ,EAAqB,QAArBC,EAAIP,aAAAA,EAAAA,EAAYnB,aAAK,IAAA0B,EAAAA,EAAIrC,aAAAA,EAAAA,EAASW,aAAK,IAAAyB,EAAAA,EAAI1C,IAAuBiB,IAElEJ,EAASG,QAAQ4B,OAXM,GAiCH3B,MAAAA,EACxB"}
1
+ {"version":3,"file":"useFileDialog.js","sources":["../../../../src/hooks/useFileDialog/useFileDialog.ts"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\n/* The use file dialog options */\nexport interface UseFileDialogOptions extends Pick<ComponentProps<'input'>, 'multiple' | 'accept'> {\n /** The capture value */\n capture?: string;\n /** The reset value */\n reset?: boolean;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: '*',\n reset: false\n} satisfies UseFileDialogOptions;\n\n/* The use file dialog return type */\nexport interface UseFileDialogReturn {\n /** The selected files */\n value: FileList | null;\n /** The open function */\n open: (openParams?: UseFileDialogOptions) => void;\n /** The reset function */\n reset: () => void;\n}\n\nexport interface UseFileDialog {\n (\n callback?: (value: FileList | null) => void,\n options?: UseFileDialogOptions\n ): UseFileDialogReturn;\n\n (options?: UseFileDialogOptions, callback?: never): UseFileDialogReturn;\n}\n\n/**\n * @name useFileDialog\n * @description - Hook to handle file input\n * @category Browser\n *\n * @overload\n * @param {(value: FileList | null) => void} callback The callback to execute when a file is selected\n * @param {boolean} [options.multiple=true] Whether multiple files can be selected\n * @param {string} [options.accept='*'] The accepted file types\n * @param {boolean} [options.reset=false] Whether the input should be reset when the callback is called\n * @param {string} [options.capture] The capture value\n * @returns {UseFileDialogReturn} An object containing the selected files\n *\n * @example\n * const { values, open, reset } = useFileDialog((value) => console.log(value));\n *\n * @overload\n * @param {boolean} [options.multiple=true] Whether multiple files can be selected\n * @param {string} [options.accept='*'] The accepted file types\n * @param {boolean} [options.reset=false] Whether the input should be reset when the callback is called\n * @param {string} [options.capture] The capture value\n * @returns {UseFileDialogReturn} An object containing the selected files\n *\n * @example\n * const { values, open, reset } = useFileDialog({ accept: 'image/*' });\n */\nexport const useFileDialog = ((...params: any[]) => {\n const callback = (typeof params[0] === 'function' ? params[0] : undefined) as\n | ((value: FileList | null) => void)\n | undefined;\n const options = (callback ? params[0] : params[1]) as UseFileDialogOptions | undefined;\n\n const [value, setValue] = useState<FileList | null>(null);\n const inputRef = useRef<HTMLInputElement>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n const reset = () => {\n setValue(null);\n internalCallbackRef.current?.(null);\n if (inputRef.current) inputRef.current.value = '';\n };\n\n const open = (openParams?: UseFileDialogOptions) => {\n if (!inputRef.current) return;\n\n inputRef.current.multiple =\n openParams?.multiple ?? options?.multiple ?? DEFAULT_OPTIONS.multiple;\n inputRef.current.accept = openParams?.accept ?? options?.accept ?? DEFAULT_OPTIONS.accept;\n\n const capture = openParams?.capture ?? options?.capture;\n if (capture) inputRef.current.capture = capture;\n\n if (openParams?.reset ?? options?.reset ?? DEFAULT_OPTIONS.reset) reset();\n\n inputRef.current.click();\n };\n\n useEffect(() => {\n const init = () => {\n const input = document.createElement('input');\n input.type = 'file';\n\n input.onchange = (event: Event) => {\n const { files } = event.target as HTMLInputElement;\n setValue(files);\n internalCallbackRef.current?.(files);\n };\n return input;\n };\n\n inputRef.current = init();\n return () => {\n inputRef.current?.remove();\n };\n }, [options?.multiple, options?.accept, options?.capture, options?.reset]);\n\n return { value, open, reset };\n}) as UseFileDialog;\n"],"names":["DEFAULT_OPTIONS","useFileDialog","callback","arguments","length","undefined","options","_useState","useState","_useState2","_slicedToArray","value","setValue","inputRef","useRef","internalCallbackRef","current","reset","_internalCallbackRef$","call","useEffect","input","document","createElement","type","onchange","event","_internalCallbackRef$2","files","target","_inputRef$current","remove","multiple","accept","capture","open","openParams","_ref","_openParams$multiple","_ref2","_openParams$accept","_openParams$capture","_ref3","_openParams$reset","click"],"mappings":";4HAWA,IAAMA,GACM,EADNA,EAEI,IAFJA,GAGG,EAgDIC,EAAiB,WAC5B,IAAMC,EAAiC,mBAArBC,UAAAC,QAAA,OAAAC,EAAAF,UAAA,IAA+BA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAG1DC,EAAWJ,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAA6D,GAEtFI,EAA0BC,EAA0B,MAAKC,EAAAC,EAAAH,EAAA,GAAlDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAWC,IACXC,EAAsBD,EAAOZ,GACnCa,EAAoBC,QAAUd,EAE9B,IAAMe,EAAQ,WAAM,IAAAC,EAClBN,EAAS,MACkBM,QAA3BA,EAAAH,EAAoBC,eAApBE,IAA2BA,GAA3BA,EAAAC,KAAAJ,EAA8B,MAC1BF,EAASG,UAASH,EAASG,QAAQL,MAAQ,KAqCjD,OAnBAS,GAAU,WACR,IACQC,EAYR,OADAR,EAASG,UAXDK,EAAQC,SAASC,cAAc,UAC/BC,KAAO,OAEbH,EAAMI,SAAW,SAACC,GAAiB,IAAAC,EACzBC,EAAUF,EAAMG,OAAhBD,MACRhB,EAASgB,GACkBD,QAA3BA,EAAAZ,EAAoBC,eAApBW,IAA2BA,GAA3BA,EAAAR,KAAAJ,EAA8Ba,IAEzBP,GAIF,WAAM,IAAAS,EACK,QAAhBA,EAAAjB,EAASG,eAAO,IAAAc,GAAhBA,EAAkBC,SAEtB,GAAG,CAACzB,aAAAA,EAAAA,EAAS0B,SAAU1B,aAAO,EAAPA,EAAS2B,OAAQ3B,aAAAA,EAAAA,EAAS4B,QAAS5B,aAAAA,EAAAA,EAASW,QAE5D,CAAEN,MAAAA,EAAOwB,KAlCH,SAACC,GAAsC,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClD,GAAK9B,EAASG,QAAd,CAEAH,EAASG,QAAQgB,SAC0B,QADlBK,EACH,QADGC,EACvBF,aAAAA,EAAAA,EAAYJ,gBAAQ,IAAAM,EAAAA,EAAIhC,eAAAA,EAAS0B,gBAAQK,IAAAA,EAAAA,EAAIrC,EAC/Ca,EAASG,QAAQiB,OAA8C,QAAxCM,EAAqB,QAArBC,EAAGJ,aAAAA,EAAAA,EAAYH,cAAM,IAAAO,EAAAA,EAAIlC,eAAAA,EAAS2B,cAAMM,IAAAA,EAAAA,EAAIvC,EAEnE,IAAMkC,UAAOO,EAAGL,aAAAA,EAAAA,EAAYF,eAAO,IAAAO,EAAAA,EAAInC,aAAO,EAAPA,EAAS4B,QAC5CA,IAASrB,EAASG,QAAQkB,QAAUA,YAExCQ,EAAqB,QAArBC,EAAIP,aAAAA,EAAAA,EAAYnB,aAAK,IAAA0B,EAAAA,EAAIrC,aAAAA,EAAAA,EAASW,aAAK,IAAAyB,EAAAA,EAAI1C,IAAuBiB,IAElEJ,EAASG,QAAQ4B,OAXM,GAiCH3B,MAAAA,EACxB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as r}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as e,useRef as n,useEffect as t}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var o=function(){for(var o,u,l,s=arguments.length,c=new Array(s),v=0;v<s;v++)c[v]=arguments[v];var f=c[0]&&"current"in c[0]||c[0]instanceof Element?c[0]:void 0,a=null!==(o=f?null===(u=c[1])||void 0===u?void 0:u.initialFocus:null===(l=c[0])||void 0===l?void 0:l.initialFocus)&&void 0!==o&&o,d=e(a),m=r(d,2),p=m[0],b=m[1],E=e(),g=r(E,2),h=g[0],L=g[1],j=n(),F=function(){var r;return null===(r=j.current)||void 0===r?void 0:r.focus()},_=function(){var r;return null===(r=j.current)||void 0===r?void 0:r.blur()};return t((function(){var r=f?i(f):h;if(r){j.current=r;var e=function(r){var e,n;(!F||null!==(e=(n=r.target).matches)&&void 0!==e&&e.call(n,":focus-visible"))&&b(!0)},n=function(){return b(!1)};return a&&r.focus(),r.addEventListener("focus",e),r.addEventListener("blur",n),function(){r.removeEventListener("focus",e),r.removeEventListener("blur",n)}}}),[h,f]),f?{focus:F,blur:_,focused:p}:{ref:L,focus:F,blur:_,focused:p}};export{o as useFocus};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as e,useRef as n,useEffect as t}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var o=function(){for(var o,u,l,s=arguments.length,c=new Array(s),v=0;v<s;v++)c[v]=arguments[v];var f=c[0]&&"current"in c[0]||c[0]instanceof Element?c[0]:void 0,a=null!==(o=f?null===(u=c[1])||void 0===u?void 0:u.initialFocus:null===(l=c[0])||void 0===l?void 0:l.initialFocus)&&void 0!==o&&o,d=e(a),m=r(d,2),p=m[0],b=m[1],E=e(),g=r(E,2),h=g[0],L=g[1],j=n(),F=function(){var r;return null===(r=j.current)||void 0===r?void 0:r.focus()},_=function(){var r;return null===(r=j.current)||void 0===r?void 0:r.blur()};return t((function(){var r=f?i(f):h;if(r){j.current=r;var e=function(r){var e,n;(!F||null!==(e=(n=r.target).matches)&&void 0!==e&&e.call(n,":focus-visible"))&&b(!0)},n=function(){return b(!1)};return a&&r.focus(),r.addEventListener("focus",e),r.addEventListener("blur",n),function(){r.removeEventListener("focus",e),r.removeEventListener("blur",n)}}}),[h,f]),f?{focus:F,blur:_,focused:p}:{ref:L,focus:F,blur:_,focused:p}};export{o as useFocus};
3
3
  //# sourceMappingURL=useFocus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.js","sources":["../../../../src/hooks/useFocus/useFocus.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\nimport { useEffect, useRef, useState } from 'react';\r\n\r\nimport { getElement } from '@/utils/helpers';\r\n\r\nexport type UseFocusTarget = RefObject<Element | null | undefined> | (() => Element) | Element;\r\n\r\n/** The use focus options type */\r\nexport interface UseFocusOptions {\r\n /** The initial focus state of the target */\r\n initialFocus?: boolean;\r\n}\r\n\r\n/** The use focus return type */\r\nexport interface UseFocusReturn {\r\n /** Is the target focused */\r\n focus: () => void;\r\n /** Is the target focused */\r\n blur: () => void;\r\n /** The boolean state value of the target */\r\n focused: boolean;\r\n}\r\n\r\nexport interface UseFocus {\r\n <Target extends UseFocusTarget>(target: Target, options?: UseFocusOptions): UseFocusReturn;\r\n\r\n <Target extends UseFocusTarget>(\r\n options?: UseFocusOptions\r\n ): UseFocusReturn & { ref: (node: Target) => void };\r\n}\r\n\r\n/**\r\n * @name useFocus\r\n * @description - Hook that allows you to focus on a specific element\r\n * @category Browser\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {Target} target The target element to focus\r\n * @param {boolean} [options.initialFocus=false] The initial focus state of the target\r\n * @returns {UseFocusReturn} An object with a `focus` boolean state value\r\n *\r\n * @example\r\n * const { focus, blur, focused } = useFocus(target);\r\n *\r\n * @overload\r\n * @param {boolean} [options.initialFocus=false] The initial focus state of the target\r\n * @returns {UseFocusReturn} An object with a `focus` boolean state value\r\n *\r\n * @example\r\n * const { ref, focus, blur, focused } = useFocus();\r\n */\r\nexport const useFocus = ((...params: any[]) => {\r\n const target =\r\n (params[0] && 'current' in params[0]) || params[0] instanceof Element ? params[0] : undefined;\r\n const initialFocus =\r\n (target\r\n ? (params[1] as UseFocusOptions)?.initialFocus\r\n : (params[0] as UseFocusOptions)?.initialFocus) ?? false;\r\n\r\n const [focused, setFocused] = useState(initialFocus);\r\n const [internalRef, setInternalRef] = useState<Element>();\r\n\r\n const elementRef = useRef<HTMLElement>();\r\n\r\n const focus = () => elementRef.current?.focus();\r\n const blur = () => elementRef.current?.blur();\r\n\r\n useEffect(() => {\r\n const element = (target ? getElement(target) : internalRef) as HTMLElement;\r\n if (!element) return;\r\n elementRef.current = element;\r\n\r\n const onFocus = (event: Event) => {\r\n if (!focus || (event.target as HTMLElement).matches?.(':focus-visible')) setFocused(true);\r\n };\r\n const onBlur = () => setFocused(false);\r\n if (initialFocus) element.focus();\r\n\r\n element.addEventListener('focus', onFocus);\r\n element.addEventListener('blur', onBlur);\r\n\r\n return () => {\r\n element.removeEventListener('focus', onFocus);\r\n element.removeEventListener('blur', onBlur);\r\n };\r\n }, [internalRef, target]);\r\n\r\n if (target) return { focus, blur, focused };\r\n return {\r\n ref: setInternalRef,\r\n focus,\r\n blur,\r\n focused\r\n };\r\n}) as UseFocus;\r\n"],"names":["useFocus","_ref","_params$","_params$2","_len","arguments","length","params","Array","_key","target","Element","undefined","initialFocus","_useState","useState","_useState2","_slicedToArray","focused","setFocused","_useState3","_useState4","internalRef","setInternalRef","elementRef","useRef","focus","_elementRef$current","current","blur","_elementRef$current2","useEffect","element","getElement","onFocus","event","_matches","_ref2","matches","call","onBlur","addEventListener","removeEventListener","ref"],"mappings":";uOAoDaA,EAAY,WAAsB,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAlBC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACjC,IAAMC,EACHH,EAAO,IAAM,YAAaA,EAAO,IAAOA,EAAO,aAAcI,QAAUJ,EAAO,QAAKK,EAChFC,EAG4CZ,QAHhCA,EACfS,EACa,QADPR,EACFK,EAAO,UAAE,IAAAL,OAAA,EAAVA,EAAgCW,qBAAYV,EAC3CI,EAAO,UAAE,IAAAJ,OAAA,EAAVA,EAAgCU,oBAAYZ,IAAAA,GAAAA,EAElDa,EAA8BC,EAASF,GAAaG,EAAAC,EAAAH,EAAA,GAA7CI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAE5BG,EAAaC,IAEbC,EAAQ,WAAH,IAAAC,EAAA,OAA2B,QAA3BA,EAASH,EAAWI,eAAO,IAAAD,OAAA,EAAlBA,EAAoBD,OAAO,EACzCG,EAAO,WAAH,IAAAC,EAAA,OAA2B,QAA3BA,EAASN,EAAWI,eAAO,IAAAE,OAAA,EAAlBA,EAAoBD,MAAM,EAsB7C,OApBAE,GAAU,WACR,IAAMC,EAAWtB,EAASuB,EAAWvB,GAAUY,EAC/C,GAAKU,EAAL,CACAR,EAAWI,QAAUI,EAErB,IAAME,EAAU,SAACC,GAAiB,IAAAC,EAAAC,IAC3BX,GAA8C,QAAzCU,GAAIC,EAACF,EAAMzB,QAAuB4B,eAAO,IAAAF,GAArCA,EAAAG,KAAAF,EAAwC,oBAAmBlB,GAAW,IAEhFqB,EAAS,WAAH,OAASrB,GAAW,EAAM,EAMtC,OALIN,GAAcmB,EAAQN,QAE1BM,EAAQS,iBAAiB,QAASP,GAClCF,EAAQS,iBAAiB,OAAQD,GAE1B,WACLR,EAAQU,oBAAoB,QAASR,GACrCF,EAAQU,oBAAoB,OAAQF,GAdxB,CAgBhB,GAAG,CAAClB,EAAaZ,IAEbA,EAAe,CAAEgB,MAAAA,EAAOG,KAAAA,EAAMX,QAAAA,GAC3B,CACLyB,IAAKpB,EACLG,MAAAA,EACAG,KAAAA,EACAX,QAAAA,EAEJ"}
1
+ {"version":3,"file":"useFocus.js","sources":["../../../../src/hooks/useFocus/useFocus.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement } from '@/utils/helpers';\n\nexport type UseFocusTarget = RefObject<Element | null | undefined> | (() => Element) | Element;\n\n/** The use focus options type */\nexport interface UseFocusOptions {\n /** The initial focus state of the target */\n initialFocus?: boolean;\n}\n\n/** The use focus return type */\nexport interface UseFocusReturn {\n /** Is the target focused */\n focus: () => void;\n /** Is the target focused */\n blur: () => void;\n /** The boolean state value of the target */\n focused: boolean;\n}\n\nexport interface UseFocus {\n <Target extends UseFocusTarget>(target: Target, options?: UseFocusOptions): UseFocusReturn;\n\n <Target extends UseFocusTarget>(\n options?: UseFocusOptions\n ): UseFocusReturn & { ref: (node: Target) => void };\n}\n\n/**\n * @name useFocus\n * @description - Hook that allows you to focus on a specific element\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to focus\n * @param {boolean} [options.initialFocus=false] The initial focus state of the target\n * @returns {UseFocusReturn} An object with a `focus` boolean state value\n *\n * @example\n * const { focus, blur, focused } = useFocus(target);\n *\n * @overload\n * @param {boolean} [options.initialFocus=false] The initial focus state of the target\n * @returns {UseFocusReturn} An object with a `focus` boolean state value\n *\n * @example\n * const { ref, focus, blur, focused } = useFocus();\n */\nexport const useFocus = ((...params: any[]) => {\n const target =\n (params[0] && 'current' in params[0]) || params[0] instanceof Element ? params[0] : undefined;\n const initialFocus =\n (target\n ? (params[1] as UseFocusOptions)?.initialFocus\n : (params[0] as UseFocusOptions)?.initialFocus) ?? false;\n\n const [focused, setFocused] = useState(initialFocus);\n const [internalRef, setInternalRef] = useState<Element>();\n\n const elementRef = useRef<HTMLElement>();\n\n const focus = () => elementRef.current?.focus();\n const blur = () => elementRef.current?.blur();\n\n useEffect(() => {\n const element = (target ? getElement(target) : internalRef) as HTMLElement;\n if (!element) return;\n elementRef.current = element;\n\n const onFocus = (event: Event) => {\n if (!focus || (event.target as HTMLElement).matches?.(':focus-visible')) setFocused(true);\n };\n const onBlur = () => setFocused(false);\n if (initialFocus) element.focus();\n\n element.addEventListener('focus', onFocus);\n element.addEventListener('blur', onBlur);\n\n return () => {\n element.removeEventListener('focus', onFocus);\n element.removeEventListener('blur', onBlur);\n };\n }, [internalRef, target]);\n\n if (target) return { focus, blur, focused };\n return {\n ref: setInternalRef,\n focus,\n blur,\n focused\n };\n}) as UseFocus;\n"],"names":["useFocus","_ref","_params$","_params$2","_len","arguments","length","params","Array","_key","target","Element","undefined","initialFocus","_useState","useState","_useState2","_slicedToArray","focused","setFocused","_useState3","_useState4","internalRef","setInternalRef","elementRef","useRef","focus","_elementRef$current","current","blur","_elementRef$current2","useEffect","element","getElement","onFocus","event","_matches","_ref2","matches","call","onBlur","addEventListener","removeEventListener","ref"],"mappings":";uOAoDaA,EAAY,WAAsB,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAlBC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GACjC,IAAMC,EACHH,EAAO,IAAM,YAAaA,EAAO,IAAOA,EAAO,aAAcI,QAAUJ,EAAO,QAAKK,EAChFC,EAG4CZ,QAHhCA,EACfS,EACa,QADPR,EACFK,EAAO,UAAE,IAAAL,OAAA,EAAVA,EAAgCW,qBAAYV,EAC3CI,EAAO,UAAE,IAAAJ,OAAA,EAAVA,EAAgCU,oBAAYZ,IAAAA,GAAAA,EAElDa,EAA8BC,EAASF,GAAaG,EAAAC,EAAAH,EAAA,GAA7CI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAE5BG,EAAaC,IAEbC,EAAQ,WAAH,IAAAC,EAAA,OAA2B,QAA3BA,EAASH,EAAWI,eAAO,IAAAD,OAAA,EAAlBA,EAAoBD,OAAO,EACzCG,EAAO,WAAH,IAAAC,EAAA,OAA2B,QAA3BA,EAASN,EAAWI,eAAO,IAAAE,OAAA,EAAlBA,EAAoBD,MAAM,EAsB7C,OApBAE,GAAU,WACR,IAAMC,EAAWtB,EAASuB,EAAWvB,GAAUY,EAC/C,GAAKU,EAAL,CACAR,EAAWI,QAAUI,EAErB,IAAME,EAAU,SAACC,GAAiB,IAAAC,EAAAC,IAC3BX,GAA8C,QAAzCU,GAAIC,EAACF,EAAMzB,QAAuB4B,eAAO,IAAAF,GAArCA,EAAAG,KAAAF,EAAwC,oBAAmBlB,GAAW,IAEhFqB,EAAS,WAAH,OAASrB,GAAW,EAAM,EAMtC,OALIN,GAAcmB,EAAQN,QAE1BM,EAAQS,iBAAiB,QAASP,GAClCF,EAAQS,iBAAiB,OAAQD,GAE1B,WACLR,EAAQU,oBAAoB,QAASR,GACrCF,EAAQU,oBAAoB,OAAQF,GAdxB,CAgBhB,GAAG,CAAClB,EAAaZ,IAEbA,EAAe,CAAEgB,MAAAA,EAAOG,KAAAA,EAAMX,QAAAA,GAC3B,CACLyB,IAAKpB,EACLG,MAAAA,EACAG,KAAAA,EACAX,QAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as r}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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.72 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-DKveiPYY.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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e,b as n}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as l}from"react";import{s as i}from"../../index-DaDsOQsh.js";import{getElement as o}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{useUnmount as t}from"../useUnmount/useUnmount.js";var r=function(){var r,s=void 0===(arguments.length<=1?void 0:arguments[1])||arguments.length<=0?void 0:arguments[0],u=s?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],a=l(),f=e(a,2),c=f[0],d=f[1],m=l(null!==(r=null==u?void 0:u.initialValue)&&void 0!==r&&r),v=e(m,2),g=v[0],p=v[1],h=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);p(i.isFullscreen)}},E=function(){var e=s?o(s):c;if(e&&i.isEnabled)try{i.request(e),i.on("change",h)}catch(e){console.error(e)}},b=function(){i.isEnabled&&i.exit()};return t((function(){i.isEnabled&&i.off("change",h)})),n(n({},!s&&{ref:d}),{},{enter:E,exit:b,toggle:function(){if(g)return b();E()},value:g})};export{r as useFullscreen};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as e,b as n}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as l}from"react";import{s as i}from"../../index-C0eyELV9.js";import{getElement as o}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{useUnmount as t}from"../useUnmount/useUnmount.js";var r=function(){var r,s=void 0===(arguments.length<=1?void 0:arguments[1])||arguments.length<=0?void 0:arguments[0],u=s?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],a=l(),f=e(a,2),c=f[0],d=f[1],m=l(null!==(r=null==u?void 0:u.initialValue)&&void 0!==r&&r),v=e(m,2),g=v[0],p=v[1],h=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);p(i.isFullscreen)}},E=function(){var e=s?o(s):c;if(e&&i.isEnabled)try{i.request(e),i.on("change",h)}catch(e){console.error(e)}},b=function(){i.isEnabled&&i.exit()};return t((function(){i.isEnabled&&i.off("change",h)})),n(n({},!s&&{ref:d}),{},{enter:E,exit:b,toggle:function(){if(g)return b();E()},value:g})};export{r as useFullscreen};
3
3
  //# sourceMappingURL=useFullscreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFullscreen.js","sources":["../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\nimport { useState } from 'react';\r\nimport screenfull from 'screenfull';\r\n\r\nimport { getElement } from '@/utils/helpers';\r\n\r\nimport { useUnmount } from '../useUnmount/useUnmount';\r\n\r\n/** The use fullscreen target element type */\r\nexport type UseFullScreenTarget = RefObject<Element | null | undefined> | (() => Element) | Element;\r\n\r\n/** The use fullscreen options type */\r\nexport interface UseFullScreenOptions {\r\n /** initial value */\r\n initialValue?: boolean;\r\n /** on enter fullscreen */\r\n onEnter?: () => void;\r\n /** on exit fullscreen */\r\n onExit?: () => void;\r\n}\r\n\r\n/** The use click outside return type */\r\nexport interface UseFullScreenReturn {\r\n enter: () => void;\r\n exit: () => void;\r\n toggle: () => void;\r\n value: boolean;\r\n}\r\n\r\nexport interface UseFullScreen {\r\n <Target extends UseFullScreenTarget>(\r\n target: Target,\r\n options?: UseFullScreenOptions\r\n ): UseFullScreenReturn;\r\n\r\n <Target extends UseFullScreenTarget>(\r\n options?: UseFullScreenOptions,\r\n target?: never\r\n ): UseFullScreenReturn & { ref: (node: Target) => void };\r\n}\r\n\r\n/**\r\n * @name useFullscreen\r\n * @description - Hook to handle fullscreen events\r\n * @category Browser\r\n *\r\n * @overload\r\n * @template Target The target element for fullscreen\r\n * @param {Target} target The target element for fullscreen\r\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\r\n * @param {() => void} [options.onEnter] on enter fullscreen\r\n * @param {() => void} [options.onExit] on exit fullscreen\r\n * @returns {UseFullScreenReturn} An object with the fullscreen state and methods\r\n *\r\n * @example\r\n * const { enter, exit, toggle, value } = useFullscreen(ref);\r\n *\r\n * @overload\r\n * @template Target The target element for fullscreen\r\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\r\n * @param {() => void} [options.onEnter] on enter fullscreen\r\n * @param {() => void} [options.onExit] on exit fullscreen\r\n * @returns {UseFullScreenReturn & { ref: RefObject<Target> }} An object with the fullscreen state and methods\r\n *\r\n * @example\r\n * const { ref, enter, exit, toggle, value } = useFullscreen();\r\n */\r\nexport const useFullscreen = ((...params: any[]) => {\r\n const target = (typeof params[1] === 'undefined' ? undefined : params[0]) as\r\n | UseFullScreenTarget\r\n | undefined;\r\n const options = (target ? params[1] : params[0]) as UseFullScreenOptions | undefined;\r\n\r\n const [internalRef, setInternalRef] = useState<Element>();\r\n const [value, setValue] = useState(options?.initialValue ?? false);\r\n\r\n const onChange = () => {\r\n if (!screenfull.isEnabled) return;\r\n\r\n if (screenfull.isFullscreen) {\r\n options?.onEnter?.();\r\n } else {\r\n screenfull.off('change', onChange);\r\n options?.onExit?.();\r\n }\r\n\r\n setValue(screenfull.isFullscreen);\r\n };\r\n\r\n const enter = () => {\r\n const element = (target ? getElement(target) : internalRef) as Element;\r\n if (!element) return;\r\n\r\n if (screenfull.isEnabled) {\r\n try {\r\n screenfull.request(element);\r\n screenfull.on('change', onChange);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n };\r\n\r\n const exit = () => {\r\n if (screenfull.isEnabled) screenfull.exit();\r\n };\r\n\r\n const toggle = () => {\r\n if (value) return exit();\r\n enter();\r\n };\r\n\r\n useUnmount(() => {\r\n if (screenfull.isEnabled) screenfull.off('change', onChange);\r\n });\r\n\r\n return {\r\n ...(!target && { ref: setInternalRef }),\r\n enter,\r\n exit,\r\n toggle,\r\n value\r\n };\r\n}) as UseFullScreen;\r\n"],"names":["useFullscreen","_options$initialValue","target","arguments","length","undefined","options","_useState","useState","_useState2","_slicedToArray","internalRef","setInternalRef","_useState3","initialValue","_useState4","value","setValue","onChange","screenfull","isEnabled","_options$onEnter","_options$onExit","isFullscreen","onEnter","call","off","onExit","enter","element","getElement","request","on","error","console","exit","useUnmount","_objectSpread","ref","toggle"],"mappings":";wTAmEaA,EAAiB,WAAsB,IAAAC,EAC5CC,OAA+B,KAArBC,UAAAC,QAAA,OAAAC,EAAAF,UAAA,KAA4CA,UAAAC,QAAAC,OAATA,EAASF,UAE/C,GACPG,EAAWJ,EAAMC,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAA6D,GAEpFI,EAAsCC,IAAmBC,EAAAC,EAAAH,EAAA,GAAlDI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClCI,EAA0BL,EAA8BP,QAAtBA,EAACK,eAAAA,EAASQ,wBAAYb,GAAAA,GAAUc,EAAAL,EAAAG,EAAA,GAA3DG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAEhBG,EAAW,SAAXA,IACJ,GAAKC,EAAWC,UAAhB,CAE6B,IAAAC,EAEtBC,EAFP,GAAIH,EAAWI,aACbjB,SAAgBe,QAATA,EAAPf,EAASkB,mBAAOH,GAAhBA,EAAAI,KAAAnB,QAEAa,EAAWO,IAAI,SAAUR,GACzBZ,SAAegB,QAARA,EAAPhB,EAASqB,kBAAML,GAAfA,EAAAG,KAAAnB,GAGFW,EAASE,EAAWI,aATO,GAYvBK,EAAQ,WACZ,IAAMC,EAAW3B,EAAS4B,EAAW5B,GAAUS,EAC/C,GAAKkB,GAEDV,EAAWC,UACb,IACED,EAAWY,QAAQF,GACnBV,EAAWa,GAAG,SAAUd,EACzB,CAAC,MAAOe,GACPC,QAAQD,MAAMA,EAChB,GAIEE,EAAO,WACPhB,EAAWC,WAAWD,EAAWgB,QAYvC,OAJAC,GAAW,WACLjB,EAAWC,WAAWD,EAAWO,IAAI,SAAUR,EACrD,IAEAmB,EAAAA,EACM,CAAA,GAACnC,GAAU,CAAEoC,IAAK1B,IAAgB,CAAA,EAAA,CACtCgB,MAAAA,EACAO,KAAAA,EACAI,OAba,WACb,GAAIvB,EAAO,OAAOmB,IAClBP,KAYAZ,MAAAA,GAEJ"}
1
+ {"version":3,"file":"useFullscreen.js","sources":["../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useState } from 'react';\nimport screenfull from 'screenfull';\n\nimport { getElement } from '@/utils/helpers';\n\nimport { useUnmount } from '../useUnmount/useUnmount';\n\n/** The use fullscreen target element type */\nexport type UseFullScreenTarget = RefObject<Element | null | undefined> | (() => Element) | Element;\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 interface 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: (node: Target) => void };\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, setInternalRef] = useState<Element>();\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) as Element;\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: setInternalRef }),\n enter,\n exit,\n toggle,\n value\n };\n}) as UseFullScreen;\n"],"names":["useFullscreen","_options$initialValue","target","arguments","length","undefined","options","_useState","useState","_useState2","_slicedToArray","internalRef","setInternalRef","_useState3","initialValue","_useState4","value","setValue","onChange","screenfull","isEnabled","_options$onEnter","_options$onExit","isFullscreen","onEnter","call","off","onExit","enter","element","getElement","request","on","error","console","exit","useUnmount","_objectSpread","ref","toggle"],"mappings":";wTAmEaA,EAAiB,WAAsB,IAAAC,EAC5CC,OAA+B,KAArBC,UAAAC,QAAA,OAAAC,EAAAF,UAAA,KAA4CA,UAAAC,QAAAC,OAATA,EAASF,UAE/C,GACPG,EAAWJ,EAAMC,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAA6D,GAEpFI,EAAsCC,IAAmBC,EAAAC,EAAAH,EAAA,GAAlDI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClCI,EAA0BL,EAA8BP,QAAtBA,EAACK,eAAAA,EAASQ,wBAAYb,GAAAA,GAAUc,EAAAL,EAAAG,EAAA,GAA3DG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAEhBG,EAAW,SAAXA,IACJ,GAAKC,EAAWC,UAAhB,CAE6B,IAAAC,EAEtBC,EAFP,GAAIH,EAAWI,aACbjB,SAAgBe,QAATA,EAAPf,EAASkB,mBAAOH,GAAhBA,EAAAI,KAAAnB,QAEAa,EAAWO,IAAI,SAAUR,GACzBZ,SAAegB,QAARA,EAAPhB,EAASqB,kBAAML,GAAfA,EAAAG,KAAAnB,GAGFW,EAASE,EAAWI,aATO,GAYvBK,EAAQ,WACZ,IAAMC,EAAW3B,EAAS4B,EAAW5B,GAAUS,EAC/C,GAAKkB,GAEDV,EAAWC,UACb,IACED,EAAWY,QAAQF,GACnBV,EAAWa,GAAG,SAAUd,EACzB,CAAC,MAAOe,GACPC,QAAQD,MAAMA,EAChB,GAIEE,EAAO,WACPhB,EAAWC,WAAWD,EAAWgB,QAYvC,OAJAC,GAAW,WACLjB,EAAWC,WAAWD,EAAWO,IAAI,SAAUR,EACrD,IAEAmB,EAAAA,EACM,CAAA,GAACnC,GAAU,CAAEoC,IAAK1B,IAAgB,CAAA,EAAA,CACtCgB,MAAAA,EACAO,KAAAA,EACAI,OAba,WACb,GAAIvB,EAAO,OAAOmB,IAClBP,KAYAZ,MAAAA,GAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
2
  var t=function(t){return{buttons:{a:t.buttons[0],b:t.buttons[1],x:t.buttons[2],y:t.buttons[3]},bumper:{left:t.buttons[4],right:t.buttons[5]},triggers:{left:t.buttons[6],right:t.buttons[7]},stick:{left:{horizontal:t.axes[0],vertical:t.axes[1],button:t.buttons[10]},right:{horizontal:t.axes[2],vertical:t.axes[3],button:t.buttons[11]}},dpad:{up:t.buttons[12],down:t.buttons[13],left:t.buttons[14],right:t.buttons[15]},back:t.buttons[8],start:t.buttons[9]}};export{t as mapGamepadToXbox360Controller};
3
3
  //# sourceMappingURL=mapGamepadToXbox360Controller.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e,b as t,f as a,a as n}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as r,useEffect as o}from"react";import{useEvent as i}from"../useEvent/useEvent.js";import{useRaf as c}from"../useRaf/useRaf.js";export{mapGamepadToXbox360Controller}from"./helpers/mapGamepadToXbox360Controller.js";var u=function(){var u=navigator&&"getGamepads"in navigator,d=r({}),p=e(d,2),s=p[0],m=p[1],v=c((function(){}),{enabled:!!Object.keys(s).length}).active,f=function(e){var a=[],r="vibrationActuator"in e?e.vibrationActuator:null;return r&&a.push(r),e.hapticActuators&&a.push.apply(a,n(e.hapticActuators)),t(t({},e),{},{hapticActuators:a})};o((function(){if(u){var e=navigator.getGamepads();m(e.reduce((function(e,n){return t(t({},e),n&&a({},n.index,f(n)))}),{}))}}),[]);var l=i((function(e){var n=e.gamepad;m(t(t({},s),{},a({},n.index,f(n))))})),g=i((function(e){var a=e.gamepad,n=t({},s);delete n[a.index],m(n)}));return o((function(){return document.addEventListener("gamepadconnected",l),document.addEventListener("gamepaddisconnected",g),function(){document.removeEventListener("gamepadconnected",l),document.removeEventListener("gamepaddisconnected",g)}}),[]),{active:v,supported:u,gamepads:Object.values(s)}};export{u as useGamepad};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as e,b as t,f as a,a as n}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as r,useEffect as o}from"react";import{useEvent as i}from"../useEvent/useEvent.js";import{useRaf as c}from"../useRaf/useRaf.js";export{mapGamepadToXbox360Controller}from"./helpers/mapGamepadToXbox360Controller.js";var u=function(){var u=navigator&&"getGamepads"in navigator,d=r({}),p=e(d,2),s=p[0],m=p[1],v=c((function(){}),{enabled:!!Object.keys(s).length}).active,f=function(e){var a=[],r="vibrationActuator"in e?e.vibrationActuator:null;return r&&a.push(r),e.hapticActuators&&a.push.apply(a,n(e.hapticActuators)),t(t({},e),{},{hapticActuators:a})};o((function(){if(u){var e=navigator.getGamepads();m(e.reduce((function(e,n){return t(t({},e),n&&a({},n.index,f(n)))}),{}))}}),[]);var l=i((function(e){var n=e.gamepad;m(t(t({},s),{},a({},n.index,f(n))))})),g=i((function(e){var a=e.gamepad,n=t({},s);delete n[a.index],m(n)}));return o((function(){return document.addEventListener("gamepadconnected",l),document.addEventListener("gamepaddisconnected",g),function(){document.removeEventListener("gamepadconnected",l),document.removeEventListener("gamepaddisconnected",g)}}),[]),{active:v,supported:u,gamepads:Object.values(s)}};export{u as useGamepad};
3
3
  //# sourceMappingURL=useGamepad.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as t,b as a}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as e,useEffect as i}from"react";var o=function(o){var l=e({loading:!0,error:null,timestamp:Date.now(),accuracy:0,latitude:Number.POSITIVE_INFINITY,longitude:Number.POSITIVE_INFINITY,altitude:null,altitudeAccuracy:null,heading:null,speed:null}),n=t(l,2),u=n[0],r=n[1];return i((function(){var t=function(t){var e=t.coords,i=t.timestamp;r(a(a({},u),{},{loading:!1,timestamp:i,latitude:e.latitude,longitude:e.longitude,altitude:e.altitude,accuracy:e.accuracy,altitudeAccuracy:e.altitudeAccuracy,heading:e.heading,speed:e.speed}))},e=function(t){r(a(a({},u),{},{loading:!1,error:t}))};navigator.geolocation.getCurrentPosition(t,e,o);var i=navigator.geolocation.watchPosition(t,e,o);return function(){navigator.geolocation.clearWatch(i)}}),[null==o?void 0:o.enableHighAccuracy,null==o?void 0:o.maximumAge,null==o?void 0:o.timeout]),u};export{o as useGeolocation};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as t,b as a}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as e,useEffect as i}from"react";var o=function(o){var l=e({loading:!0,error:null,timestamp:Date.now(),accuracy:0,latitude:Number.POSITIVE_INFINITY,longitude:Number.POSITIVE_INFINITY,altitude:null,altitudeAccuracy:null,heading:null,speed:null}),n=t(l,2),u=n[0],r=n[1];return i((function(){var t=function(t){var e=t.coords,i=t.timestamp;r(a(a({},u),{},{loading:!1,timestamp:i,latitude:e.latitude,longitude:e.longitude,altitude:e.altitude,accuracy:e.accuracy,altitudeAccuracy:e.altitudeAccuracy,heading:e.heading,speed:e.speed}))},e=function(t){r(a(a({},u),{},{loading:!1,error:t}))};navigator.geolocation.getCurrentPosition(t,e,o);var i=navigator.geolocation.watchPosition(t,e,o);return function(){navigator.geolocation.clearWatch(i)}}),[null==o?void 0:o.enableHighAccuracy,null==o?void 0:o.maximumAge,null==o?void 0:o.timeout]),u};export{o as useGeolocation};
3
3
  //# sourceMappingURL=useGeolocation.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as n}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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.72 */
2
+ import{_ as n}from"../../_rollupPluginBabelHelpers-DKveiPYY.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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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"../../utils/helpers/getElement.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.72 */
2
+ import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-DKveiPYY.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"../../utils/helpers/getElement.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';\r\n\r\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\r\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\r\nimport { useEventListener } from '../useEventListener/useEventListener';\r\n\r\n/** The use hotkeys params type */\r\nexport interface UseHotkeysOptions {\r\n /** The target to attach the event listeners to */\r\n target?: UseEventListenerTarget;\r\n /** Enable or disable the event listeners */\r\n enabled?: boolean;\r\n /** Whether to prevent the default behavior of the event */\r\n preventDefault?: boolean;\r\n /** Alias map for hotkeys */\r\n aliasMap?: Record<string, string>;\r\n}\r\n\r\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\r\n hotkey\r\n .toLowerCase()\r\n .split(/[+_-]/g)\r\n .map((key) => key.trim())\r\n .every((key) =>\r\n keys.find(\r\n (updatedKey) =>\r\n key === updatedKey.code.toLocaleLowerCase() ||\r\n key === updatedKey.key.toLocaleLowerCase() ||\r\n key === updatedKey.alias.toLocaleLowerCase()\r\n )\r\n );\r\n\r\nexport type UseHotkeysHotkeys = string[] | string;\r\nexport interface UseHotkeysKey {\r\n key: string;\r\n code: string;\r\n alias: string;\r\n}\r\n\r\n/**\r\n * @name useHotkeys\r\n * @description - Hook that listens for hotkeys\r\n * @category Sensors\r\n *\r\n * @param {UseHotkeysHotkeys} hotkeys The key or keys to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to be called when the hotkey is pressed\r\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\r\n * @param {boolean} [options.enabled=true] The enable or disable the event listeners\r\n * @param {boolean} [options.preventDefault=true] Whether to prevent the default behavior of the event\r\n * @param {Record<string, string>} [options.aliasMap] Alias map for hotkeys\r\n * @returns {useKeysPressedReturns} Array of strings with keys that were press\r\n *\r\n * @example\r\n * useHotkeys('control+a', () => console.log('hotkey pressed'));\r\n *\r\n * @example\r\n * useHotkeys('ControlLeft+KeyA', () => console.log('hotkey pressed'));\r\n */\r\nexport const useHotkeys = (\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions\r\n) => {\r\n const enabled = options?.enabled ?? true;\r\n const preventDefault = options?.preventDefault ?? true;\r\n const [, setKeys] = useState<UseHotkeysKey[]>([]);\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (preventDefault) event.preventDefault();\r\n\r\n if (!enabled) return;\r\n\r\n setKeys((prevKeys) => {\r\n if (prevKeys.some(({ code }) => code === event.code)) return prevKeys;\r\n const alias = options?.aliasMap?.[event.key] ?? options?.aliasMap?.[event.key] ?? event.code;\r\n const updatedKeys = [...prevKeys, { key: event.key, code: event.code, alias }];\r\n\r\n if (Array.isArray(hotkeys)) {\r\n hotkeys.forEach((hotkey) => {\r\n const isMatch = isHotkeyMatch(hotkey, updatedKeys);\r\n if (isMatch) callback(event);\r\n });\r\n } else {\r\n const isMatch = isHotkeyMatch(hotkeys, updatedKeys);\r\n if (isMatch) callback(event);\r\n }\r\n\r\n return updatedKeys;\r\n });\r\n };\r\n\r\n const onKeyUp = (event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n setKeys((prevKeys) => prevKeys.filter(({ code }) => code !== event.code));\r\n };\r\n\r\n useDidUpdate(() => {\r\n setKeys([]);\r\n }, [enabled]);\r\n\r\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\r\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\r\n};\r\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":";saAkBO,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,EA4BQE,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 type */\nexport interface UseHotkeysOptions {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n /** Enable or disable the event listeners */\n enabled?: boolean;\n /** Whether to prevent the default behavior of the event */\n preventDefault?: boolean;\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 interface UseHotkeysKey {\n key: string;\n code: string;\n alias: string;\n}\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] The 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":";saAkBO,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,EA4BQE,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.71 */
2
- import{c as e,_ as n}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as t,useRef as l}from"react";import{useEventListener as o}from"../useEventListener/useEventListener.js";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.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])instanceof Element)||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]},s=t(!1),u=n(s,2),v=u[0],a=u[1],c=l();return o(null!=i?i:c,"mouseenter",(function(){var e;null==r||null===(e=r.onEntry)||void 0===e||e.call(r),a(!0)})),o(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.72 */
2
+ import{c as e,_ as n}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as t,useRef as l}from"react";import{useEventListener as o}from"../useEventListener/useEventListener.js";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.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])instanceof Element)||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]},s=t(!1),u=n(s,2),v=u[0],a=u[1],c=l();return o(null!=i?i:c,"mouseenter",(function(){var e;null==r||null===(e=r.onEntry)||void 0===e||e.call(r),a(!0)})),o(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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-DnmVbpNy.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.72 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-DKveiPYY.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';\r\n\r\nimport { throttle } from '@/utils/helpers';\r\n\r\n//* The use idle options type */\r\nexport interface UseIdleOptions {\r\n //* The idle state */\r\n initialValue?: boolean;\r\n //* The idle events */\r\n events?: Array<keyof DocumentEventMap>;\r\n}\r\n\r\nconst IDLE_EVENTS = [\r\n 'mousemove',\r\n 'mousedown',\r\n 'keydown',\r\n 'touchstart',\r\n 'wheel',\r\n 'resize'\r\n] satisfies Array<keyof DocumentEventMap>;\r\nconst ONE_MINUTE = 60e3;\r\n\r\n//* The use idle return type */\r\nexport interface UseIdleReturn {\r\n //* The idle state */\r\n idle: boolean;\r\n //* The last active time */\r\n lastActive: number;\r\n}\r\n\r\n/**\r\n * @name useIdle\r\n * @description - Hook that defines the logic when the user is idle\r\n * @category Sensors\r\n *\r\n * @param {number} [milliseconds=ONE_MINUTE] The idle time in milliseconds\r\n * @param {boolean} [options.initialState=false] The options for the hook\r\n * @param {Array<keyof WindowEventMap>} [options.events=IDLE_EVENTS]\r\n * @returns {UseIdleReturn} An object containing the idle state and the last active time\r\n *\r\n * @example\r\n * const { idle, lastActive } = useIdle();\r\n */\r\nexport const useIdle = (\r\n milliseconds = ONE_MINUTE,\r\n { initialValue = false, events = IDLE_EVENTS }: UseIdleOptions = {}\r\n): UseIdleReturn => {\r\n const [idle, setIdle] = useState(initialValue);\r\n const [lastActive, setLastActive] = useState(Date.now());\r\n\r\n useEffect(() => {\r\n let timeoutId: ReturnType<typeof setTimeout>;\r\n const onTimeout = () => setIdle(true);\r\n\r\n const onEvent = throttle(() => {\r\n setIdle(false);\r\n setLastActive(Date.now());\r\n clearTimeout(timeoutId);\r\n timeoutId = setTimeout(onTimeout, milliseconds);\r\n }, 500);\r\n\r\n const onVisibilitychange = () => {\r\n if (!document.hidden) onEvent();\r\n };\r\n\r\n timeoutId = setTimeout(onTimeout, milliseconds);\r\n\r\n events.forEach((event) => window.addEventListener(event, onEvent));\r\n document.addEventListener('visibilitychange', onVisibilitychange);\r\n\r\n return () => {\r\n events.forEach((event) => window.addEventListener(event, onEvent));\r\n document.removeEventListener('visibilitychange', onVisibilitychange);\r\n clearTimeout(timeoutId);\r\n };\r\n }, [milliseconds, events]);\r\n\r\n return { idle, lastActive };\r\n};\r\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":";mNAYA,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
+ {"version":3,"file":"useIdle.js","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\n//* The use idle options type */\nexport interface UseIdleOptions {\n //* The idle state */\n initialValue?: boolean;\n //* The idle events */\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":";mNAYA,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.71 */
2
- import{b as r,a as e,d as s,e as t}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useQuery as o}from"../useQuery/useQuery.js";import"react";import"../../utils/helpers/getRetry.js";import"../../utils/helpers/isClient.js";import"../useDidUpdate/useDidUpdate.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../useMount/useMount.js";var n=function(){var r=s(t().mark((function r(e){var s,o=arguments;return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return s=o.length>1&&void 0!==o[1]?o[1]:{},r.abrupt("return",new Promise((function(r,t){var o=new Image,n=s.srcset,i=s.sizes,u=s.class,a=s.loading,c=s.crossorigin,p=s.referrerPolicy;o.src=e,n&&(o.srcset=n),i&&(o.sizes=i),u&&(o.className=u),a&&(o.loading=a),c&&(o.crossOrigin=c),p&&(o.referrerPolicy=p),o.onload=function(){return r(o)},o.onerror=t})));case 2:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}(),i=function(s,t){var i,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o((function(){return n(s,t)}),r({keys:[s].concat(e(null!==(i=u.keys)&&void 0!==i?i:[]))},u))};export{i as useImage};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{b as r,a as e,d as s,e as t}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useQuery as o}from"../useQuery/useQuery.js";import"react";import"../../utils/helpers/getRetry.js";import"../../utils/helpers/isClient.js";import"../useDidUpdate/useDidUpdate.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../useMount/useMount.js";var n=function(){var r=s(t().mark((function r(e){var s,o=arguments;return t().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return s=o.length>1&&void 0!==o[1]?o[1]:{},r.abrupt("return",new Promise((function(r,t){var o=new Image,n=s.srcset,i=s.sizes,u=s.class,a=s.loading,c=s.crossorigin,p=s.referrerPolicy;o.src=e,n&&(o.srcset=n),i&&(o.sizes=i),u&&(o.className=u),a&&(o.loading=a),c&&(o.crossOrigin=c),p&&(o.referrerPolicy=p),o.onload=function(){return r(o)},o.onerror=t})));case 2:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}(),i=function(s,t){var i,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return o((function(){return n(s,t)}),r({keys:[s].concat(e(null!==(i=u.keys)&&void 0!==i?i:[]))},u))};export{i as useImage};
3
3
  //# sourceMappingURL=useImage.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as t,d as r,e}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as n,useRef as i,useEffect as o}from"react";import{getElement as l}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{useEvent as s}from"../useEvent/useEvent.js";var c=function(){for(var c,u,a=arguments.length,f=new Array(a),p=0;p<a;p++)f[p]=arguments[p];var v=f[1]instanceof Function?f[0]:void 0,d=f[1]instanceof Function?f[1]:f[0],m=f[1]instanceof Function?f[2]:f[1],h=null!==(c=null==m?void 0:m.direction)&&void 0!==c?c:"bottom",g=null!==(u=null==m?void 0:m.distance)&&void 0!==u?u:10,b=n(!1),x=t(b,2),E=x[0],j=x[1],L=n(),k=t(L,2),w=k[0],F=k[1],H=i(d);H.current=d;var y=s(function(){var t=r(e().mark((function t(r){var n,i,o,l,s,c,u;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!E){t.next=2;break}return t.abrupt("return");case 2:if(n=r.target,i=n.clientHeight,o=n.scrollHeight,l=n.scrollTop,s=n.clientWidth,c=n.scrollWidth,u=n.scrollLeft,!({bottom:o-(l+i),top:l,right:c-(u+s),left:u}[h]<=g)){t.next=11;break}return j(!0),t.next=10,H.current(r);case 10:j(!1);case 11:case"end":return t.stop()}}),t)})));return function(r){return t.apply(this,arguments)}}());return o((function(){if(v||w){var t=v?l(v):w;if(t)return t.addEventListener("scroll",y),function(){t.removeEventListener("scroll",y)}}}),[w,v,h,g]),v?E:{ref:F,isLoading:E}};export{c as useInfiniteScroll};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as t,d as r,e}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as n,useRef as i,useEffect as o}from"react";import{getElement as l}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{useEvent as s}from"../useEvent/useEvent.js";var c=function(){for(var c,u,a=arguments.length,f=new Array(a),p=0;p<a;p++)f[p]=arguments[p];var v=f[1]instanceof Function?f[0]:void 0,d=f[1]instanceof Function?f[1]:f[0],m=f[1]instanceof Function?f[2]:f[1],h=null!==(c=null==m?void 0:m.direction)&&void 0!==c?c:"bottom",g=null!==(u=null==m?void 0:m.distance)&&void 0!==u?u:10,b=n(!1),x=t(b,2),E=x[0],j=x[1],L=n(),k=t(L,2),w=k[0],F=k[1],H=i(d);H.current=d;var y=s(function(){var t=r(e().mark((function t(r){var n,i,o,l,s,c,u;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!E){t.next=2;break}return t.abrupt("return");case 2:if(n=r.target,i=n.clientHeight,o=n.scrollHeight,l=n.scrollTop,s=n.clientWidth,c=n.scrollWidth,u=n.scrollLeft,!({bottom:o-(l+i),top:l,right:c-(u+s),left:u}[h]<=g)){t.next=11;break}return j(!0),t.next=10,H.current(r);case 10:j(!1);case 11:case"end":return t.stop()}}),t)})));return function(r){return t.apply(this,arguments)}}());return o((function(){if(v||w){var t=v?l(v):w;if(t)return t.addEventListener("scroll",y),function(){t.removeEventListener("scroll",y)}}}),[w,v,h,g]),v?E:{ref:F,isLoading:E}};export{c as useInfiniteScroll};
3
3
  //# sourceMappingURL=useInfiniteScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteScroll.js","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\nimport { useEffect, useRef, useState } from 'react';\r\n\r\nimport { getElement } from '@/utils/helpers';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\n\r\n/** The use infinite scroll target element type */\r\nexport type UseInfiniteScrollTarget = RefObject<Element | null> | (() => Element) | Element;\r\n\r\n/** The use infinite scroll options type */\r\nexport interface UseInfiniteScrollOptions {\r\n /** The distance in pixels to trigger the callback */\r\n distance?: number;\r\n /** The direction to trigger the callback */\r\n direction?: 'top' | 'bottom' | 'left' | 'right';\r\n}\r\n\r\nexport interface UseInfiniteScroll {\r\n <Target extends UseInfiniteScrollTarget>(\r\n target: Target,\r\n callback: (event: Event) => void,\r\n options?: UseInfiniteScrollOptions\r\n ): boolean;\r\n\r\n <Target extends UseInfiniteScrollTarget>(\r\n callback: (event: Event) => void,\r\n options?: UseInfiniteScrollOptions,\r\n target?: never\r\n ): {\r\n ref: (node: Target) => void;\r\n isLoading: boolean;\r\n };\r\n}\r\n\r\n/**\r\n * @name useInfiniteScroll\r\n * @description - Hook that defines the logic for infinite scroll\r\n * @category Sensors\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\r\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\r\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\r\n * @returns {{ ref: (node: Target) => void; isLoading: boolean }} An object containing the ref and isLoading\r\n *\r\n * @example\r\n * const { ref, isLoading } = useInfiniteScroll(() => console.log('infinite scroll'));\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {Target} target The target element to detect infinite scroll for\r\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\r\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\r\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\r\n * @returns {boolean} A loading indicator of the infinite scroll\r\n *\r\n * @example\r\n * const isLoading = useInfiniteScroll(ref, () => console.log('infinite scroll'));\r\n */\r\nexport const useInfiniteScroll = ((...params) => {\r\n const target = params[1] instanceof Function ? (params[0] as UseInfiniteScrollTarget) : undefined;\r\n const callback = params[1] instanceof Function ? params[1] : (params[0] as () => void);\r\n const options = (\r\n params[1] instanceof Function ? params[2] : params[1]\r\n ) as UseInfiniteScrollOptions;\r\n\r\n const direction = options?.direction ?? 'bottom';\r\n const distance = options?.distance ?? 10;\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [internalRef, setInternalRef] = useState<Element>();\r\n const internalCallbackRef = useRef(callback);\r\n internalCallbackRef.current = callback;\r\n\r\n const onLoadMore = useEvent(async (event: Event) => {\r\n if (isLoading) return;\r\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\r\n event.target as Element;\r\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\r\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\r\n\r\n const distances = {\r\n bottom: scrollBottom,\r\n top: scrollTop,\r\n right: scrollRight,\r\n left: scrollLeft\r\n };\r\n\r\n if (distances[direction] <= distance) {\r\n setIsLoading(true);\r\n await internalCallbackRef.current(event);\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!target && !internalRef) return;\r\n const element = (target ? getElement(target) : internalRef) as Element;\r\n if (!element) return;\r\n\r\n element.addEventListener('scroll', onLoadMore);\r\n\r\n return () => {\r\n element.removeEventListener('scroll', onLoadMore);\r\n };\r\n }, [internalRef, target, direction, distance]);\r\n\r\n if (target) return isLoading;\r\n return {\r\n ref: setInternalRef,\r\n isLoading\r\n };\r\n}) as UseInfiniteScroll;\r\n"],"names":["useInfiniteScroll","_options$direction","_options$distance","_len","arguments","length","params","Array","_key","target","Function","undefined","callback","options","direction","distance","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","internalRef","setInternalRef","internalCallbackRef","useRef","current","onLoadMore","useEvent","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","_ref2","clientHeight","scrollHeight","scrollTop","clientWidth","scrollWidth","scrollLeft","wrap","_context","prev","next","abrupt","bottom","top","right","left","stop","_x","apply","this","useEffect","element","getElement","addEventListener","removeEventListener","ref"],"mappings":";mSA6DaA,EAAqB,WAAe,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAXC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GAC1C,IAAMC,EAASH,EAAO,aAAcI,SAAYJ,EAAO,QAAiCK,EAClFC,EAAWN,EAAO,aAAcI,SAAWJ,EAAO,GAAMA,EAAO,GAC/DO,EACJP,EAAO,aAAcI,SAAWJ,EAAO,GAAKA,EAAO,GAG/CQ,EAA8Bb,QAArBA,EAAGY,aAAO,EAAPA,EAASC,iBAASb,IAAAA,EAAAA,EAAI,SAClCc,EAA4Bb,QAApBA,EAAGW,aAAO,EAAPA,EAASE,gBAAQb,IAAAA,EAAAA,EAAI,GAEtCc,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAsBC,EAAOf,GACnCc,EAAoBE,QAAUhB,EAE9B,IAAMiB,EAAaC,EAAQ,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAAC,SAAAC,EAAOC,GAAY,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAV,IAAAW,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,IACzC3B,EAAS,CAAAyB,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,UAAA,KAAA,EAWZ,GAXYX,EAEXD,EAAM3B,OADA6B,EAAYD,EAAZC,aAAcC,EAAYF,EAAZE,aAAcC,EAASH,EAATG,UAAWC,EAAWJ,EAAXI,YAAaC,EAAWL,EAAXK,YAAaC,EAAUN,EAAVM,aAKvD,CAChBM,OAJmBV,GAAgBC,EAAYF,GAK/CY,IAAKV,EACLW,MALkBT,GAAeC,EAAaF,GAM9CW,KAAMT,GAGM7B,IAAcC,GAAQ,CAAA8B,EAAAE,KAAA,GAAA,KAAA,CACf,OAAnB1B,GAAa,GAAMwB,EAAAE,KAAA,GACbrB,EAAoBE,QAAQQ,GAAM,KAAA,GACxCf,GAAa,GAAO,KAAA,GAAA,IAAA,MAAA,OAAAwB,EAAAQ,OAAA,GAAAlB,EAEvB,KAAA,OAAA,SAAAmB,GAAA,OAAAvB,EAAAwB,MAAAC,KAAApD,UAAA,CAAC,CAnByB,IAiC3B,OAZAqD,GAAU,WACR,GAAKhD,GAAWe,EAAhB,CACA,IAAMkC,EAAWjD,EAASkD,EAAWlD,GAAUe,EAC/C,GAAKkC,EAIL,OAFAA,EAAQE,iBAAiB,SAAU/B,GAE5B,WACL6B,EAAQG,oBAAoB,SAAUhC,GAPX,CAS9B,GAAE,CAACL,EAAaf,EAAQK,EAAWC,IAEhCN,EAAeW,EACZ,CACL0C,IAAKrC,EACLL,UAAAA,EAEJ"}
1
+ {"version":3,"file":"useInfiniteScroll.js","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/** The use infinite scroll target element type */\nexport type UseInfiniteScrollTarget = RefObject<Element | null> | (() => Element) | Element;\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The distance in pixels to trigger the callback */\n distance?: number;\n /** The direction to trigger the callback */\n direction?: 'top' | 'bottom' | 'left' | 'right';\n}\n\nexport interface UseInfiniteScroll {\n <Target extends UseInfiniteScrollTarget>(\n target: Target,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): boolean;\n\n <Target extends UseInfiniteScrollTarget>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): {\n ref: (node: Target) => void;\n isLoading: boolean;\n };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {{ ref: (node: Target) => void; isLoading: boolean }} An object containing the ref and isLoading\n *\n * @example\n * const { ref, isLoading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to detect infinite scroll for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {boolean} A loading indicator of the infinite scroll\n *\n * @example\n * const isLoading = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params) => {\n const target = params[1] instanceof Function ? (params[0] as UseInfiniteScrollTarget) : undefined;\n const callback = params[1] instanceof Function ? params[1] : (params[0] as () => void);\n const options = (\n params[1] instanceof Function ? params[2] : params[1]\n ) as UseInfiniteScrollOptions;\n\n const direction = options?.direction ?? 'bottom';\n const distance = options?.distance ?? 10;\n\n const [isLoading, setIsLoading] = useState(false);\n const [internalRef, setInternalRef] = useState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n const onLoadMore = useEvent(async (event: Event) => {\n if (isLoading) return;\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\n event.target as Element;\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\n\n const distances = {\n bottom: scrollBottom,\n top: scrollTop,\n right: scrollRight,\n left: scrollLeft\n };\n\n if (distances[direction] <= distance) {\n setIsLoading(true);\n await internalCallbackRef.current(event);\n setIsLoading(false);\n }\n });\n\n useEffect(() => {\n if (!target && !internalRef) return;\n const element = (target ? getElement(target) : internalRef) as Element;\n if (!element) return;\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [internalRef, target, direction, distance]);\n\n if (target) return isLoading;\n return {\n ref: setInternalRef,\n isLoading\n };\n}) as UseInfiniteScroll;\n"],"names":["useInfiniteScroll","_options$direction","_options$distance","_len","arguments","length","params","Array","_key","target","Function","undefined","callback","options","direction","distance","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","internalRef","setInternalRef","internalCallbackRef","useRef","current","onLoadMore","useEvent","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","_ref2","clientHeight","scrollHeight","scrollTop","clientWidth","scrollWidth","scrollLeft","wrap","_context","prev","next","abrupt","bottom","top","right","left","stop","_x","apply","this","useEffect","element","getElement","addEventListener","removeEventListener","ref"],"mappings":";mSA6DaA,EAAqB,WAAe,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,UAAAC,OAAXC,EAAMC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANF,EAAME,GAAAJ,UAAAI,GAC1C,IAAMC,EAASH,EAAO,aAAcI,SAAYJ,EAAO,QAAiCK,EAClFC,EAAWN,EAAO,aAAcI,SAAWJ,EAAO,GAAMA,EAAO,GAC/DO,EACJP,EAAO,aAAcI,SAAWJ,EAAO,GAAKA,EAAO,GAG/CQ,EAA8Bb,QAArBA,EAAGY,aAAO,EAAPA,EAASC,iBAASb,IAAAA,EAAAA,EAAI,SAClCc,EAA4Bb,QAApBA,EAAGW,aAAO,EAAPA,EAASE,gBAAQb,IAAAA,EAAAA,EAAI,GAEtCc,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAsBC,EAAOf,GACnCc,EAAoBE,QAAUhB,EAE9B,IAAMiB,EAAaC,EAAQ,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAAC,SAAAC,EAAOC,GAAY,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAV,IAAAW,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,IACzC3B,EAAS,CAAAyB,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,UAAA,KAAA,EAWZ,GAXYX,EAEXD,EAAM3B,OADA6B,EAAYD,EAAZC,aAAcC,EAAYF,EAAZE,aAAcC,EAASH,EAATG,UAAWC,EAAWJ,EAAXI,YAAaC,EAAWL,EAAXK,YAAaC,EAAUN,EAAVM,aAKvD,CAChBM,OAJmBV,GAAgBC,EAAYF,GAK/CY,IAAKV,EACLW,MALkBT,GAAeC,EAAaF,GAM9CW,KAAMT,GAGM7B,IAAcC,GAAQ,CAAA8B,EAAAE,KAAA,GAAA,KAAA,CACf,OAAnB1B,GAAa,GAAMwB,EAAAE,KAAA,GACbrB,EAAoBE,QAAQQ,GAAM,KAAA,GACxCf,GAAa,GAAO,KAAA,GAAA,IAAA,MAAA,OAAAwB,EAAAQ,OAAA,GAAAlB,EAEvB,KAAA,OAAA,SAAAmB,GAAA,OAAAvB,EAAAwB,MAAAC,KAAApD,UAAA,CAAC,CAnByB,IAiC3B,OAZAqD,GAAU,WACR,GAAKhD,GAAWe,EAAhB,CACA,IAAMkC,EAAWjD,EAASkD,EAAWlD,GAAUe,EAC/C,GAAKkC,EAIL,OAFAA,EAAQE,iBAAiB,SAAU/B,GAE5B,WACL6B,EAAQG,oBAAoB,SAAUhC,GAPX,CAS9B,GAAE,CAACL,EAAaf,EAAQK,EAAWC,IAEhCN,EAAeW,EACZ,CACL0C,IAAKrC,EACLL,UAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{c as n,_ as e,b as o}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as r,useRef as l,useEffect as t}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var u=function(){var u,s="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,v=s?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],d=null===(u=null==v?void 0:v.enabled)||void 0===u||u,c=r(),a=e(c,2),g=a[0],f=a[1],h=r(),m=e(h,2),p=m[0],b=m[1],j=l();return j.current=null==v?void 0:v.onChange,t((function(){if(d||s||p){var n=s?i(s):p;if(n){var r=new IntersectionObserver((function(n){var o,r=e(n,1)[0];f(r),null===(o=j.current)||void 0===o||o.call(j,r)}),o(o({},v),{},{root:null!=v&&v.root?i(null==v?void 0:v.root):document}));return r.observe(n),function(){r.disconnect()}}}}),[s,p,null==v?void 0:v.rootMargin,null==v?void 0:v.threshold,null==v?void 0:v.root,d]),s?{entry:g,inView:!(null==g||!g.isIntersecting)}:{ref:b,entry:g,inView:!(null==g||!g.isIntersecting)}};export{u as useIntersectionObserver};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{c as n,_ as e,b as o}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as r,useRef as l,useEffect as t}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";var u=function(){var u,s="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,v=s?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],d=null===(u=null==v?void 0:v.enabled)||void 0===u||u,c=r(),a=e(c,2),g=a[0],f=a[1],h=r(),m=e(h,2),p=m[0],b=m[1],j=l();return j.current=null==v?void 0:v.onChange,t((function(){if(d||s||p){var n=s?i(s):p;if(n){var r=new IntersectionObserver((function(n){var o,r=e(n,1)[0];f(r),null===(o=j.current)||void 0===o||o.call(j,r)}),o(o({},v),{},{root:null!=v&&v.root?i(null==v?void 0:v.root):document}));return r.observe(n),function(){r.disconnect()}}}}),[s,p,null==v?void 0:v.rootMargin,null==v?void 0:v.threshold,null==v?void 0:v.root,d]),s?{entry:g,inView:!(null==g||!g.isIntersecting)}:{ref:b,entry:g,inView:!(null==g||!g.isIntersecting)}};export{u as useIntersectionObserver};
3
3
  //# sourceMappingURL=useIntersectionObserver.js.map
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{c as r,_ as e}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as n,useRef as t,useEffect as l}from"react";import{useEvent as u}from"../useEvent/useEvent.js";var a=function(){for(var a,o,c=arguments.length,i=new Array(c),v=0;v<c;v++)i[v]=arguments[v];var f=i[0],s=null!==(a="number"==typeof i[1]?i[1]:i[1].interval)&&void 0!==a?a:1e3,m="object"===r(i[1])?i[1]:i[2],p=null===(o=null==m?void 0:m.enabled)||void 0===o||o,I=n(null==p||p),b=e(I,2),d=b[0],j=b[1],g=t(),y=u(f);l((function(){if(p)return g.current=setInterval(y,s),function(){clearInterval(g.current)}}),[p,s]);return{active:d,pause:function(){j(!1),clearInterval(g.current)},resume:function(){s<=0||(j(!0),clearInterval(g.current),g.current=setInterval(y,s))}}};export{a as useInterval};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{c as r,_ as e}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as n,useRef as t,useEffect as l}from"react";import{useEvent as u}from"../useEvent/useEvent.js";var a=function(){for(var a,o,c=arguments.length,i=new Array(c),v=0;v<c;v++)i[v]=arguments[v];var f=i[0],s=null!==(a="number"==typeof i[1]?i[1]:i[1].interval)&&void 0!==a?a:1e3,m="object"===r(i[1])?i[1]:i[2],p=null===(o=null==m?void 0:m.enabled)||void 0===o||o,I=n(null==p||p),b=e(I,2),d=b[0],j=b[1],g=t(),y=u(f);l((function(){if(p)return g.current=setInterval(y,s),function(){clearInterval(g.current)}}),[p,s]);return{active:d,pause:function(){j(!1),clearInterval(g.current)},resume:function(){s<=0||(j(!0),clearInterval(g.current),g.current=setInterval(y,s))}}};export{a 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';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\n\r\n/** The use interval options */\r\nexport interface UseIntervalOptions {\r\n /** Start the interval immediately */\r\n enabled?: boolean;\r\n}\r\n\r\n/** The use interval return type */\r\nexport interface UseIntervalReturn {\r\n /** Is the interval active */\r\n active: boolean;\r\n /** Pause the interval */\r\n pause: () => void;\r\n /** Resume the interval */\r\n resume: () => void;\r\n}\r\n\r\ninterface UseInterval {\r\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\r\n\r\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\r\n}\r\n\r\n/**\r\n * @name useInterval\r\n * @description - Hook that makes and interval and returns controlling functions\r\n * @category Time\r\n *\r\n * @overload\r\n * @param {() => void} callback Any callback function\r\n * @param {number} [interval=1000] Time in milliseconds\r\n * @param {boolean} [options.immediate=true] Start the interval immediately\r\n * @returns {UseIntervalReturn}\r\n *\r\n * @example\r\n * const { active, pause, resume } = useInterval(() => console.log('inside interval'), 2500);\r\n *\r\n * @overload\r\n * @param {() => void} callback Any callback function\r\n * @param {number} [options.interval=1000] Time in milliseconds\r\n * @param {boolean} [options.immediate=true] Start the interval immediately\r\n *\r\n * @example\r\n * const { active, pause, resume } = useInterval(() => console.log('inside interval'), { interval: 2500 });\r\n */\r\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\r\n const callback = params[0] as () => void;\r\n const interval =\r\n ((typeof params[1] === 'number'\r\n ? params[1]\r\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\r\n const options =\r\n typeof params[1] === 'object'\r\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\r\n : (params[2] as UseIntervalOptions | undefined);\r\n const enabled = options?.enabled ?? true;\r\n\r\n const [active, setActive] = useState<boolean>(enabled ?? true);\r\n\r\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\r\n const internalCallback = useEvent(callback);\r\n\r\n useEffect(() => {\r\n if (!enabled) return;\r\n\r\n intervalIdRef.current = setInterval(internalCallback, interval);\r\n return () => {\r\n clearInterval(intervalIdRef.current);\r\n };\r\n }, [enabled, interval]);\r\n\r\n const pause = () => {\r\n setActive(false);\r\n clearInterval(intervalIdRef.current);\r\n };\r\n\r\n const resume = () => {\r\n if (interval <= 0) return;\r\n setActive(true);\r\n clearInterval(intervalIdRef.current);\r\n intervalIdRef.current = setInterval(internalCallback, interval);\r\n };\r\n\r\n return {\r\n active,\r\n pause,\r\n resume\r\n };\r\n}) as UseInterval;\r\n"],"names":["useInterval","_ref","_options$enabled","_len","arguments","length","params","Array","_key","callback","interval","options","_typeof","enabled","_useState","useState","_useState2","_slicedToArray","active","setActive","intervalIdRef","useRef","internalCallback","useEvent","useEffect","current","setInterval","clearInterval","pause","resume"],"mappings":";0LAgDaA,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,EAA4BC,EAAkBF,SAAAA,GAAgBG,EAAAC,EAAAH,EAAA,GAAvDI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,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,OAAAA,EACAU,MAdY,WACZT,GAAU,GACVQ,cAAcP,EAAcK,UAa5BI,OAVa,WACTnB,GAAY,IAChBS,GAAU,GACVQ,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 active: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n}\n\ninterface UseInterval {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n\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 { active, 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 { active, 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 [active, setActive] = 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 setActive(false);\n clearInterval(intervalIdRef.current);\n };\n\n const resume = () => {\n if (interval <= 0) return;\n setActive(true);\n clearInterval(intervalIdRef.current);\n intervalIdRef.current = setInterval(internalCallback, interval);\n };\n\n return {\n active,\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","active","setActive","intervalIdRef","useRef","internalCallback","useEvent","useEffect","current","setInterval","clearInterval","pause","resume"],"mappings":";0LAgDaA,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,EAA4BC,EAAkBF,SAAAA,GAAgBG,EAAAC,EAAAH,EAAA,GAAvDI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,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,OAAAA,EACAU,MAdY,WACZT,GAAU,GACVQ,cAAcP,EAAcK,UAa5BI,OAVa,WACTnB,GAAY,IAChBS,GAAU,GACVQ,cAAcP,EAAcK,SAC5BL,EAAcK,QAAUC,YAAYJ,EAAkBZ,KAQ1D"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.71 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-DnmVbpNy.js";import{useState as r}from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(i,n){var s,l,o=r(!1),u=e(o,2),p=u[0],a=u[1];return t(null!==(s=null==n?void 0:n.target)&&void 0!==s?s:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&a(!0)})),t(null!==(l=null==n?void 0:n.target)&&void 0!==l?l:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&a(!1)})),p};export{i as useKeyPress};
1
+ /* @license @siberiacancode/reactuse v0.0.72 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-DKveiPYY.js";import{useState as r}from"react";import{useEventListener as t}from"../useEventListener/useEventListener.js";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var i=function(i,n){var s,l,o=r(!1),u=e(o,2),p=u[0],a=u[1];return t(null!==(s=null==n?void 0:n.target)&&void 0!==s?s:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&a(!0)})),t(null!==(l=null==n?void 0:n.target)&&void 0!==l?l:window,"keyup",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&a(!1)})),p};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';\r\n\r\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\r\nimport { useEventListener } from '../useEventListener/useEventListener';\r\n\r\n/** The key or keys to listen for */\r\nexport type UseKeyPressKey = string | string[];\r\n\r\n/** The use key press options type */\r\nexport interface UseKeyPressOptions {\r\n /** The target to attach the event listeners to */\r\n target?: UseEventListenerTarget;\r\n}\r\n\r\n/**\r\n * @name useKeyPress\r\n * @description - Hook that listens for key press events\r\n * @category Sensors\r\n *\r\n * @param {UseKeyPressKey} key The key or keys to listen for\r\n * @param {UseEventListenerTarget} [options.target=window] The target to attach the event listeners to\r\n * @returns {useKeyPressReturns} Return boolean type (`true` if the specified keys are currently pressed)\r\n *\r\n * @example\r\n * const isKeyPressed = useKeyPress('a');\r\n */\r\nexport const useKeyPress = (key: UseKeyPressKey, options?: UseKeyPressOptions) => {\r\n const [pressed, setPressed] = useState(false);\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(true);\r\n };\r\n\r\n const onKeyUp = (event: KeyboardEvent) => {\r\n if (Array.isArray(key) ? key.includes(event.key) : event.key === key) setPressed(false);\r\n };\r\n\r\n useEventListener(options?.target ?? window, 'keydown', onKeyDown);\r\n useEventListener(options?.target ?? window, 'keyup', onKeyUp);\r\n\r\n return pressed;\r\n};\r\n"],"names":["useKeyPress","key","options","_options$target","_options$target2","_useState","useState","_useState2","_slicedToArray","pressed","setPressed","useEventListener","target","window","event","Array","isArray","includes"],"mappings":";8RA0BO,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 interface 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":";8RA0BO,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"}