@siberiacancode/reactuse 0.0.83 → 0.0.86

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 (342) hide show
  1. package/dist/cjs/{_rollupPluginBabelHelpers-C6yks7ns.js → _rollupPluginBabelHelpers-BNBLgU3K.js} +2 -2
  2. package/dist/cjs/_rollupPluginBabelHelpers-BNBLgU3K.js.map +1 -0
  3. package/dist/cjs/hooks/index.js +2 -2
  4. package/dist/cjs/hooks/useActiveElement/useActiveElement.js +2 -2
  5. package/dist/cjs/hooks/useActiveElement/useActiveElement.js.map +1 -1
  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/useBluetooth/useBluetooth.js +2 -2
  10. package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
  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/useClickOutside/useClickOutside.js.map +1 -1
  17. package/dist/cjs/hooks/useClipboard/useClipboard.js +2 -2
  18. package/dist/cjs/hooks/useConst/useConst.js +1 -1
  19. package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
  20. package/dist/cjs/hooks/useCssVar/useCssVar.js +2 -2
  21. package/dist/cjs/hooks/useCssVar/useCssVar.js.map +1 -1
  22. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  23. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
  24. package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
  25. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
  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/useDocumentEvent/useDocumentEvent.js.map +1 -1
  31. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  32. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js.map +1 -1
  33. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  34. package/dist/cjs/hooks/useElementSize/useElementSize.js +2 -2
  35. package/dist/cjs/hooks/useElementSize/useElementSize.js.map +1 -1
  36. package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
  37. package/dist/cjs/hooks/useEventListener/useEventListener.js +2 -2
  38. package/dist/cjs/hooks/useEventListener/useEventListener.js.map +1 -1
  39. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
  40. package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
  41. package/dist/cjs/hooks/useField/useField.js +2 -2
  42. package/dist/cjs/hooks/useField/useField.js.map +1 -1
  43. package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
  44. package/dist/cjs/hooks/useFocus/useFocus.js +2 -2
  45. package/dist/cjs/hooks/useFocus/useFocus.js.map +1 -1
  46. package/dist/cjs/hooks/useFps/useFps.js +2 -2
  47. package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
  48. package/dist/cjs/hooks/useFullscreen/useFullscreen.js.map +1 -1
  49. package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
  50. package/dist/cjs/hooks/useGamepad/useGamepad.js +2 -2
  51. package/dist/cjs/hooks/useGeolocation/useGeolocation.js +2 -2
  52. package/dist/cjs/hooks/useHash/useHash.js +2 -2
  53. package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
  54. package/dist/cjs/hooks/useHotkeys/useHotkeys.js.map +1 -1
  55. package/dist/cjs/hooks/useHover/useHover.js +2 -2
  56. package/dist/cjs/hooks/useHover/useHover.js.map +1 -1
  57. package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
  58. package/dist/cjs/hooks/useIdle/useIdle.js.map +1 -1
  59. package/dist/cjs/hooks/useImage/useImage.js +2 -2
  60. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
  61. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
  62. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  63. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  64. package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
  65. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  66. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  67. package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
  68. package/dist/cjs/hooks/useKeyPress/useKeyPress.js.map +1 -1
  69. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  70. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
  71. package/dist/cjs/hooks/useKeyboard/useKeyboard.js +2 -2
  72. package/dist/cjs/hooks/useKeyboard/useKeyboard.js.map +1 -1
  73. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
  74. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  75. package/dist/cjs/hooks/useLastChanged/useLastChanged.js +2 -2
  76. package/dist/cjs/hooks/useLatest/useLatest.js +1 -1
  77. package/dist/cjs/hooks/useList/useList.js +2 -2
  78. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
  79. package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
  80. package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
  81. package/dist/cjs/hooks/useMap/useMap.js +2 -2
  82. package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
  83. package/dist/cjs/hooks/useMeasure/useMeasure.js.map +1 -1
  84. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
  85. package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
  86. package/dist/cjs/hooks/useMount/useMount.js +1 -1
  87. package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
  88. package/dist/cjs/hooks/useMouse/useMouse.js.map +1 -1
  89. package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
  90. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js +2 -2
  91. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  92. package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
  93. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
  94. package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
  95. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  96. package/dist/cjs/hooks/useOptimistic/useOptimistic.js +2 -2
  97. package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
  98. package/dist/cjs/hooks/useOrientation/useOrientation.js.map +1 -1
  99. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.js +2 -2
  100. package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
  101. package/dist/cjs/hooks/usePaint/helpers/Paint.js +2 -2
  102. package/dist/cjs/hooks/usePaint/helpers/Pointer.js +2 -2
  103. package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
  104. package/dist/cjs/hooks/useParallax/useParallax.js +2 -2
  105. package/dist/cjs/hooks/useParallax/useParallax.js.map +1 -1
  106. package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
  107. package/dist/cjs/hooks/usePointerLock/usePointerLock.js +2 -2
  108. package/dist/cjs/hooks/usePostMessage/usePostMessage.js +1 -1
  109. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  110. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
  111. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.js +1 -1
  112. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  113. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
  114. package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
  115. package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
  116. package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
  117. package/dist/cjs/hooks/useRaf/useRaf.js +2 -2
  118. package/dist/cjs/hooks/useRafValue/useRafValue.js +2 -2
  119. package/dist/cjs/hooks/useRefState/useRefState.js +3 -0
  120. package/dist/cjs/hooks/useRefState/useRefState.js.map +1 -0
  121. package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
  122. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
  123. package/dist/cjs/hooks/useRerender/useRerender.js +2 -2
  124. package/dist/cjs/hooks/useRerender/useRerender.js.map +1 -1
  125. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +2 -2
  126. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  127. package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
  128. package/dist/cjs/hooks/useScript/useScript.js +2 -2
  129. package/dist/cjs/hooks/useScroll/useScroll.js +2 -2
  130. package/dist/cjs/hooks/useScroll/useScroll.js.map +1 -1
  131. package/dist/cjs/hooks/useScrollTo/useScrollTo.js +2 -2
  132. package/dist/cjs/hooks/useScrollTo/useScrollTo.js.map +1 -1
  133. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
  134. package/dist/cjs/hooks/useSet/useSet.js +2 -2
  135. package/dist/cjs/hooks/useShare/useShare.js +2 -2
  136. package/dist/cjs/hooks/useStep/useStep.js +2 -2
  137. package/dist/cjs/hooks/useStopwatch/useStopwatch.js +2 -2
  138. package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
  139. package/dist/cjs/hooks/useTextDirection/useTextDirection.js +2 -2
  140. package/dist/cjs/hooks/useTextDirection/useTextDirection.js.map +1 -1
  141. package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
  142. package/dist/cjs/hooks/useTextSelection/useTextSelection.js.map +1 -1
  143. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.js +1 -1
  144. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.js.map +1 -1
  145. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.js +2 -2
  146. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.js.map +1 -1
  147. package/dist/cjs/hooks/useTime/useTime.js +2 -2
  148. package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
  149. package/dist/cjs/hooks/useTimer/useTimer.js +2 -2
  150. package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
  151. package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
  152. package/dist/cjs/hooks/useVibrate/useVibrate.js +2 -2
  153. package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
  154. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +2 -2
  155. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  156. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.js +2 -2
  157. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.js +2 -2
  158. package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
  159. package/dist/cjs/hooks/useWizard/useWizard.js +2 -2
  160. package/dist/cjs/index.js +2 -2
  161. package/dist/cjs/utils/helpers/debounce.js +1 -1
  162. package/dist/cjs/utils/helpers/getElement.js +1 -1
  163. package/dist/cjs/utils/helpers/getRetry.js +1 -1
  164. package/dist/cjs/utils/helpers/index.js +1 -1
  165. package/dist/cjs/utils/helpers/isClient.js +1 -1
  166. package/dist/cjs/utils/helpers/isTarget.js +1 -1
  167. package/dist/cjs/utils/helpers/throttle.js +2 -2
  168. package/dist/cjs/utils/helpers/throttle.js.map +1 -1
  169. package/dist/cjs/utils/helpers/time/getDate.js +1 -1
  170. package/dist/esm/{_rollupPluginBabelHelpers-Dugjabfg.js → _rollupPluginBabelHelpers-C75B2U9C.js} +2 -2
  171. package/dist/esm/_rollupPluginBabelHelpers-C75B2U9C.js.map +1 -0
  172. package/dist/esm/hooks/index.js +2 -2
  173. package/dist/esm/hooks/useActiveElement/useActiveElement.js +2 -2
  174. package/dist/esm/hooks/useActiveElement/useActiveElement.js.map +1 -1
  175. package/dist/esm/hooks/useAsync/useAsync.js +2 -2
  176. package/dist/esm/hooks/useAsync/useAsync.js.map +1 -1
  177. package/dist/esm/hooks/useBattery/useBattery.js +2 -2
  178. package/dist/esm/hooks/useBluetooth/useBluetooth.js +2 -2
  179. package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
  180. package/dist/esm/hooks/useBreakpoints/constants/breakpoints.js +1 -1
  181. package/dist/esm/hooks/useBreakpoints/useBreakpoints.js +2 -2
  182. package/dist/esm/hooks/useBreakpoints/useBreakpoints.js.map +1 -1
  183. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
  184. package/dist/esm/hooks/useClickOutside/useClickOutside.js +2 -2
  185. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  186. package/dist/esm/hooks/useClipboard/useClipboard.js +2 -2
  187. package/dist/esm/hooks/useConst/useConst.js +1 -1
  188. package/dist/esm/hooks/useCounter/useCounter.js +2 -2
  189. package/dist/esm/hooks/useCssVar/useCssVar.js +2 -2
  190. package/dist/esm/hooks/useCssVar/useCssVar.js.map +1 -1
  191. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  192. package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
  193. package/dist/esm/hooks/useDefault/useDefault.js +2 -2
  194. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
  195. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.js +2 -2
  196. package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
  197. package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
  198. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
  199. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js.map +1 -1
  200. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
  201. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js.map +1 -1
  202. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
  203. package/dist/esm/hooks/useElementSize/useElementSize.js +2 -2
  204. package/dist/esm/hooks/useElementSize/useElementSize.js.map +1 -1
  205. package/dist/esm/hooks/useEvent/useEvent.js +1 -1
  206. package/dist/esm/hooks/useEventListener/useEventListener.js +2 -2
  207. package/dist/esm/hooks/useEventListener/useEventListener.js.map +1 -1
  208. package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
  209. package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
  210. package/dist/esm/hooks/useField/useField.js +2 -2
  211. package/dist/esm/hooks/useField/useField.js.map +1 -1
  212. package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
  213. package/dist/esm/hooks/useFocus/useFocus.js +2 -2
  214. package/dist/esm/hooks/useFocus/useFocus.js.map +1 -1
  215. package/dist/esm/hooks/useFps/useFps.js +2 -2
  216. package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
  217. package/dist/esm/hooks/useFullscreen/useFullscreen.js.map +1 -1
  218. package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
  219. package/dist/esm/hooks/useGamepad/useGamepad.js +2 -2
  220. package/dist/esm/hooks/useGeolocation/useGeolocation.js +2 -2
  221. package/dist/esm/hooks/useHash/useHash.js +2 -2
  222. package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
  223. package/dist/esm/hooks/useHotkeys/useHotkeys.js.map +1 -1
  224. package/dist/esm/hooks/useHover/useHover.js +2 -2
  225. package/dist/esm/hooks/useHover/useHover.js.map +1 -1
  226. package/dist/esm/hooks/useIdle/useIdle.js +2 -2
  227. package/dist/esm/hooks/useIdle/useIdle.js.map +1 -1
  228. package/dist/esm/hooks/useImage/useImage.js +2 -2
  229. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
  230. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js.map +1 -1
  231. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
  232. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  233. package/dist/esm/hooks/useInterval/useInterval.js +2 -2
  234. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
  235. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
  236. package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
  237. package/dist/esm/hooks/useKeyPress/useKeyPress.js.map +1 -1
  238. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
  239. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
  240. package/dist/esm/hooks/useKeyboard/useKeyboard.js +2 -2
  241. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  242. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
  243. package/dist/esm/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
  244. package/dist/esm/hooks/useLastChanged/useLastChanged.js +2 -2
  245. package/dist/esm/hooks/useLatest/useLatest.js +1 -1
  246. package/dist/esm/hooks/useList/useList.js +2 -2
  247. package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
  248. package/dist/esm/hooks/useLogger/useLogger.js +2 -2
  249. package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
  250. package/dist/esm/hooks/useMap/useMap.js +2 -2
  251. package/dist/esm/hooks/useMeasure/useMeasure.js +2 -2
  252. package/dist/esm/hooks/useMeasure/useMeasure.js.map +1 -1
  253. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
  254. package/dist/esm/hooks/useMemory/useMemory.js +2 -2
  255. package/dist/esm/hooks/useMount/useMount.js +1 -1
  256. package/dist/esm/hooks/useMouse/useMouse.js +2 -2
  257. package/dist/esm/hooks/useMouse/useMouse.js.map +1 -1
  258. package/dist/esm/hooks/useMutation/useMutation.js +2 -2
  259. package/dist/esm/hooks/useMutationObserver/useMutationObserver.js +2 -2
  260. package/dist/esm/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  261. package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
  262. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
  263. package/dist/esm/hooks/useOnline/useOnline.js +1 -1
  264. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
  265. package/dist/esm/hooks/useOptimistic/useOptimistic.js +2 -2
  266. package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
  267. package/dist/esm/hooks/useOrientation/useOrientation.js.map +1 -1
  268. package/dist/esm/hooks/useOtpCredential/useOtpCredential.js +2 -2
  269. package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
  270. package/dist/esm/hooks/usePaint/helpers/Paint.js +2 -2
  271. package/dist/esm/hooks/usePaint/helpers/Pointer.js +2 -2
  272. package/dist/esm/hooks/usePaint/usePaint.js +2 -2
  273. package/dist/esm/hooks/useParallax/useParallax.js +2 -2
  274. package/dist/esm/hooks/useParallax/useParallax.js.map +1 -1
  275. package/dist/esm/hooks/usePermission/usePermission.js +2 -2
  276. package/dist/esm/hooks/usePointerLock/usePointerLock.js +2 -2
  277. package/dist/esm/hooks/usePostMessage/usePostMessage.js +1 -1
  278. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
  279. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
  280. package/dist/esm/hooks/usePreferredDark/usePreferredDark.js +1 -1
  281. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
  282. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
  283. package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
  284. package/dist/esm/hooks/useQuery/useQuery.js +2 -2
  285. package/dist/esm/hooks/useQueue/useQueue.js +2 -2
  286. package/dist/esm/hooks/useRaf/useRaf.js +2 -2
  287. package/dist/esm/hooks/useRafValue/useRafValue.js +2 -2
  288. package/dist/esm/hooks/useRefState/useRefState.js +3 -0
  289. package/dist/esm/hooks/useRefState/useRefState.js.map +1 -0
  290. package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
  291. package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
  292. package/dist/esm/hooks/useRerender/useRerender.js +2 -2
  293. package/dist/esm/hooks/useRerender/useRerender.js.map +1 -1
  294. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +2 -2
  295. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  296. package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
  297. package/dist/esm/hooks/useScript/useScript.js +2 -2
  298. package/dist/esm/hooks/useScroll/useScroll.js +2 -2
  299. package/dist/esm/hooks/useScroll/useScroll.js.map +1 -1
  300. package/dist/esm/hooks/useScrollTo/useScrollTo.js +2 -2
  301. package/dist/esm/hooks/useScrollTo/useScrollTo.js.map +1 -1
  302. package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
  303. package/dist/esm/hooks/useSet/useSet.js +2 -2
  304. package/dist/esm/hooks/useShare/useShare.js +2 -2
  305. package/dist/esm/hooks/useStep/useStep.js +2 -2
  306. package/dist/esm/hooks/useStopwatch/useStopwatch.js +2 -2
  307. package/dist/esm/hooks/useStorage/useStorage.js +2 -2
  308. package/dist/esm/hooks/useTextDirection/useTextDirection.js +2 -2
  309. package/dist/esm/hooks/useTextDirection/useTextDirection.js.map +1 -1
  310. package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
  311. package/dist/esm/hooks/useTextSelection/useTextSelection.js.map +1 -1
  312. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.js +1 -1
  313. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.js.map +1 -1
  314. package/dist/esm/hooks/useThrottleValue/useThrottleValue.js +2 -2
  315. package/dist/esm/hooks/useThrottleValue/useThrottleValue.js.map +1 -1
  316. package/dist/esm/hooks/useTime/useTime.js +2 -2
  317. package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
  318. package/dist/esm/hooks/useTimer/useTimer.js +2 -2
  319. package/dist/esm/hooks/useToggle/useToggle.js +2 -2
  320. package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
  321. package/dist/esm/hooks/useVibrate/useVibrate.js +2 -2
  322. package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
  323. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +2 -2
  324. package/dist/esm/hooks/useWindowEvent/useWindowEvent.js.map +1 -1
  325. package/dist/esm/hooks/useWindowFocus/useWindowFocus.js +2 -2
  326. package/dist/esm/hooks/useWindowScroll/useWindowScroll.js +2 -2
  327. package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
  328. package/dist/esm/hooks/useWizard/useWizard.js +2 -2
  329. package/dist/esm/index.js +2 -2
  330. package/dist/esm/utils/helpers/debounce.js +1 -1
  331. package/dist/esm/utils/helpers/getElement.js +1 -1
  332. package/dist/esm/utils/helpers/getRetry.js +1 -1
  333. package/dist/esm/utils/helpers/index.js +1 -1
  334. package/dist/esm/utils/helpers/isClient.js +1 -1
  335. package/dist/esm/utils/helpers/isTarget.js +1 -1
  336. package/dist/esm/utils/helpers/throttle.js +2 -2
  337. package/dist/esm/utils/helpers/throttle.js.map +1 -1
  338. package/dist/esm/utils/helpers/time/getDate.js +1 -1
  339. package/dist/types/index.d.ts +145 -49
  340. package/package.json +114 -114
  341. package/dist/cjs/_rollupPluginBabelHelpers-C6yks7ns.js.map +0 -1
  342. package/dist/esm/_rollupPluginBabelHelpers-Dugjabfg.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.js","sources":["../../../../src/hooks/useFocus/useFocus.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\n/** The use focus target type */\nexport type UseFocusTarget = string | Element | RefObject<Element | null | undefined>;\n\n/** The use focus options type */\nexport interface UseFocusOptions {\n /** The initial focus state of the target */\n initialValue?: boolean;\n}\n\n/** The use focus return type */\nexport interface UseFocusReturn {\n /** The boolean state value of the target */\n focused: boolean;\n /** Is the target focused */\n blur: () => void;\n /** Is the target focused */\n focus: () => void;\n}\n\nexport interface UseFocus {\n <Target extends UseFocusTarget>(\n options?: UseFocusOptions\n ): UseFocusReturn & { ref: (node: Target) => void };\n\n <Target extends UseFocusTarget>(target: Target, options?: UseFocusOptions): UseFocusReturn;\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.initialValue=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(ref);\n *\n * @overload\n * @param {boolean} [options.initialValue=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 = isTarget(params[0]) ? params[0] : undefined;\n const options = ((target ? params[1] : params[0]) as UseFocusOptions) ?? {};\n const initialValue = options.initialValue ?? false;\n\n const [focused, setFocused] = useState(initialValue);\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 (initialValue) 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","_options$initialValue","target","isTarget","arguments","length","undefined","initialValue","_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":";kSAsDaA,EAAY,WAAsB,IAAAC,EAAAC,EACvCC,EAASC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAE3CC,EAAmC,QAAvBN,GAD8BD,QAAnCA,EAAKE,EAAME,UAAAC,QAAA,OAAAC,EAAAF,UAAA,GAAAA,UAAAC,QAAA,OAAAC,EAAAF,UAAA,UAAwBJ,IAAAA,EAAAA,EAAyB,CAAE,GAC9CO,oBAAY,IAAAN,GAAAA,EAEzCO,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,EAAWxB,EAASyB,EAAWzB,GAAUc,EAC/C,GAAKU,EAAL,CACAR,EAAWI,QAAUI,EAErB,IAAME,EAAU,SAACC,GAAiB,IAAAC,EAAAC,IAC3BX,GAA8C,QAAzCU,GAAIC,EAACF,EAAM3B,QAAuB8B,eAAO,IAAAF,GAArCA,EAAAG,KAAAF,EAAwC,oBAAmBlB,GAAW,EACrF,EACKqB,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,EACrC,CAfa,CAgBhB,GAAG,CAAClB,EAAad,IAEbA,EAAe,CAAEkB,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';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use focus target type */\nexport type UseFocusTarget = string | Element | RefObject<Element | null | undefined>;\n\n/** The use focus options type */\nexport interface UseFocusOptions {\n /** The initial focus state of the target */\n initialValue?: boolean;\n}\n\n/** The use focus return type */\nexport interface UseFocusReturn {\n /** The boolean state value of the target */\n focused: boolean;\n /** Is the target focused */\n blur: () => void;\n /** Is the target focused */\n focus: () => void;\n}\n\nexport interface UseFocus {\n <Target extends UseFocusTarget>(\n options?: UseFocusOptions\n ): UseFocusReturn & { ref: StateRef<Target> };\n\n <Target extends UseFocusTarget>(target: Target, options?: UseFocusOptions): UseFocusReturn;\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.initialValue=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(ref);\n *\n * @overload\n * @param {boolean} [options.initialValue=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 = isTarget(params[0]) ? params[0] : undefined;\n const options = ((target ? params[1] : params[0]) as UseFocusOptions) ?? {};\n const initialValue = options.initialValue ?? false;\n\n const [focused, setFocused] = useState(initialValue);\n const internalRef = useRefState<Element>();\n\n const elementRef = useRef<HTMLElement>();\n\n const focus = () => elementRef.current?.focus();\n const blur = () => elementRef.current?.blur();\n\n useEffect(() => {\n if (!target && !internalRef.current) return;\n const element = (target ? getElement(target) : internalRef.current) 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 (initialValue) 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 }, [target, internalRef.current]);\n\n if (target) return { focus, blur, focused };\n return {\n ref: internalRef,\n focus,\n blur,\n focused\n };\n}) as UseFocus;\n"],"names":["useFocus","_ref","_options$initialValue","target","isTarget","arguments","length","undefined","initialValue","_useState","useState","_useState2","_slicedToArray","focused","setFocused","internalRef","useRefState","elementRef","useRef","focus","_elementRef$current","current","blur","_elementRef$current2","useEffect","element","getElement","onFocus","event","_matches","_ref2","matches","call","onBlur","addEventListener","removeEventListener","ref"],"mappings":";oYA0DaA,EAAY,WAAsB,IAAAC,EAAAC,EACvCC,EAASC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAE3CC,EAAmC,QAAvBN,GAD8BD,QAAnCA,EAAKE,EAAME,UAAAC,QAAA,OAAAC,EAAAF,UAAA,GAAAA,UAAAC,QAAA,OAAAC,EAAAF,UAAA,UAAwBJ,IAAAA,EAAAA,EAAyB,CAAE,GAC9CO,oBAAY,IAAAN,GAAAA,EAEzCO,EAA8BC,EAASF,GAAaG,EAAAC,EAAAH,EAAA,GAA7CI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GACpBI,EAAcC,IAEdC,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,EAuB7C,OArBAE,GAAU,WACR,GAAKrB,GAAWY,EAAYM,QAA5B,CACA,IAAMI,EAAWtB,EAASuB,EAAWvB,GAAUY,EAAYM,QAC3D,GAAKI,EAAL,CACAR,EAAWI,QAAUI,EAErB,IAAME,EAAU,SAACC,GAAiB,IAAAC,EAAAC,IAC3BX,GAA8C,QAAzCU,GAAIC,EAACF,EAAMzB,QAAuB4B,eAAO,IAAAF,GAArCA,EAAAG,KAAAF,EAAwC,oBAAmBhB,GAAW,EACrF,EACKmB,EAAS,WAAH,OAASnB,GAAW,EAAM,EAMtC,OALIN,GAAciB,EAAQN,QAE1BM,EAAQS,iBAAiB,QAASP,GAClCF,EAAQS,iBAAiB,OAAQD,GAE1B,WACLR,EAAQU,oBAAoB,QAASR,GACrCF,EAAQU,oBAAoB,OAAQF,EACrC,CAfa,CAFuB,CAkBtC,GAAE,CAAC9B,EAAQY,EAAYM,UAEpBlB,EAAe,CAAEgB,MAAAA,EAAOG,KAAAA,EAAMT,QAAAA,GAC3B,CACLuB,IAAKrB,EACLI,MAAAA,EACAG,KAAAA,EACAT,QAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{_ as r}from"../../_rollupPluginBabelHelpers-Dugjabfg.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(),a=function(){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)};return r=requestAnimationFrame(a),function(){cancelAnimationFrame(r)}}),[]),t};export{a as useFps};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{_ as r}from"../../_rollupPluginBabelHelpers-C75B2U9C.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(),a=function(){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)};return 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.83 */
2
- import{_ as e,c as n}from"../../_rollupPluginBabelHelpers-Dugjabfg.js";import{useState as l}from"react";import{getElement as r}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{useUnmount as t}from"../useUnmount/useUnmount.js";const o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],c=(()=>{if("undefined"==typeof document)return!1;const e=o[0],n={};for(const l of o){const r=l?.[1];if(r in document){for(const[r,t]of l.entries())n[e[r]]=t;return n}}return!1})(),s={change:c.fullscreenchange,error:c.fullscreenerror};let u={request:(e=document.documentElement,n)=>new Promise(((l,r)=>{const t=()=>{u.off("change",t),l()};u.on("change",t);const o=e[c.requestFullscreen](n);o instanceof Promise&&o.then(t).catch(r)})),exit:()=>new Promise(((e,n)=>{if(!u.isFullscreen)return void e();const l=()=>{u.off("change",l),e()};u.on("change",l);const r=document[c.exitFullscreen]();r instanceof Promise&&r.then(l).catch(n)})),toggle:(e,n)=>u.isFullscreen?u.exit():u.request(e,n),onchange(e){u.on("change",e)},onerror(e){u.on("error",e)},on(e,n){const l=s[e];l&&document.addEventListener(l,n,!1)},off(e,n){const l=s[e];l&&document.removeEventListener(l,n,!1)},raw:c};Object.defineProperties(u,{isFullscreen:{get:()=>Boolean(document[c.fullscreenElement])},element:{enumerable:!0,get:()=>document[c.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[c.fullscreenEnabled])}}),c||(u={isEnabled:!1});var i=u,a=function(){var o,c=void 0===(arguments.length<=1?void 0:arguments[1])||arguments.length<=0?void 0:arguments[0],s=c?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],u=l(),a=e(u,2),f=a[0],m=a[1],d=l(null!==(o=null==s?void 0:s.initialValue)&&void 0!==o&&o),g=e(d,2),b=g[0],h=g[1],E=function(){if(i.isEnabled){var e,n;if(i.isFullscreen)null==s||null===(e=s.onEnter)||void 0===e||e.call(s);else i.off("change",E),null==s||null===(n=s.onExit)||void 0===n||n.call(s);h(i.isFullscreen)}},F=function(){var e=c?r(c):f;if(e&&i.isEnabled)try{i.request(e),i.on("change",E)}catch(e){console.error(e)}},v=function(){i.isEnabled&&i.exit()};return t((function(){i.isEnabled&&i.off("change",E)})),n(n({},!c&&{ref:m}),{},{enter:F,exit:v,toggle:function(){if(b)return v();F()},value:b})};export{a as useFullscreen};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as n,useEffect as l}from"react";import{getElement as r}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{isTarget as t}from"../../utils/helpers/isTarget.js";import{useRefState as o}from"../useRefState/useRefState.js";import"../useRerender/useRerender.js";const c=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=(()=>{if("undefined"==typeof document)return!1;const e=c[0],n={};for(const l of c){const r=l?.[1];if(r in document){for(const[r,t]of l.entries())n[e[r]]=t;return n}}return!1})(),u={change:s.fullscreenchange,error:s.fullscreenerror};let i={request:(e=document.documentElement,n)=>new Promise(((l,r)=>{const t=()=>{i.off("change",t),l()};i.on("change",t);const o=e[s.requestFullscreen](n);o instanceof Promise&&o.then(t).catch(r)})),exit:()=>new Promise(((e,n)=>{if(!i.isFullscreen)return void e();const l=()=>{i.off("change",l),e()};i.on("change",l);const r=document[s.exitFullscreen]();r instanceof Promise&&r.then(l).catch(n)})),toggle:(e,n)=>i.isFullscreen?i.exit():i.request(e,n),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,n){const l=u[e];l&&document.addEventListener(l,n,!1)},off(e,n){const l=u[e];l&&document.removeEventListener(l,n,!1)},raw:s};Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[s.fullscreenElement])},element:{enumerable:!0,get:()=>document[s.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[s.fullscreenEnabled])}}),s||(i={isEnabled:!1});var a=i,f=function(){var c,s=t(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,u=s?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],i=n(null!==(c=null==u?void 0:u.initialValue)&&void 0!==c&&c),f=e(i,2),m=f[0],d=f[1],g=o(),h=function(){if(a.isEnabled){var e,n;if(a.isFullscreen)null==u||null===(e=u.onEnter)||void 0===e||e.call(u);else a.off("change",h),null==u||null===(n=u.onExit)||void 0===n||n.call(u);d(a.isFullscreen)}},b=function(){var e=s?r(s):g.current;if(e&&a.isEnabled)try{a.request(e),a.on("change",h)}catch(e){console.error(e)}},E=function(){a.isEnabled&&a.exit()},F=function(){if(m)return E();b()};return l((function(){return function(){a.isEnabled&&a.off("change",h)}}),[]),s?{enter:b,exit:E,toggle:F,value:m}:{ref:g,enter:b,exit:E,toggle:F,value:m}};export{f as useFullscreen};
3
3
  //# sourceMappingURL=useFullscreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFullscreen.js","sources":["../../../../node_modules/screenfull/index.js","../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","import type { RefObject } from 'react';\n\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 = (() => Element) | Element | RefObject<Element | null | undefined>;\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 value: boolean;\n enter: () => void;\n exit: () => void;\n toggle: () => void;\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":["methodMap","nativeAPI","document","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","index","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","element","documentElement","options","Promise","resolve","reject","onFullScreenEntered","off","on","returnPromise","requestFullscreen","then","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","get","Boolean","fullscreenElement","enumerable","undefined","isEnabled","fullscreenEnabled","screenfull$1","useFullscreen","_options$initialValue","target","arguments","length","_useState","useState","_useState2","_slicedToArray","internalRef","setInternalRef","_useState3","initialValue","_useState4","value","setValue","onChange","_options$onEnter","_options$onExit","onEnter","call","onExit","enter","getElement","console","useUnmount","_objectSpread","ref"],"mappings":";wQAEA,MAAMA,EAAY,CACjB,CACC,oBACA,iBACA,oBACA,oBACA,mBACA,mBAGD,CACC,0BACA,uBACA,0BACA,0BACA,yBACA,yBAID,CACC,0BACA,yBACA,iCACA,yBACA,yBACA,yBAGD,CACC,uBACA,sBACA,uBACA,uBACA,sBACA,sBAED,CACC,sBACA,mBACA,sBACA,sBACA,qBACA,sBAIIC,EAAY,MACjB,GAAwB,oBAAbC,SACV,OAAO,EAGR,MAAMC,EAAoBH,EAAU,GAC9BI,EAAc,CAAE,EAEtB,IAAK,MAAMC,KAAcL,EAAW,CACnC,MAAMM,EAAuBD,IAAa,GAC1C,GAAIC,KAAwBJ,SAAU,CACrC,IAAK,MAAOK,EAAOC,KAAWH,EAAWI,UACxCL,EAAYD,EAAkBI,IAAUC,EAGzC,OAAOJ,CACV,CACA,CAEC,OAAO,CACP,EApBiB,GAsBZM,EAAe,CACpBC,OAAQV,EAAUW,iBAClBC,MAAOZ,EAAUa,iBAIlB,IAAIC,EAAa,CAEhBC,QAAO,CAACC,EAAUf,SAASgB,gBAAiBC,IACpC,IAAIC,SAAQ,CAACC,EAASC,KAC5B,MAAMC,EAAsB,KAC3BR,EAAWS,IAAI,SAAUD,GACzBF,GAAS,EAGVN,EAAWU,GAAG,SAAUF,GAExB,MAAMG,EAAgBT,EAAQhB,EAAU0B,mBAAmBR,GAEvDO,aAAyBN,SAC5BM,EAAcE,KAAKL,GAAqBM,MAAMP,EAClD,IAGCQ,KAAI,IACI,IAAIV,SAAQ,CAACC,EAASC,KAC5B,IAAKP,EAAWgB,aAEf,YADAV,IAID,MAAMW,EAAmB,KACxBjB,EAAWS,IAAI,SAAUQ,GACzBX,GAAS,EAGVN,EAAWU,GAAG,SAAUO,GAExB,MAAMN,EAAgBxB,SAASD,EAAUgC,kBAErCP,aAAyBN,SAC5BM,EAAcE,KAAKI,GAAkBH,MAAMP,EAC/C,IAGCY,OAAM,CAACjB,EAASE,IACRJ,EAAWgB,aAAehB,EAAWe,OAASf,EAAWC,QAAQC,EAASE,GAElF,QAAAgB,CAASC,GACRrB,EAAWU,GAAG,SAAUW,EACxB,EACD,OAAAC,CAAQD,GACPrB,EAAWU,GAAG,QAASW,EACvB,EACD,EAAAX,CAAGa,EAAOF,GACT,MAAMG,EAAY7B,EAAa4B,GAC3BC,GACHrC,SAASsC,iBAAiBD,EAAWH,GAAU,EAEhD,EACD,GAAAZ,CAAIc,EAAOF,GACV,MAAMG,EAAY7B,EAAa4B,GAC3BC,GACHrC,SAASuC,oBAAoBF,EAAWH,GAAU,EAEnD,EACDM,IAAKzC,GAGN0C,OAAOC,iBAAiB7B,EAAY,CACnCgB,aAAc,CACbc,IAAK,IAAMC,QAAQ5C,SAASD,EAAU8C,qBAEvC9B,QAAS,CACR+B,YAAY,EACZH,IAAK,IAAM3C,SAASD,EAAU8C,yBAAsBE,GAErDC,UAAW,CACVF,YAAY,EAEZH,IAAK,IAAMC,QAAQ5C,SAASD,EAAUkD,uBAInClD,IACJc,EAAa,CAACmC,WAAW,IAG1B,IAAAE,EAAerC,EC3FFsC,EAAiB,WAAsB,IAAAC,EAC5CC,OAA+B,KAArBC,UAAAC,QAAA,OAAAR,EAAAO,UAAA,KAA4CA,UAAAC,QAAAR,OAATA,EAASO,UAE/C,GACPrC,EAAWoC,EAAMC,UAAAC,QAAAR,OAAAA,EAAAO,UAAA,GAAAA,UAAAC,eAAAR,EAAAO,UAA6D,GAEpFE,EAAsCC,IAAmBC,EAAAC,EAAAH,EAAA,GAAlDI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClCI,EAA0BL,EAA8BL,QAAtBA,EAACnC,eAAAA,EAAS8C,wBAAYX,GAAAA,GAAUY,EAAAL,EAAAG,EAAA,GAA3DG,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAEhBG,EAAW,WACf,GAAKtD,EAAWmC,UAAhB,CAE6B,IAAAoB,EAEtBC,EAFP,GAAIxD,EAAWgB,aACbZ,SAAgBmD,QAATA,EAAPnD,EAASqD,mBAAOF,GAAhBA,EAAAG,KAAAtD,QAEAJ,EAAWS,IAAI,SAAU6C,GACzBlD,SAAeoD,QAARA,EAAPpD,EAASuD,kBAAMH,GAAfA,EAAAE,KAAAtD,GAGFiD,EAASrD,EAAWgB,aATO,CAU5B,EAEK4C,EAAQ,WACZ,IAAM1D,EAAWsC,EAASqB,EAAWrB,GAAUO,EAC/C,GAAK7C,GAEDF,EAAWmC,UACb,IACEnC,EAAWC,QAAQC,GACnBF,EAAWU,GAAG,SAAU4C,EACzB,CAAC,MAAOxD,GACPgE,QAAQhE,MAAMA,EAChB,CAEH,EAEKiB,EAAO,WACPf,EAAWmC,WAAWnC,EAAWe,MACtC,EAWD,OAJAgD,GAAW,WACL/D,EAAWmC,WAAWnC,EAAWS,IAAI,SAAU6C,EACrD,IAEAU,EAAAA,EACM,CAAA,GAACxB,GAAU,CAAEyB,IAAKjB,IAAgB,CAAA,EAAA,CACtCY,MAAAA,EACA7C,KAAAA,EACAI,OAba,WACb,GAAIiC,EAAO,OAAOrC,IAClB6C,GACD,EAWCR,MAAAA,GAEJ","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"useFullscreen.js","sources":["../../../../node_modules/screenfull/index.js","../../../../src/hooks/useFullscreen/useFullscreen.ts"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","import type { RefObject } from 'react';\n\nimport { useEffect, useState } from 'react';\nimport screenfull from 'screenfull';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use fullscreen target element type */\nexport type UseFullScreenTarget = string | Element | RefObject<Element | null | undefined>;\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 /** The fullscreen state */\n value: boolean;\n /** The fullscreen enter method */\n enter: () => void;\n /** The fullscreen exit method */\n exit: () => void;\n /** The fullscreen toggle method */\n toggle: () => void;\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: StateRef<Target> };\n}\n\n/**\n * @name useFullscreen\n * @description - Hook to handle fullscreen events\n * @category Browser\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {Target} target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn} An object with the fullscreen state and methods\n *\n * @example\n * const { enter, exit, toggle, value } = useFullscreen(ref);\n *\n * @overload\n * @template Target The target element for fullscreen\n * @param {boolean} [options.initialValue=false] initial value of fullscreen\n * @param {() => void} [options.onEnter] on enter fullscreen\n * @param {() => void} [options.onExit] on exit fullscreen\n * @returns {UseFullScreenReturn & { ref: RefObject<Target> }} An object with the fullscreen state and methods\n *\n * @example\n * const { ref, enter, exit, toggle, value } = useFullscreen();\n */\nexport const useFullscreen = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as UseFullScreenTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseFullScreenOptions | undefined;\n\n const [value, setValue] = useState(options?.initialValue ?? false);\n const internalRef = useRefState<Element>();\n\n const onChange = () => {\n if (!screenfull.isEnabled) return;\n\n if (screenfull.isFullscreen) {\n options?.onEnter?.();\n } else {\n screenfull.off('change', onChange);\n options?.onExit?.();\n }\n\n setValue(screenfull.isFullscreen);\n };\n\n const enter = () => {\n const element = (target ? getElement(target) : internalRef.current) 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 useEffect(\n () => () => {\n if (screenfull.isEnabled) screenfull.off('change', onChange);\n },\n []\n );\n\n if (target)\n return {\n enter,\n exit,\n toggle,\n value\n };\n return {\n ref: internalRef,\n enter,\n exit,\n toggle,\n value\n };\n}) as UseFullScreen;\n"],"names":["methodMap","nativeAPI","document","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","index","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","element","documentElement","options","Promise","resolve","reject","onFullScreenEntered","off","on","returnPromise","requestFullscreen","then","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","get","Boolean","fullscreenElement","enumerable","undefined","isEnabled","fullscreenEnabled","screenfull$1","useFullscreen","_options$initialValue","target","isTarget","arguments","length","_useState","useState","initialValue","_useState2","_slicedToArray","value","setValue","internalRef","useRefState","onChange","_options$onEnter","_options$onExit","onEnter","call","onExit","enter","getElement","current","console","useEffect","ref"],"mappings":";oXAEA,MAAMA,EAAY,CACjB,CACC,oBACA,iBACA,oBACA,oBACA,mBACA,mBAGD,CACC,0BACA,uBACA,0BACA,0BACA,yBACA,yBAID,CACC,0BACA,yBACA,iCACA,yBACA,yBACA,yBAGD,CACC,uBACA,sBACA,uBACA,uBACA,sBACA,sBAED,CACC,sBACA,mBACA,sBACA,sBACA,qBACA,sBAIIC,EAAY,MACjB,GAAwB,oBAAbC,SACV,OAAO,EAGR,MAAMC,EAAoBH,EAAU,GAC9BI,EAAc,CAAE,EAEtB,IAAK,MAAMC,KAAcL,EAAW,CACnC,MAAMM,EAAuBD,IAAa,GAC1C,GAAIC,KAAwBJ,SAAU,CACrC,IAAK,MAAOK,EAAOC,KAAWH,EAAWI,UACxCL,EAAYD,EAAkBI,IAAUC,EAGzC,OAAOJ,CACV,CACA,CAEC,OAAO,CACP,EApBiB,GAsBZM,EAAe,CACpBC,OAAQV,EAAUW,iBAClBC,MAAOZ,EAAUa,iBAIlB,IAAIC,EAAa,CAEhBC,QAAO,CAACC,EAAUf,SAASgB,gBAAiBC,IACpC,IAAIC,SAAQ,CAACC,EAASC,KAC5B,MAAMC,EAAsB,KAC3BR,EAAWS,IAAI,SAAUD,GACzBF,GAAS,EAGVN,EAAWU,GAAG,SAAUF,GAExB,MAAMG,EAAgBT,EAAQhB,EAAU0B,mBAAmBR,GAEvDO,aAAyBN,SAC5BM,EAAcE,KAAKL,GAAqBM,MAAMP,EAClD,IAGCQ,KAAI,IACI,IAAIV,SAAQ,CAACC,EAASC,KAC5B,IAAKP,EAAWgB,aAEf,YADAV,IAID,MAAMW,EAAmB,KACxBjB,EAAWS,IAAI,SAAUQ,GACzBX,GAAS,EAGVN,EAAWU,GAAG,SAAUO,GAExB,MAAMN,EAAgBxB,SAASD,EAAUgC,kBAErCP,aAAyBN,SAC5BM,EAAcE,KAAKI,GAAkBH,MAAMP,EAC/C,IAGCY,OAAM,CAACjB,EAASE,IACRJ,EAAWgB,aAAehB,EAAWe,OAASf,EAAWC,QAAQC,EAASE,GAElF,QAAAgB,CAASC,GACRrB,EAAWU,GAAG,SAAUW,EACxB,EACD,OAAAC,CAAQD,GACPrB,EAAWU,GAAG,QAASW,EACvB,EACD,EAAAX,CAAGa,EAAOF,GACT,MAAMG,EAAY7B,EAAa4B,GAC3BC,GACHrC,SAASsC,iBAAiBD,EAAWH,GAAU,EAEhD,EACD,GAAAZ,CAAIc,EAAOF,GACV,MAAMG,EAAY7B,EAAa4B,GAC3BC,GACHrC,SAASuC,oBAAoBF,EAAWH,GAAU,EAEnD,EACDM,IAAKzC,GAGN0C,OAAOC,iBAAiB7B,EAAY,CACnCgB,aAAc,CACbc,IAAK,IAAMC,QAAQ5C,SAASD,EAAU8C,qBAEvC9B,QAAS,CACR+B,YAAY,EACZH,IAAK,IAAM3C,SAASD,EAAU8C,yBAAsBE,GAErDC,UAAW,CACVF,YAAY,EAEZH,IAAK,IAAMC,QAAQ5C,SAASD,EAAUkD,uBAInClD,IACJc,EAAa,CAACmC,WAAW,IAG1B,IAAAE,EAAerC,ECrFFsC,EAAiB,WAAsB,IAAAC,EAC5CC,EAAUC,EAAQC,UAAAC,QAAAT,OAAAA,EAAAQ,cAAWA,UAAAC,eAAAT,EAAAQ,UAAA,QAAeR,EAC5C9B,EAAWoC,EAAME,UAAAC,QAAAT,OAAAA,EAAAQ,UAAA,GAAAA,UAAAC,eAAAT,EAAAQ,UAA6D,GAEpFE,EAA0BC,EAA8BN,QAAtBA,EAACnC,eAAAA,EAAS0C,wBAAYP,GAAAA,GAAUQ,EAAAC,EAAAJ,EAAA,GAA3DK,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAcC,IAEdC,EAAW,WACf,GAAKrD,EAAWmC,UAAhB,CAE6B,IAAAmB,EAEtBC,EAFP,GAAIvD,EAAWgB,aACbZ,SAAgBkD,QAATA,EAAPlD,EAASoD,mBAAOF,GAAhBA,EAAAG,KAAArD,QAEAJ,EAAWS,IAAI,SAAU4C,GACzBjD,SAAemD,QAARA,EAAPnD,EAASsD,kBAAMH,GAAfA,EAAAE,KAAArD,GAGF8C,EAASlD,EAAWgB,aATO,CAU5B,EAEK2C,EAAQ,WACZ,IAAMzD,EAAWsC,EAASoB,EAAWpB,GAAUW,EAAYU,QAC3D,GAAK3D,GAEDF,EAAWmC,UACb,IACEnC,EAAWC,QAAQC,GACnBF,EAAWU,GAAG,SAAU2C,EACzB,CAAC,MAAOvD,GACPgE,QAAQhE,MAAMA,EAChB,CAEH,EAEKiB,EAAO,WACPf,EAAWmC,WAAWnC,EAAWe,MACtC,EAEKI,EAAS,WACb,GAAI8B,EAAO,OAAOlC,IAClB4C,GACD,EASD,OAPAI,GACE,WAAA,OAAM,WACA/D,EAAWmC,WAAWnC,EAAWS,IAAI,SAAU4C,EACpD,CAAA,GACD,IAGEb,EACK,CACLmB,MAAAA,EACA5C,KAAAA,EACAI,OAAAA,EACA8B,MAAAA,GAEG,CACLe,IAAKb,EACLQ,MAAAA,EACA5C,KAAAA,EACAI,OAAAA,EACA8B,MAAAA,EAEJ","x_google_ignoreList":[0]}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
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.83 */
2
- import{_ as e,c as t,f as a,a as n}from"../../_rollupPluginBabelHelpers-Dugjabfg.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="undefined"!=typeof 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.86 */
2
+ import{_ as e,c as t,f as a,a as n}from"../../_rollupPluginBabelHelpers-C75B2U9C.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="undefined"!=typeof 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.83 */
2
- import{_ as t,c as a}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as t,c as a}from"../../_rollupPluginBabelHelpers-C75B2U9C.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.83 */
2
- import{_ as n}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as n}from"../../_rollupPluginBabelHelpers-C75B2U9C.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.83 */
2
- import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as e,a as o}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as t}from"react";import{useDidUpdate as n}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../../utils/helpers/getElement.js";import"../useEvent/useEvent.js";import"../useRefState/useRefState.js";import"../useRerender/useRerender.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,s){var a,d,c,f,p=null===(a=null==s?void 0:s.enabled)||void 0===a||a,v=null===(d=null==s?void 0:s.preventDefault)||void 0===d||d,m=t([]),y=e(m,2)[1];n((function(){y([])}),[p]),r(null!==(c=null==s?void 0:s.target)&&void 0!==c?c:window,"keydown",(function(e){v&&e.preventDefault(),p&&y((function(t){var n,r,a,d;if(t.some((function(o){return o.code===e.code})))return t;var c=null!==(n=null!==(r=null==s||null===(a=s.aliasMap)||void 0===a?void 0:a[e.key])&&void 0!==r?r:null==s||null===(d=s.aliasMap)||void 0===d?void 0:d[e.key])&&void 0!==n?n:e.code,f=[].concat(o(t),[{key:e.key,code:e.code,alias:c}]);Array.isArray(u)?u.forEach((function(o){i(o,f)&&l(e)})):i(u,f)&&l(e);return f}))})),r(null!==(f=null==s?void 0:s.target)&&void 0!==f?f:window,"keyup",(function(e){p&&y((function(o){return o.filter((function(o){return o.code!==e.code}))}))}))};export{i as isHotkeyMatch,u as useHotkeys};
3
3
  //# sourceMappingURL=useHotkeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkeys.js","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use hotkeys params type */\nexport interface UseHotkeysOptions {\n /** Alias map for hotkeys */\n aliasMap?: Record<string, string>;\n /** Enable or disable the event listeners */\n enabled?: boolean;\n /** Whether to prevent the default behavior of the event */\n preventDefault?: boolean;\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\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 alias: string;\n code: string;\n key: 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":";saAmBO,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,IAAK,IAAE,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,GACD,IAYDZ,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,UACpE,GAQH"}
1
+ {"version":3,"file":"useHotkeys.js","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use hotkeys params type */\nexport interface UseHotkeysOptions {\n /** Alias map for hotkeys */\n aliasMap?: Record<string, string>;\n /** Enable or disable the event listeners */\n enabled?: boolean;\n /** Whether to prevent the default behavior of the event */\n preventDefault?: boolean;\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\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 alias: string;\n code: string;\n key: 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":";kfAmBO,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,IAAK,IAAE,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,GACD,IAYDZ,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,UACpE,GAQH"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{b as e,_ as n}from"../../_rollupPluginBabelHelpers-Dugjabfg.js";import{useState as t,useRef as r,useEffect as o}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{isTarget as l}from"../../utils/helpers/isTarget.js";var v=function(){var v=l(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,s=v?"object"===e(arguments.length<=1?void 0:arguments[1])?arguments.length<=1?void 0:arguments[1]:{onEntry:arguments.length<=1?void 0:arguments[1]}:"object"===e(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:{onEntry:arguments.length<=0?void 0:arguments[0]},u=t(!1),a=n(u,2),d=a[0],m=a[1],c=t(),f=n(c,2),g=f[0],h=f[1],p=r(s);return p.current=s,o((function(){if(v||g){var e=v?i(v):g;if(e){var n=function(e){var n,t;null===(n=p.current)||void 0===n||null===(t=n.onEntry)||void 0===t||t.call(n,e),m(!0)},t=function(e){var n,t;null===(n=p.current)||void 0===n||null===(t=n.onLeave)||void 0===t||t.call(n,e),m(!1)};return e.addEventListener("mouseenter",n),e.addEventListener("mouseleave",t),function(){e.removeEventListener("mouseenter",n),e.removeEventListener("mouseleave",t)}}}}),[v,g]),v?d:[h,d]};export{v as useHover};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{b as e,_ as r}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as t,useRef as n,useEffect as o}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{isTarget as l}from"../../utils/helpers/isTarget.js";import{useRefState as u}from"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var s=function(){var s=l(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,v=s?"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]},a=t(!1),d=r(a,2),m=d[0],c=d[1],f=u(),p=n(v);return p.current=v,o((function(){if(s||f.current){var e=s?i(s):f.current;if(e){var r=function(e){var r,t;null===(r=p.current)||void 0===r||null===(t=r.onEntry)||void 0===t||t.call(r,e),c(!0)},t=function(e){var r,t;null===(r=p.current)||void 0===r||null===(t=r.onLeave)||void 0===t||t.call(r,e),c(!1)};return e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",t),function(){e.removeEventListener("mouseenter",r),e.removeEventListener("mouseleave",t)}}}}),[s,f.current]),s?m:[f,m]};export{s as useHover};
3
3
  //# sourceMappingURL=useHover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\n//* The use hover target type */\nexport type UseHoverTarget = string | Element | RefObject<Element | null | undefined>;\n\n//* The use hover options type */\nexport interface UseHoverOptions {\n //* The on entry callback */\n onEntry?: (event: Event) => void;\n //* The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHover {\n <Target extends UseHoverTarget>(target: Target, callback?: (event: Event) => void): boolean;\n\n <Target extends UseHoverTarget>(target: Target, options?: UseHoverOptions): boolean;\n\n <Target extends UseHoverTarget>(\n callback?: (event: Event) => void,\n target?: never\n ): [(node: Target) => void, boolean];\n\n <Target extends UseHoverTarget>(\n options?: UseHoverOptions,\n target?: never\n ): [(node: Target) => void, boolean];\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as UseHoverTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const [internalRef, setInternalRef] = useState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef) return;\n const element = (target ? getElement(target) : internalRef) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef]);\n\n if (target) return hovering;\n return [setInternalRef, hovering] as const;\n}) as UseHover;\n"],"names":["useHover","target","isTarget","arguments","length","undefined","options","_typeof","onEntry","_useState","useState","_useState2","_slicedToArray","hovering","setHovering","_useState3","_useState4","internalRef","setInternalRef","internalOptionsRef","useRef","current","useEffect","element","getElement","onMouseEnter","event","_internalOptionsRef$c","_internalOptionsRef$c2","call","onMouseLeave","_internalOptionsRef$c3","_internalOptionsRef$c4","onLeave","addEventListener","removeEventListener"],"mappings":";ySA0EaA,EAAY,WACvB,IAAMC,EAAUC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAE5CC,EACJL,EACyB,WAArBM,EAAAJ,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAA6BA,UAAAC,QAAAC,OAAAA,EAAAF,UAE3B,GAAA,CAAEK,QAAOL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IACU,WAArBI,EAAAJ,UAAAC,QAAA,OAAAC,EAAAF,cAA6BA,UAAAC,eAAAC,EAAAF,UAE3B,GAAA,CAAEK,QAAOL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAGjBM,EAAgCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5BI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAqBC,EAAOd,GA4BlC,OA3BAa,EAAmBE,QAAUf,EAE7BgB,GAAU,WACR,GAAKrB,GAAWgB,EAAhB,CACA,IAAMM,EAAWtB,EAASuB,EAAWvB,GAAUgB,EAE/C,GAAKM,EAAL,CAEA,IAAME,EAAe,SAACC,GAAiB,IAAAC,EAAAC,EACXD,QAA1BA,EAAAR,EAAmBE,eAAOO,IAAAD,GAAS,QAATC,EAA1BD,EAA4BnB,eAAO,IAAAoB,GAAnCA,EAAAC,KAAAF,EAAsCD,GACtCZ,GAAY,EACb,EAEKgB,EAAe,SAACJ,GAAiB,IAAAK,EAAAC,EACXD,QAA1BA,EAAAZ,EAAmBE,eAAOW,IAAAD,GAAS,QAATC,EAA1BD,EAA4BE,eAAO,IAAAD,GAAnCA,EAAAH,KAAAE,EAAsCL,GACtCZ,GAAY,EACb,EAKD,OAHAS,EAAQW,iBAAiB,aAAcT,GACvCF,EAAQW,iBAAiB,aAAcJ,GAEhC,WACLP,EAAQY,oBAAoB,aAAcV,GAC1CF,EAAQY,oBAAoB,aAAcL,EAC3C,CAlBa,CAHe,CAsB/B,GAAG,CAAC7B,EAAQgB,IAERhB,EAAeY,EACZ,CAACK,EAAgBL,EAC1B"}
1
+ {"version":3,"file":"useHover.js","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover target type */\nexport type UseHoverTarget = string | Element | RefObject<Element | null | undefined>;\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHover {\n <Target extends UseHoverTarget>(target: Target, callback?: (event: Event) => void): boolean;\n\n <Target extends UseHoverTarget>(target: Target, options?: UseHoverOptions): boolean;\n\n <Target extends UseHoverTarget>(\n callback?: (event: Event) => void,\n target?: never\n ): [StateRef<Target>, boolean];\n\n <Target extends UseHoverTarget>(\n options?: UseHoverOptions,\n target?: never\n ): [StateRef<Target>, boolean];\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {UseHoverReturn<Target>} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as UseHoverTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.current) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef.current]);\n\n if (target) return hovering;\n return [internalRef, hovering] as const;\n}) as UseHover;\n"],"names":["useHover","target","isTarget","arguments","length","undefined","options","_typeof","onEntry","_useState","useState","_useState2","_slicedToArray","hovering","setHovering","internalRef","useRefState","internalOptionsRef","useRef","current","useEffect","element","getElement","onMouseEnter","event","_internalOptionsRef$c","_internalOptionsRef$c2","call","onMouseLeave","_internalOptionsRef$c3","_internalOptionsRef$c4","onLeave","addEventListener","removeEventListener"],"mappings":";2YA8EaA,EAAY,WACvB,IAAMC,EAAUC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAE5CC,EACJL,EACyB,WAArBM,EAAAJ,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAA6BA,UAAAC,QAAAC,OAAAA,EAAAF,UAE3B,GAAA,CAAEK,QAAOL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IACU,WAArBI,EAAAJ,UAAAC,QAAA,OAAAC,EAAAF,cAA6BA,UAAAC,eAAAC,EAAAF,UAE3B,GAAA,CAAEK,QAAOL,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,IAGjBM,EAAgCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAAcC,IACdC,EAAqBC,EAAOZ,GA4BlC,OA3BAW,EAAmBE,QAAUb,EAE7Bc,GAAU,WACR,GAAKnB,GAAWc,EAAYI,QAA5B,CACA,IAAME,EAAWpB,EAASqB,EAAWrB,GAAUc,EAAYI,QAE3D,GAAKE,EAAL,CAEA,IAAME,EAAe,SAACC,GAAiB,IAAAC,EAAAC,EACXD,QAA1BA,EAAAR,EAAmBE,eAAOO,IAAAD,GAAS,QAATC,EAA1BD,EAA4BjB,eAAO,IAAAkB,GAAnCA,EAAAC,KAAAF,EAAsCD,GACtCV,GAAY,EACb,EAEKc,EAAe,SAACJ,GAAiB,IAAAK,EAAAC,EACXD,QAA1BA,EAAAZ,EAAmBE,eAAOW,IAAAD,GAAS,QAATC,EAA1BD,EAA4BE,eAAO,IAAAD,GAAnCA,EAAAH,KAAAE,EAAsCL,GACtCV,GAAY,EACb,EAKD,OAHAO,EAAQW,iBAAiB,aAAcT,GACvCF,EAAQW,iBAAiB,aAAcJ,GAEhC,WACLP,EAAQY,oBAAoB,aAAcV,GAC1CF,EAAQY,oBAAoB,aAAcL,EAC3C,CAlBa,CAHuB,CAsBtC,GAAE,CAAC3B,EAAQc,EAAYI,UAEpBlB,EAAeY,EACZ,CAACE,EAAaF,EACvB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as t,useEffect as n}from"react";import"../../utils/helpers/isClient.js";import{throttle as i}from"../../utils/helpers/throttle.js";var o=["mousemove","mousedown","keydown","touchstart","wheel","resize"],r=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=u.initialValue,l=void 0!==s&&s,a=u.events,c=void 0===a?o:a,d=t(l),m=e(d,2),v=m[0],f=m[1],h=t(Date.now()),p=e(h,2),w=p[0],E=p[1];return n((function(){var e,t=function(){return f(!0)},n=i((function(){f(!1),E(Date.now()),clearTimeout(e),e=setTimeout(t,r)}),500),o=function(){document.hidden||n()};return e=setTimeout(t,r),c.forEach((function(e){return window.addEventListener(e,n)})),document.addEventListener("visibilitychange",o),function(){c.forEach((function(e){return window.addEventListener(e,n)})),document.removeEventListener("visibilitychange",o),clearTimeout(e)}}),[r,c]),{idle:v,lastActive:w}};export{r as useIdle};
3
3
  //# sourceMappingURL=useIdle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIdle.js","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\n//* The use idle options type */\nexport interface UseIdleOptions {\n //* The idle events */\n events?: Array<keyof DocumentEventMap>;\n //* The idle state */\n initialValue?: boolean;\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,GACvB,EAOD,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,EACd,CACH,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 events */\n events?: Array<keyof DocumentEventMap>;\n /** The idle state */\n initialValue?: boolean;\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,GACvB,EAOD,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,EACd,CACH,GAAG,CAACtB,EAAcQ,IAEX,CAAEK,KAAAA,EAAMM,WAAAA,EACjB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{c as r,a as e,d as s,e as t}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{c as r,a as e,d as s,e as t}from"../../_rollupPluginBabelHelpers-C75B2U9C.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.83 */
2
- import{_ as t,d as r,e}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as e,d as r,e as t}from"../../_rollupPluginBabelHelpers-C75B2U9C.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{isTarget as s}from"../../utils/helpers/isTarget.js";import{useEvent as u}from"../useEvent/useEvent.js";import{useRefState as a}from"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var c=function(){var c,f,v=s(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,d=v?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],p=v?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1],m=null!==(c=null==p?void 0:p.direction)&&void 0!==c?c:"bottom",h=null!==(f=null==p?void 0:p.distance)&&void 0!==f?f:10,g=n(!1),j=e(g,2),b=j[0],x=j[1],E=a(),R=i(d);R.current=d;var k=u(function(){var e=r(t().mark((function e(r){var n,i,o,l,s,u,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!b){e.next=2;break}return e.abrupt("return");case 2:if(n=r.target,i=n.clientHeight,o=n.scrollHeight,l=n.scrollTop,s=n.clientWidth,u=n.scrollWidth,a=n.scrollLeft,!({bottom:o-(l+i),top:l,right:u-(a+s),left:a}[m]<=h)){e.next=11;break}return x(!0),e.next=10,R.current(r);case 10:x(!1);case 11:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}());return o((function(){if(v||E.current){var e=v?l(v):E.current;if(e)return e.addEventListener("scroll",k),function(){e.removeEventListener("scroll",k)}}}),[v,E.current,m,h]),v?b:{ref:E,loading:b}};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';\n\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 = (() => Element) | Element | RefObject<Element | null>;\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\nexport interface UseInfiniteScroll {\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 <Target extends UseInfiniteScrollTarget>(\n target: Target,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): boolean;\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":";mSA8DaA,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,OAEvB,OAAA,SAAAmB,GAAA,OAAAvB,EAAAwB,MAAAC,KAAApD,UAAA,EAnB0B,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,EACvC,CAR4B,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';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useEvent } from '../useEvent/useEvent';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use infinite scroll target element type */\nexport type UseInfiniteScrollTarget = string | Element | RefObject<Element | null>;\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\nexport interface UseInfiniteScroll {\n <Target extends UseInfiniteScrollTarget>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n loading: boolean;\n };\n\n <Target extends UseInfiniteScrollTarget>(\n target: Target,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): boolean;\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: StateRef<Target>, loading: boolean }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = 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 loading = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as\n | UseInfiniteScrollTarget\n | undefined;\n const callback = (target ? params[1] : params[0]) as (event: Event) => void;\n const options = (target ? params[2] : params[1]) as UseInfiniteScrollOptions;\n\n const direction = options?.direction ?? 'bottom';\n const distance = options?.distance ?? 10;\n\n const [loading, setIsLoading] = useState(false);\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n const onLoadMore = useEvent(async (event: Event) => {\n if (loading) 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.current) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target, internalRef.current, direction, distance]);\n\n if (target) return loading;\n return {\n ref: internalRef,\n loading\n };\n}) as UseInfiniteScroll;\n"],"names":["useInfiniteScroll","_options$direction","_options$distance","target","isTarget","arguments","length","undefined","callback","options","direction","distance","_useState","useState","_useState2","_slicedToArray","loading","setIsLoading","internalRef","useRefState","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":";qcAiEaA,EAAqB,WAAe,IAAAC,EAAAC,EACzCC,EAAUC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAG5CC,EAAYL,EAAME,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAmD,GACrEI,EAAWN,EAAME,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAqD,GAEtEK,EAA8BT,QAArBA,EAAGQ,aAAO,EAAPA,EAASC,iBAAST,IAAAA,EAAAA,EAAI,SAClCU,EAA4BT,QAApBA,EAAGO,aAAO,EAAPA,EAASE,gBAAQT,IAAAA,EAAAA,EAAI,GAEtCU,EAAgCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAOF,EAAA,GAAEG,EAAYH,EAAA,GAEtBI,EAAcC,IACdC,EAAsBC,EAAOb,GACnCY,EAAoBE,QAAUd,EAE9B,IAAMe,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,IACzCzB,EAAO,CAAAuB,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,UAAA,KAAA,EAWV,GAXUX,EAETD,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,GAGM3B,IAAcC,GAAQ,CAAA4B,EAAAE,KAAA,GAAA,KAAA,CACf,OAAnBxB,GAAa,GAAMsB,EAAAE,KAAA,GACbrB,EAAoBE,QAAQQ,GAAM,KAAA,GACxCb,GAAa,GAAO,KAAA,GAAA,IAAA,MAAA,OAAAsB,EAAAQ,OAAA,GAAAlB,OAEvB,OAAA,SAAAmB,GAAA,OAAAvB,EAAAwB,MAAAC,KAAA7C,UAAA,EAnB0B,IAiC3B,OAZA8C,GAAU,WACR,GAAKhD,GAAWe,EAAYI,QAA5B,CACA,IAAM8B,EAAWjD,EAASkD,EAAWlD,GAAUe,EAAYI,QAC3D,GAAK8B,EAIL,OAFAA,EAAQE,iBAAiB,SAAU/B,GAE5B,WACL6B,EAAQG,oBAAoB,SAAUhC,EACvC,CARoC,CASvC,GAAG,CAACpB,EAAQe,EAAYI,QAASZ,EAAWC,IAExCR,EAAea,EACZ,CACLwC,IAAKtC,EACLF,QAAAA,EAEJ"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{b as n,_ as e,c as o}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as e,c as r}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as n,useRef as t,useEffect as o}from"react";import{getElement as i}from"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import{isTarget as l}from"../../utils/helpers/isTarget.js";import{useRefState as u}from"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var s=function(){var s,v=l(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,d=v?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],c=null===(s=null==d?void 0:d.enabled)||void 0===s||s,a=n(),f=e(a,2),m=f[0],p=f[1],g=u(),h=t();return h.current=null==d?void 0:d.onChange,o((function(){if(c||v||g.current){var n=v?i(v):g.current;if(n){var t=new IntersectionObserver((function(r){var n,t=e(r,1)[0];p(t),null===(n=h.current)||void 0===n||n.call(h,t)}),r(r({},d),{},{root:null!=d&&d.root?i(null==d?void 0:d.root):document}));return t.observe(n),function(){t.disconnect()}}}}),[v,g.current,null==d?void 0:d.rootMargin,null==d?void 0:d.threshold,null==d?void 0:d.root,c]),v?{entry:m,inView:!(null==m||!m.isIntersecting)}:{ref:g,entry:m,inView:!(null==m||!m.isIntersecting)}};export{s as useIntersectionObserver};
3
3
  //# sourceMappingURL=useIntersectionObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersectionObserver.js","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement } from '@/utils/helpers';\n\n/** The intersection observer target element type */\nexport type UseIntersectionObserverTarget =\n | (() => Element)\n | Element\n | RefObject<Element | null | undefined>;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n enabled?: boolean;\n root?: IntersectionObserverInit['root'] | RefObject<Element | null | undefined>;\n onChange?: (entry: IntersectionObserverEntry) => void;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n entry?: IntersectionObserverEntry;\n inView: boolean;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends UseIntersectionObserverTarget>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: (node: Target) => void };\n\n <Target extends UseIntersectionObserverTarget>(\n target: Target,\n options?: UseIntersectionObserverOptions\n ): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {IntersectionObserverInit['root'] | RefObject<Element | null | undefined>} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state and the supported status\n *\n * @example\n * const { ref, entry, inView } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {IntersectionObserverInit['root'] | RefObject<Element | null | undefined>} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: (node: Target) => void }} A React ref to attach to the target element\n *\n * @example\n * const { entry, inView } = useIntersectionObserver(ref);\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UseIntersectionObserverTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseIntersectionObserverOptions | undefined;\n const enabled = options?.enabled ?? true;\n\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const [internalRef, setInternalRef] = useState<Element>();\n const internalOnChangeRef = useRef<UseIntersectionObserverOptions['onChange']>();\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled && !target && !internalRef) return;\n const element = target ? getElement(target) : internalRef;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setEntry(entry);\n internalOnChangeRef.current?.(entry);\n },\n {\n ...options,\n root: options?.root ? (getElement(options?.root) as Document | Element) : document\n }\n );\n\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [target, internalRef, options?.rootMargin, options?.threshold, options?.root, enabled]);\n\n if (target) return { entry, inView: !!entry?.isIntersecting };\n return {\n ref: setInternalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseIntersectionObserver;\n"],"names":["useIntersectionObserver","_options$enabled","target","_typeof","arguments","length","undefined","options","enabled","_useState","useState","_useState2","_slicedToArray","entry","setEntry","_useState3","_useState4","internalRef","setInternalRef","internalOnChangeRef","useRef","current","onChange","useEffect","element","getElement","observer","IntersectionObserver","_ref","_internalOnChangeRef$","call","_objectSpread","root","document","observe","disconnect","rootMargin","threshold","inView","isIntersecting","ref"],"mappings":";qPA+DaA,EAA2B,WAAsB,IAAAC,EACtDC,EACiB,WAArBC,EAAAC,UAAAC,QAAA,OAAAC,EAAAF,UAAqB,KAAc,YAASA,UAAAC,eAAAC,EAAAF,UAAA,IAA0BA,UAAAC,QAAA,OAAAC,EAAAF,UAC1B,QADiBE,EAEzDC,EAAWL,EAAME,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAuE,GACxFI,EAA0BP,QAAnBA,EAAGM,aAAO,EAAPA,EAASC,eAAOP,IAAAA,GAAAA,EAEhCQ,EAA0BC,IAAqCC,EAAAC,EAAAH,EAAA,GAAxDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEtBI,EAAsCL,IAAmBM,EAAAJ,EAAAG,EAAA,GAAlDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAsBC,IA0B5B,OAzBAD,EAAoBE,QAAUd,aAAO,EAAPA,EAASe,SAEvCC,GAAU,WACR,GAAKf,GAAYN,GAAWe,EAA5B,CACA,IAAMO,EAAUtB,EAASuB,EAAWvB,GAAUe,EAC9C,GAAKO,EAAL,CAEA,IAAME,EAAW,IAAIC,sBACnB,SAAAC,GAAa,IAAAC,EAAXhB,EAAWD,EAAAgB,EAAA,GAAN,GACLd,EAASD,GACkBgB,QAA3BA,EAAAV,EAAoBE,eAApBQ,IAA2BA,GAA3BA,EAAAC,KAAAX,EAA8BN,EAC/B,GAAAkB,EAAAA,KAEIxB,GAAO,CAAA,EAAA,CACVyB,KAAMzB,SAAAA,EAASyB,KAAQP,EAAWlB,aAAO,EAAPA,EAASyB,MAA+BC,YAM9E,OAFAP,EAASQ,QAAQV,GAEV,WACLE,EAASS,YACV,CAjBa,CAF2B,CAoB1C,GAAE,CAACjC,EAAQe,EAAaV,aAAAA,EAAAA,EAAS6B,WAAY7B,aAAO,EAAPA,EAAS8B,UAAW9B,aAAAA,EAAAA,EAASyB,KAAMxB,IAE7EN,EAAe,CAAEW,MAAAA,EAAOyB,SAAUzB,UAAAA,EAAO0B,iBACtC,CACLC,IAAKtB,EACLL,MAAAA,EACAyB,SAAUzB,UAAAA,EAAO0B,gBAErB"}
1
+ {"version":3,"file":"useIntersectionObserver.js","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer target element type */\nexport type UseIntersectionObserverTarget =\n | string\n | Element\n | RefObject<Element | null | undefined>;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n enabled?: boolean;\n root?: string | IntersectionObserverInit['root'] | RefObject<Element | null | undefined>;\n onChange?: (entry: IntersectionObserverEntry) => void;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n entry?: IntersectionObserverEntry;\n inView: boolean;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends UseIntersectionObserverTarget>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n <Target extends UseIntersectionObserverTarget>(\n target: Target,\n options?: UseIntersectionObserverOptions\n ): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {IntersectionObserverInit['root'] | RefObject<Element | null | undefined>} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state and the supported status\n *\n * @example\n * const { ref, entry, inView } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {IntersectionObserverInit['root'] | RefObject<Element | null | undefined>} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entry, inView } = useIntersectionObserver(ref);\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as\n | UseIntersectionObserverTarget\n | undefined;\n const options = (target ? params[1] : params[0]) as UseIntersectionObserverOptions | undefined;\n const enabled = options?.enabled ?? true;\n\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const internalRef = useRefState<Element>();\n const internalOnChangeRef = useRef<UseIntersectionObserverOptions['onChange']>();\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled && !target && !internalRef.current) return;\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n setEntry(entry);\n internalOnChangeRef.current?.(entry);\n },\n {\n ...options,\n root: options?.root ? (getElement(options?.root) as Document | Element) : document\n }\n );\n\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target,\n internalRef.current,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { entry, inView: !!entry?.isIntersecting };\n return {\n ref: internalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseIntersectionObserver;\n"],"names":["useIntersectionObserver","_options$enabled","target","isTarget","arguments","length","undefined","options","enabled","_useState","useState","_useState2","_slicedToArray","entry","setEntry","internalRef","useRefState","internalOnChangeRef","useRef","current","onChange","useEffect","element","getElement","observer","IntersectionObserver","_ref","_internalOnChangeRef$","call","_objectSpread","root","document","observe","disconnect","rootMargin","threshold","inView","isIntersecting","ref"],"mappings":";2YAmEaA,EAA2B,WAAsB,IAAAC,EACtDC,EAAUC,EAAQC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,eAAAC,EAAAF,UAAA,QAAeE,EAG5CC,EAAWL,EAAME,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAuE,GACxFI,EAA0BP,QAAnBA,EAAGM,aAAO,EAAPA,EAASC,eAAOP,IAAAA,GAAAA,EAEhCQ,EAA0BC,IAAqCC,EAAAC,EAAAH,EAAA,GAAxDI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEhBI,EAAcC,IACdC,EAAsBC,IAgC5B,OA/BAD,EAAoBE,QAAUZ,aAAO,EAAPA,EAASa,SAEvCC,GAAU,WACR,GAAKb,GAAYN,GAAWa,EAAYI,QAAxC,CACA,IAAMG,EAAUpB,EAASqB,EAAWrB,GAAUa,EAAYI,QAC1D,GAAKG,EAAL,CACA,IAAME,EAAW,IAAIC,sBACnB,SAAAC,GAAa,IAAAC,EAAXd,EAAWD,EAAAc,EAAA,GAAN,GACLZ,EAASD,GACkBc,QAA3BA,EAAAV,EAAoBE,eAApBQ,IAA2BA,GAA3BA,EAAAC,KAAAX,EAA8BJ,EAC/B,GAAAgB,EAAAA,KAEItB,GAAO,CAAA,EAAA,CACVuB,KAAMvB,SAAAA,EAASuB,KAAQP,EAAWhB,aAAO,EAAPA,EAASuB,MAA+BC,YAM9E,OAFAP,EAASQ,QAAQV,GAEV,WACLE,EAASS,YACV,CAhBa,CAFmC,CAmBlD,GAAE,CACD/B,EACAa,EAAYI,QACZZ,aAAO,EAAPA,EAAS2B,WACT3B,aAAAA,EAAAA,EAAS4B,UACT5B,aAAO,EAAPA,EAASuB,KACTtB,IAGEN,EAAe,CAAEW,MAAAA,EAAOuB,SAAUvB,UAAAA,EAAOwB,iBACtC,CACLC,IAAKvB,EACLF,MAAAA,EACAuB,SAAUvB,UAAAA,EAAOwB,gBAErB"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{b as r,_ as e}from"../../_rollupPluginBabelHelpers-Dugjabfg.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,b=n(null==p||p),I=e(b,2),d=I[0],j=I[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.86 */
2
+ import{b as r,_ as e}from"../../_rollupPluginBabelHelpers-C75B2U9C.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,b=n(null==p||p),I=e(b,2),d=I[0],j=I[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,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
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.83 */
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
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.83 */
2
- import{_ as e}from"../../_rollupPluginBabelHelpers-Dugjabfg.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.86 */
2
+ import{_ as e}from"../../_rollupPluginBabelHelpers-C75B2U9C.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";import"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var i=function(i,s){var n,o,u=r(!1),l=e(u,2),p=l[0],a=l[1];return t(null!==(n=null==s?void 0:s.target)&&void 0!==n?n:window,"keydown",(function(e){(Array.isArray(i)?i.includes(e.key):e.key===i)&&a(!0)})),t(null!==(o=null==s?void 0:s.target)&&void 0!==o?o: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';\n\nimport type { UseEventListenerTarget } from '../useEventListener/useEventListener';\n\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":";8RA2BO,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,EAClF,IAODC,UAAgBP,EAACF,aAAO,EAAPA,EAASU,cAAM,IAAAR,EAAAA,EAAIS,OAAQ,SAL5B,SAACC,IACXC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,EAClF,IAKMD,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';\n\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":";0WA2BO,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,EAClF,IAODC,UAAgBP,EAACF,aAAO,EAAPA,EAASU,cAAM,IAAAR,EAAAA,EAAIS,OAAQ,SAL5B,SAACC,IACXC,MAAMC,QAAQf,GAAOA,EAAIgB,SAASH,EAAMb,KAAOa,EAAMb,MAAQA,IAAKS,GAAW,EAClF,IAKMD,CACT"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{useEventListener as e}from"../useEventListener/useEventListener.js";import"../../_rollupPluginBabelHelpers-Dugjabfg.js";import"react";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var t=function(){var t=Array.isArray(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:[arguments.length<=0?void 0:arguments[0]],n=(arguments.length<=1?void 0:arguments[1])instanceof Function?null:arguments.length<=1?void 0:arguments[1],i=n?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1];e(null!=n?n:window,"keydown",(function(e){t.includes(e.key)&&i(e)}),n?arguments.length<=3?void 0:arguments[3]:arguments.length<=2?void 0:arguments[2])};export{t as useKeyPressEvent};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{useEventListener as e}from"../useEventListener/useEventListener.js";import"react";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";import"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var t=function(){var t=Array.isArray(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:[arguments.length<=0?void 0:arguments[0]],n=(arguments.length<=1?void 0:arguments[1])instanceof Function?null:arguments.length<=1?void 0:arguments[1],i=n?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1];e(null!=n?n:window,"keydown",(function(e){t.includes(e.key)&&i(e)}),n?arguments.length<=3?void 0:arguments[3]:arguments.length<=2?void 0:arguments[2])};export{t as useKeyPressEvent};
3
3
  //# sourceMappingURL=useKeyPressEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPressEvent.js","sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import type {\n UseEventListenerOptions,\n UseEventListenerTarget\n} from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\nexport type UseKeyPressEventKey = string | string[];\n\nexport interface UseKeyPressEvent {\n (\n key: UseKeyPressEventKey,\n target: Window,\n listener: (this: Window, event: WindowEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n (\n key: UseKeyPressEventKey,\n target: Document,\n listener: (this: Document, event: DocumentEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends UseEventListenerTarget>(\n key: UseKeyPressEventKey,\n target: Target,\n listener: (this: Target, event: HTMLElementEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends Element>(\n key: UseKeyPressEventKey,\n listener: (this: Target, event: HTMLElementEventMap['keydown']) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): void;\n}\n\n/**\n * @name useKeyPressEvent\n * @description - Hook that listens for key press events on specified targets\n * @category Sensors\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Window} target The window object to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', window, () => console.log('Enter key pressed'));\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Document} target The document object to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', document, () => console.log('Enter key pressed'));\n *\n * @overload\n * @template Target The target element type.\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Target} target The target element to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', ref, () => console.log('Enter key pressed'));\n *\n * @overload\n * @template Target extends Element\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', (event) => console.log('Enter key pressed'));\n */\nexport const useKeyPressEvent = ((...params: any[]) => {\n const keys = (Array.isArray(params[0]) ? params[0] : [params[0]]) as UseKeyPressEventKey;\n const target = (params[1] instanceof Function ? null : params[1]) as\n | UseEventListenerTarget\n | undefined;\n const callback = (target ? params[2] : params[1]) as (...arg: any[]) => void;\n const options: UseEventListenerOptions | undefined = target ? params[3] : params[2];\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (keys.includes(event.key)) callback(event);\n };\n\n useEventListener(target ?? window, 'keydown', onKeyDown, options);\n}) as UseKeyPressEvent;\n"],"names":["useKeyPressEvent","keys","Array","isArray","arguments","length","undefined","target","Function","callback","useEventListener","window","event","includes","key"],"mappings":";mQAqFaA,EAAoB,WAC/B,IAAMC,EAAQC,MAAMC,QAAOC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,QAAA,OAAAC,EAAAF,UAAe,GAAA,CAAAA,UAAAC,QAAA,OAAAC,EAAAF,UAAmC,IAClFG,GAAUH,UAAAC,QAAA,OAAAC,EAAAF,UAAA,cAAqBI,SAAW,KAAIJ,UAAAC,QAAAC,OAAAA,EAAAF,UAEvC,GACPK,EAAYF,EAAMH,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAoD,GAO5EM,EAAiBH,QAAAA,EAAUI,OAAQ,WAJjB,SAACC,GACbX,EAAKY,SAASD,EAAME,MAAML,EAASG,EACxC,GAJoDL,EAAMH,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAwB,GAOrF"}
1
+ {"version":3,"file":"useKeyPressEvent.js","sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import type {\n UseEventListenerOptions,\n UseEventListenerTarget\n} from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\nexport type UseKeyPressEventKey = string | string[];\n\nexport interface UseKeyPressEvent {\n (\n key: UseKeyPressEventKey,\n target: Window,\n listener: (this: Window, event: WindowEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n (\n key: UseKeyPressEventKey,\n target: Document,\n listener: (this: Document, event: DocumentEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends UseEventListenerTarget>(\n key: UseKeyPressEventKey,\n target: Target,\n listener: (this: Target, event: HTMLElementEventMap['keydown']) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends Element>(\n key: UseKeyPressEventKey,\n listener: (this: Target, event: HTMLElementEventMap['keydown']) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): void;\n}\n\n/**\n * @name useKeyPressEvent\n * @description - Hook that listens for key press events on specified targets\n * @category Sensors\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Window} target The window object to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', window, () => console.log('Enter key pressed'));\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Document} target The document object to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', document, () => console.log('Enter key pressed'));\n *\n * @overload\n * @template Target The target element type.\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {Target} target The target element to attach the event listener to.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', ref, () => console.log('Enter key pressed'));\n *\n * @overload\n * @template Target extends Element\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {(event: KeyboardEvent) => void} listener The callback function to be executed when the specified key or keys are pressed.\n * @param {UseEventListenerOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent('Enter', (event) => console.log('Enter key pressed'));\n */\nexport const useKeyPressEvent = ((...params: any[]) => {\n const keys = (Array.isArray(params[0]) ? params[0] : [params[0]]) as UseKeyPressEventKey;\n const target = (params[1] instanceof Function ? null : params[1]) as\n | UseEventListenerTarget\n | undefined;\n const callback = (target ? params[2] : params[1]) as (...arg: any[]) => void;\n const options: UseEventListenerOptions | undefined = target ? params[3] : params[2];\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (keys.includes(event.key)) callback(event);\n };\n\n useEventListener(target ?? window, 'keydown', onKeyDown, options);\n}) as UseKeyPressEvent;\n"],"names":["useKeyPressEvent","keys","Array","isArray","arguments","length","undefined","target","Function","callback","useEventListener","window","event","includes","key"],"mappings":";2RAqFaA,EAAoB,WAC/B,IAAMC,EAAQC,MAAMC,QAAOC,UAAAC,QAAAC,OAAAA,EAAAF,cAAWA,UAAAC,QAAA,OAAAC,EAAAF,UAAe,GAAA,CAAAA,UAAAC,QAAA,OAAAC,EAAAF,UAAmC,IAClFG,GAAUH,UAAAC,QAAA,OAAAC,EAAAF,UAAA,cAAqBI,SAAW,KAAIJ,UAAAC,QAAAC,OAAAA,EAAAF,UAEvC,GACPK,EAAYF,EAAMH,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAoD,GAO5EM,EAAiBH,QAAAA,EAAUI,OAAQ,WAJjB,SAACC,GACbX,EAAKY,SAASD,EAAME,MAAML,EAASG,EACxC,GAJoDL,EAAMH,UAAAC,QAAAC,OAAAA,EAAAF,UAAA,GAAAA,UAAAC,eAAAC,EAAAF,UAAwB,GAOrF"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{useEventListener as e}from"../useEventListener/useEventListener.js";import"../../_rollupPluginBabelHelpers-Dugjabfg.js";import"react";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";var l=function(l){var n,t;e(null!==(n=null==l?void 0:l.target)&&void 0!==n?n:window,"keydown",(function(e){var n;return null==l||null===(n=l.onKeyDown)||void 0===n?void 0:n.call(l,e)})),e(null!==(t=null==l?void 0:l.target)&&void 0!==t?t:window,"keyup",(function(e){var n;return null==l||null===(n=l.onKeyUp)||void 0===n?void 0:n.call(l,e)}))};export{l as useKeyboard};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{useEventListener as e}from"../useEventListener/useEventListener.js";import"react";import"../../utils/helpers/getElement.js";import"../../utils/helpers/isClient.js";import"../useEvent/useEvent.js";import"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var t=function(t){var n,r;e(null!==(n=null==t?void 0:t.target)&&void 0!==n?n:window,"keydown",(function(e){var n;return null==t||null===(n=t.onKeyDown)||void 0===n?void 0:n.call(t,e)})),e(null!==(r=null==t?void 0:t.target)&&void 0!==r?r:window,"keyup",(function(e){var n;return null==t||null===(n=t.onKeyUp)||void 0===n?void 0:n.call(t,e)}))};export{t as useKeyboard};
3
3
  //# sourceMappingURL=useKeyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboard.js","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import type { UseEventListenerTarget } from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use key press options type */\nexport interface UseKeyboardParams {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n /** The callback function to be invoked on key down */\n onKeyDown?: (event: KeyboardEvent) => void;\n /** The callback function to be invoked on key up */\n onKeyUp?: (event: KeyboardEvent) => void;\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that help to listen for keyboard events\n * @category Sensors\n *\n * @param {UseEventListenerTarget} [target=window] The target to attach the event listeners to\n * @param {(event: KeyboardEvent) => void} [onKeyDown] The callback function to be invoked on key down\n * @param {(event: KeyboardEvent) => void} [onKeyUp] The callback function to be invoked on key up\n *\n * @example\n * useKeyboard({ onKeyDown: () => console.log('key down'), onKeyUp: () => console.log('key up') })\n */\nexport const useKeyboard = (params?: UseKeyboardParams) => {\n const onKeyDown = (event: KeyboardEvent) => params?.onKeyDown?.(event);\n const onKeyUp = (event: KeyboardEvent) => params?.onKeyUp?.(event);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["useKeyboard","params","_params$target","_params$target2","useEventListener","target","window","event","_params$onKeyDown","onKeyDown","call","_params$onKeyUp","onKeyUp"],"mappings":";mQA0BaA,EAAc,SAACC,GAA+B,IAAAC,EAAAC,EAIzDC,UAAgBF,EAACD,aAAM,EAANA,EAAQI,cAAM,IAAAH,EAAAA,EAAII,OAAQ,WAHzB,SAACC,GAAoB,IAAAC,EAAA,OAAKP,iBAAMO,EAANP,EAAQQ,iBAAS,IAAAD,OAAA,EAAjBA,EAAAE,KAAAT,EAAoBM,EAAM,IAItEH,UAAgBD,EAACF,aAAM,EAANA,EAAQI,cAAM,IAAAF,EAAAA,EAAIG,OAAQ,SAH3B,SAACC,GAAoB,IAAAI,EAAA,OAAKV,iBAAMU,EAANV,EAAQW,eAAO,IAAAD,OAAA,EAAfA,EAAAD,KAAAT,EAAkBM,EAAM,GAIpE"}
1
+ {"version":3,"file":"useKeyboard.js","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import type { UseEventListenerTarget } from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/** The use key press options type */\nexport interface UseKeyboardParams {\n /** The target to attach the event listeners to */\n target?: UseEventListenerTarget;\n /** The callback function to be invoked on key down */\n onKeyDown?: (event: KeyboardEvent) => void;\n /** The callback function to be invoked on key up */\n onKeyUp?: (event: KeyboardEvent) => void;\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that help to listen for keyboard events\n * @category Sensors\n *\n * @param {UseEventListenerTarget} [target=window] The target to attach the event listeners to\n * @param {(event: KeyboardEvent) => void} [onKeyDown] The callback function to be invoked on key down\n * @param {(event: KeyboardEvent) => void} [onKeyUp] The callback function to be invoked on key up\n *\n * @example\n * useKeyboard({ onKeyDown: () => console.log('key down'), onKeyUp: () => console.log('key up') })\n */\nexport const useKeyboard = (params?: UseKeyboardParams) => {\n const onKeyDown = (event: KeyboardEvent) => params?.onKeyDown?.(event);\n const onKeyUp = (event: KeyboardEvent) => params?.onKeyUp?.(event);\n\n useEventListener(params?.target ?? window, 'keydown', onKeyDown);\n useEventListener(params?.target ?? window, 'keyup', onKeyUp);\n};\n"],"names":["useKeyboard","params","_params$target","_params$target2","useEventListener","target","window","event","_params$onKeyDown","onKeyDown","call","_params$onKeyUp","onKeyUp"],"mappings":";2RA0BaA,EAAc,SAACC,GAA+B,IAAAC,EAAAC,EAIzDC,UAAgBF,EAACD,aAAM,EAANA,EAAQI,cAAM,IAAAH,EAAAA,EAAII,OAAQ,WAHzB,SAACC,GAAoB,IAAAC,EAAA,OAAKP,iBAAMO,EAANP,EAAQQ,iBAAS,IAAAD,OAAA,EAAjBA,EAAAE,KAAAT,EAAoBM,EAAM,IAItEH,UAAgBD,EAACF,aAAM,EAANA,EAAQI,cAAM,IAAAF,EAAAA,EAAIG,OAAQ,SAH3B,SAACC,GAAoB,IAAAI,EAAA,OAAKV,iBAAMU,EAANV,EAAQW,eAAO,IAAAD,OAAA,EAAfA,EAAAD,KAAAT,EAAkBM,EAAM,GAIpE"}
@@ -1,3 +1,3 @@
1
- /* @license @siberiacancode/reactuse v0.0.83 */
2
- import{_ as e,a as t}from"../../_rollupPluginBabelHelpers-Dugjabfg.js";import{useState as o}from"react";import{useDidUpdate as n}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../../utils/helpers/getElement.js";import"../useEvent/useEvent.js";var i=function(i){var u,s,l,c=null===(u=null==i?void 0:i.enabled)||void 0===u||u,d=o([]),p=e(d,2),f=p[0],m=p[1];return n((function(){m([])}),[c]),r(null!==(s=null==i?void 0:i.target)&&void 0!==s?s:window,"keydown",(function(e){c&&m((function(o){return o.some((function(t){return t.code===e.code}))?o:[].concat(t(o),[{key:e.key,code:e.code}])}))})),r(null!==(l=null==i?void 0:i.target)&&void 0!==l?l:window,"keyup",(function(e){c&&m((function(t){return t.filter((function(t){return t.code!==e.code}))}))})),f};export{i as useKeysPressed};
1
+ /* @license @siberiacancode/reactuse v0.0.86 */
2
+ import{_ as e,a as t}from"../../_rollupPluginBabelHelpers-C75B2U9C.js";import{useState as o}from"react";import{useDidUpdate as n}from"../useDidUpdate/useDidUpdate.js";import{useEventListener as r}from"../useEventListener/useEventListener.js";import"../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";import"../../utils/helpers/isClient.js";import"../../utils/helpers/getElement.js";import"../useEvent/useEvent.js";import"../useRefState/useRefState.js";import"../useRerender/useRerender.js";var i=function(i){var u,s,l,d=null===(u=null==i?void 0:i.enabled)||void 0===u||u,c=o([]),p=e(c,2),f=p[0],m=p[1];return n((function(){m([])}),[d]),r(null!==(s=null==i?void 0:i.target)&&void 0!==s?s:window,"keydown",(function(e){d&&m((function(o){return o.some((function(t){return t.code===e.code}))?o:[].concat(t(o),[{key:e.key,code:e.code}])}))})),r(null!==(l=null==i?void 0:i.target)&&void 0!==l?l:window,"keyup",(function(e){d&&m((function(t){return t.filter((function(t){return t.code!==e.code}))}))})),f};export{i as useKeysPressed};
3
3
  //# sourceMappingURL=useKeysPressed.js.map