@siberiacancode/reactuse 0.3.15 → 0.3.17

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 (705) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
  3. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  4. package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
  5. package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
  6. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
  7. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
  8. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
  9. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  10. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
  11. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
  12. package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
  13. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  14. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
  15. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
  16. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
  17. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  18. package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
  19. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  20. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
  21. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
  22. package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
  23. package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
  24. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
  25. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
  26. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
  27. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
  29. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  30. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
  31. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  32. package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
  33. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  34. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
  35. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  36. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
  37. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
  38. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
  39. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  40. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
  41. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  42. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
  43. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  44. package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
  45. package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
  46. package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
  47. package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
  48. package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
  49. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  50. package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
  51. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  52. package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
  53. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  54. package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
  55. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  56. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
  57. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  58. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
  59. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  60. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
  61. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
  62. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
  63. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
  64. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
  65. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  66. package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
  67. package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
  68. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
  69. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  70. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
  71. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  72. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
  73. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  74. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
  75. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  76. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
  77. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  78. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
  79. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  80. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
  81. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  82. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
  83. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  84. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
  85. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  86. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
  87. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  88. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
  89. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  90. package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
  91. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  92. package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
  93. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  94. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
  95. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  96. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
  97. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  98. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
  99. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  100. package/dist/cjs/hooks/useField/useField.cjs +2 -2
  101. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  102. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
  103. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  104. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
  105. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
  106. package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
  107. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  108. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
  109. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
  110. package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
  111. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  112. package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
  113. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  114. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
  115. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  116. package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
  117. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  118. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
  119. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  120. package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
  121. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  122. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
  123. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  124. package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
  125. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  126. package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
  127. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  128. package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
  129. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  130. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
  131. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  132. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
  133. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  134. package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
  135. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  136. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
  137. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  138. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
  139. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
  140. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
  141. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  142. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
  143. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  144. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
  145. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  146. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
  147. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  148. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
  149. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  150. package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
  151. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  152. package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
  153. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  154. package/dist/cjs/hooks/useList/useList.cjs +2 -2
  155. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  156. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
  157. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  158. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
  159. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  160. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
  161. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
  162. package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
  163. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  164. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
  165. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  166. package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
  167. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  168. package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
  169. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  170. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
  171. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
  172. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
  173. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  174. package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
  175. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  176. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
  177. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
  178. package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
  179. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  180. package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
  181. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  182. package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
  183. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  184. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
  185. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  186. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
  187. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  188. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
  189. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
  190. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
  191. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  192. package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
  193. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  194. package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
  195. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  196. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
  197. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  198. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
  199. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  200. package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
  201. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  202. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
  203. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  204. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
  205. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  206. package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
  207. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  208. package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
  209. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  210. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
  211. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  212. package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
  213. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  214. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
  215. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
  216. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
  217. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  218. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
  219. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  220. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
  221. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  222. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
  223. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  224. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
  225. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
  226. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
  227. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  228. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
  229. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  230. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
  231. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  232. package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
  233. package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
  234. package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
  235. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  236. package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
  237. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  238. package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
  239. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  240. package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
  241. package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
  242. package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
  243. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  244. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
  245. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  246. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
  247. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  248. package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
  249. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  250. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
  251. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  252. package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
  253. package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
  254. package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
  255. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  256. package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
  257. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  258. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
  259. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  260. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
  261. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  262. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
  263. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
  264. package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
  265. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  266. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
  267. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
  268. package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
  269. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  270. package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
  271. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
  272. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
  273. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  274. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
  275. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  276. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
  277. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  278. package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
  279. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  280. package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
  281. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  282. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
  283. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  284. package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
  285. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  286. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
  287. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  288. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
  289. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  290. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
  291. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
  292. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
  293. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  294. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
  295. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
  296. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
  297. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
  298. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
  299. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  300. package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
  301. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  302. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
  303. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  304. package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
  305. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  306. package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
  307. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  308. package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
  309. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  310. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
  311. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  312. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
  313. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  314. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
  315. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  316. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
  317. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
  318. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
  319. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  320. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
  321. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  322. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
  323. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  324. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
  325. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  326. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
  327. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  328. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
  329. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  330. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
  331. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  332. package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
  333. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  334. package/dist/cjs/index.cjs +1 -2
  335. package/dist/cjs/utils/helpers/copy.cjs +2 -2
  336. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  337. package/dist/cjs/utils/helpers/debounce.cjs +2 -2
  338. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  339. package/dist/cjs/utils/helpers/getDate.cjs +2 -2
  340. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  341. package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
  342. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  343. package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
  344. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  345. package/dist/cjs/utils/helpers/throttle.cjs +2 -2
  346. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  347. package/dist/esm/helpers/createContext/createContext.mjs +32 -33
  348. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  349. package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
  350. package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
  351. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
  352. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
  353. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
  354. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  355. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
  356. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
  357. package/dist/esm/helpers/createStore/createStore.mjs +25 -29
  358. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  359. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
  360. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
  361. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
  362. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  363. package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
  364. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  365. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
  366. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
  367. package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
  368. package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
  369. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
  370. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
  371. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
  372. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
  373. package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
  374. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  375. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
  376. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  377. package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
  378. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  379. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
  380. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  381. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
  382. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
  383. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
  384. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  385. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
  386. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  387. package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
  388. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  389. package/dist/esm/hooks/useConst/useConst.mjs +7 -6
  390. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  391. package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
  392. package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
  393. package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
  394. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  395. package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
  396. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  397. package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
  398. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  399. package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
  400. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  401. package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
  402. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  403. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
  404. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  405. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
  406. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
  407. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
  408. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
  409. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
  410. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  411. package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
  412. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  413. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
  414. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  415. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
  416. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  417. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
  418. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  419. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
  420. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  421. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
  422. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  423. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
  424. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  425. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
  426. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  427. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
  428. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  429. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
  430. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  431. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
  432. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  433. package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
  434. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  435. package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
  436. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  437. package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
  438. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  439. package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
  440. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  441. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
  442. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  443. package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
  444. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  445. package/dist/esm/hooks/useField/useField.mjs +61 -67
  446. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  447. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
  448. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  449. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
  450. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
  451. package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
  452. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  453. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
  454. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
  455. package/dist/esm/hooks/useFps/useFps.mjs +18 -22
  456. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  457. package/dist/esm/hooks/useFul/useFul.mjs +8 -7
  458. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  459. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
  460. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  461. package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
  462. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  463. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
  464. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  465. package/dist/esm/hooks/useHash/useHash.mjs +24 -26
  466. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  467. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
  468. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  469. package/dist/esm/hooks/useHover/useHover.mjs +30 -25
  470. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  471. package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
  472. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  473. package/dist/esm/hooks/useImage/useImage.mjs +24 -26
  474. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  475. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
  476. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  477. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
  478. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  479. package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
  480. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  481. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
  482. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  483. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
  484. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
  485. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
  486. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  487. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
  488. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  489. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
  490. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  491. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
  492. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  493. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
  494. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  495. package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
  496. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  497. package/dist/esm/hooks/useLess/useLess.mjs +9 -8
  498. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  499. package/dist/esm/hooks/useList/useList.mjs +22 -22
  500. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  501. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
  502. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
  503. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
  504. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  505. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
  506. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
  507. package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
  508. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  509. package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
  510. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  511. package/dist/esm/hooks/useMap/useMap.mjs +21 -20
  512. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  513. package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
  514. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  515. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
  516. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
  517. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
  518. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  519. package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
  520. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  521. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
  522. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
  523. package/dist/esm/hooks/useMount/useMount.mjs +7 -6
  524. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  525. package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
  526. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  527. package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
  528. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  529. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
  530. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  531. package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
  532. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  533. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
  534. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
  535. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
  536. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  537. package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
  538. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  539. package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
  540. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  541. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
  542. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  543. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
  544. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  545. package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
  546. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  547. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
  548. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  549. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
  550. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  551. package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
  552. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  553. package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
  554. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  555. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
  556. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  557. package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
  558. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  559. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
  560. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
  561. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
  562. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  563. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
  564. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  565. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
  566. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  567. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
  568. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  569. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
  570. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  571. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
  572. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  573. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
  574. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
  575. package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
  576. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  577. package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
  578. package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
  579. package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
  580. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  581. package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
  582. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  583. package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
  584. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  585. package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
  586. package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
  587. package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
  588. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  589. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
  590. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  591. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
  592. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  593. package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
  594. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  595. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
  596. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  597. package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
  598. package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
  599. package/dist/esm/hooks/useScript/useScript.mjs +28 -31
  600. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  601. package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
  602. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  603. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
  604. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  605. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
  606. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  607. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
  608. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
  609. package/dist/esm/hooks/useSet/useSet.mjs +30 -29
  610. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  611. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
  612. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
  613. package/dist/esm/hooks/useShare/useShare.mjs +18 -14
  614. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  615. package/dist/esm/hooks/useSize/useSize.mjs +40 -30
  616. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
  617. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
  618. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  619. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
  620. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  621. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
  622. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  623. package/dist/esm/hooks/useStep/useStep.mjs +27 -28
  624. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  625. package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
  626. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  627. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
  628. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  629. package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
  630. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  631. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
  632. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  633. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
  634. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  635. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
  636. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
  637. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
  638. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  639. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
  640. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
  641. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
  642. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
  643. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
  644. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  645. package/dist/esm/hooks/useTime/useTime.mjs +14 -13
  646. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  647. package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
  648. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  649. package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
  650. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  651. package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
  652. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  653. package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
  654. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  655. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
  656. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  657. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
  658. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  659. package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
  660. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  661. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
  662. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
  663. package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
  664. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  665. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
  666. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  667. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
  668. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  669. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
  670. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  671. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
  672. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  673. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
  674. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  675. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
  676. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  677. package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
  678. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  679. package/dist/esm/index.mjs +173 -394
  680. package/dist/esm/utils/helpers/copy.mjs +18 -18
  681. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  682. package/dist/esm/utils/helpers/debounce.mjs +10 -10
  683. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  684. package/dist/esm/utils/helpers/getDate.mjs +20 -16
  685. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  686. package/dist/esm/utils/helpers/getRetry.mjs +6 -5
  687. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  688. package/dist/esm/utils/helpers/isTarget.mjs +10 -19
  689. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  690. package/dist/esm/utils/helpers/throttle.mjs +20 -20
  691. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  692. package/dist/types/helpers/index.d.ts +1 -0
  693. package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
  694. package/dist/types/hooks/browser.d.ts +2 -0
  695. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  696. package/dist/types/hooks/useField/useField.d.ts +2 -2
  697. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  698. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
  699. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  700. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  701. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  702. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  703. package/package.json +5 -5
  704. package/dist/cjs/index.cjs.map +0 -1
  705. package/dist/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useGeolocation.cjs","sources":["../../../../src/hooks/useGeolocation/useGeolocation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** The use geolocation return type */\nexport interface UseGeolocationReturn {\n /** The accuracy of the last position update */\n accuracy: number | null;\n /** The altitude of the last position update */\n altitude: number | null;\n /** The altitude accuracy of the last position update */\n altitudeAccuracy: number | null;\n /** The error of the last position update */\n error: GeolocationPositionError | null;\n /** The heading of the last position update */\n heading: number | null;\n /** The latitude of the last position update */\n latitude: number | null;\n /** The loading state */\n loading: boolean;\n /** The longitude of the last position update */\n longitude: number | null;\n /** The speed of the last position update */\n speed: number | null;\n /** The timestamp of the last position update */\n timestamp: number | null;\n}\n\n/** The use geolocation params type */\nexport type UseGeolocationParams = PositionOptions;\n\n/**\n * @name useGeolocation\n * @description - Hook that returns the current geolocation\n * @category Browser\n * @usage medium\n *\n * @browserapi navigator.geolocation https://developer.mozilla.org/en-US/docs/Web/API/Navigator/geolocation\n *\n * @param {boolean} [params.enableHighAccuracy] Enable high accuracy\n * @param {number} [params.maximumAge] Maximum age\n * @param {number} [params.timeout] Timeout\n * @returns {UseGeolocationReturn}\n *\n * @example\n * const { loading, error, timestamp, accuracy, latitude, longitude, altitude, altitudeAccuracy, heading, speed } = useGeolocation();\n */\nexport const useGeolocation = (params?: UseGeolocationParams): UseGeolocationReturn => {\n const [value, setValue] = useState<UseGeolocationReturn>({\n loading: true,\n error: null,\n timestamp: Date.now(),\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n\n useEffect(() => {\n const onEvent = ({ coords, timestamp }: GeolocationPosition) => {\n setValue({\n ...value,\n loading: false,\n timestamp,\n latitude: coords.latitude,\n longitude: coords.longitude,\n altitude: coords.altitude,\n accuracy: coords.accuracy,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed\n });\n };\n\n const onEventError = (error: GeolocationPositionError) => {\n setValue({\n ...value,\n loading: false,\n error\n });\n };\n\n navigator.geolocation.getCurrentPosition(onEvent, onEventError, params);\n const watchId = navigator.geolocation.watchPosition(onEvent, onEventError, params);\n\n return () => {\n navigator.geolocation.clearWatch(watchId);\n };\n }, [params?.enableHighAccuracy, params?.maximumAge, params?.timeout]);\n\n return value;\n};\n"],"names":["useGeolocation","params","value","setValue","useState","useEffect","onEvent","coords","timestamp","onEventError","error","watchId"],"mappings":"yGA6CaA,EAAkBC,GAAwD,CACrF,KAAM,CAACC,EAAOC,CAAQ,EAAIC,WAA+B,CACvD,QAAS,GACT,MAAO,KACP,UAAW,KAAK,IAAA,EAChB,SAAU,EACV,SAAU,OAAO,kBACjB,UAAW,OAAO,kBAClB,SAAU,KACV,iBAAkB,KAClB,QAAS,KACT,MAAO,IAAA,CACR,EAEDC,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAU,CAAC,CAAE,OAAAC,EAAQ,UAAAC,KAAqC,CAC9DL,EAAS,CACP,GAAGD,EACH,QAAS,GACT,UAAAM,EACA,SAAUD,EAAO,SACjB,UAAWA,EAAO,UAClB,SAAUA,EAAO,SACjB,SAAUA,EAAO,SACjB,iBAAkBA,EAAO,iBACzB,QAASA,EAAO,QAChB,MAAOA,EAAO,KAAA,CACf,CAAA,EAGGE,EAAgBC,GAAoC,CACxDP,EAAS,CACP,GAAGD,EACH,QAAS,GACT,MAAAQ,CAAA,CACD,CAAA,EAGH,UAAU,YAAY,mBAAmBJ,EAASG,EAAcR,CAAM,EACtE,MAAMU,EAAU,UAAU,YAAY,cAAcL,EAASG,EAAcR,CAAM,EAEjF,MAAO,IAAM,CACX,UAAU,YAAY,WAAWU,CAAO,CAAA,CAC1C,EACC,CAACV,GAAQ,mBAAoBA,GAAQ,WAAYA,GAAQ,OAAO,CAAC,EAE7DC,CACT"}
1
+ {"version":3,"file":"useGeolocation.cjs","names":[],"sources":["../../../../src/hooks/useGeolocation/useGeolocation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** The use geolocation return type */\nexport interface UseGeolocationReturn {\n /** The accuracy of the last position update */\n accuracy: number | null;\n /** The altitude of the last position update */\n altitude: number | null;\n /** The altitude accuracy of the last position update */\n altitudeAccuracy: number | null;\n /** The error of the last position update */\n error: GeolocationPositionError | null;\n /** The heading of the last position update */\n heading: number | null;\n /** The latitude of the last position update */\n latitude: number | null;\n /** The loading state */\n loading: boolean;\n /** The longitude of the last position update */\n longitude: number | null;\n /** The speed of the last position update */\n speed: number | null;\n /** The timestamp of the last position update */\n timestamp: number | null;\n}\n\n/** The use geolocation params type */\nexport type UseGeolocationParams = PositionOptions;\n\n/**\n * @name useGeolocation\n * @description - Hook that returns the current geolocation\n * @category Browser\n * @usage medium\n *\n * @browserapi navigator.geolocation https://developer.mozilla.org/en-US/docs/Web/API/Navigator/geolocation\n *\n * @param {boolean} [params.enableHighAccuracy] Enable high accuracy\n * @param {number} [params.maximumAge] Maximum age\n * @param {number} [params.timeout] Timeout\n * @returns {UseGeolocationReturn}\n *\n * @example\n * const { loading, error, timestamp, accuracy, latitude, longitude, altitude, altitudeAccuracy, heading, speed } = useGeolocation();\n */\nexport const useGeolocation = (params?: UseGeolocationParams): UseGeolocationReturn => {\n const [value, setValue] = useState<UseGeolocationReturn>({\n loading: true,\n error: null,\n timestamp: Date.now(),\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n\n useEffect(() => {\n const onEvent = ({ coords, timestamp }: GeolocationPosition) => {\n setValue({\n ...value,\n loading: false,\n timestamp,\n latitude: coords.latitude,\n longitude: coords.longitude,\n altitude: coords.altitude,\n accuracy: coords.accuracy,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed\n });\n };\n\n const onEventError = (error: GeolocationPositionError) => {\n setValue({\n ...value,\n loading: false,\n error\n });\n };\n\n navigator.geolocation.getCurrentPosition(onEvent, onEventError, params);\n const watchId = navigator.geolocation.watchPosition(onEvent, onEventError, params);\n\n return () => {\n navigator.geolocation.clearWatch(watchId);\n };\n }, [params?.enableHighAccuracy, params?.maximumAge, params?.timeout]);\n\n return value;\n};\n"],"mappings":"uEA6CA,IAAa,EAAkB,GAAwD,CACrF,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,UAA2C,CACvD,QAAS,GACT,MAAO,KACP,UAAW,KAAK,KAAK,CACrB,SAAU,EACV,SAAU,IACV,UAAW,IACX,SAAU,KACV,iBAAkB,KAClB,QAAS,KACT,MAAO,KACR,CAAC,CAkCF,OAhCA,EAAA,EAAA,eAAgB,CACd,IAAM,GAAW,CAAE,SAAQ,eAAqC,CAC9D,EAAS,CACP,GAAG,EACH,QAAS,GACT,YACA,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,SAAU,EAAO,SACjB,SAAU,EAAO,SACjB,iBAAkB,EAAO,iBACzB,QAAS,EAAO,QAChB,MAAO,EAAO,MACf,CAAC,EAGE,EAAgB,GAAoC,CACxD,EAAS,CACP,GAAG,EACH,QAAS,GACT,QACD,CAAC,EAGJ,UAAU,YAAY,mBAAmB,EAAS,EAAc,EAAO,CACvE,IAAM,EAAU,UAAU,YAAY,cAAc,EAAS,EAAc,EAAO,CAElF,UAAa,CACX,UAAU,YAAY,WAAW,EAAQ,GAE1C,CAAC,GAAQ,mBAAoB,GAAQ,WAAY,GAAQ,QAAQ,CAAC,CAE9D"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),c=()=>decodeURIComponent(window.location.hash.replace("#","")),w=((...e)=>{const i=typeof e[0]=="string"?e[0]:"",t=typeof e[1]=="object"?e[1]:typeof e[1]=="function"?{onChange:e[1]}:typeof e[0]=="object"?e[0]:{},h=t?.enabled??!0,r=t?.mode??"replace",[u,a]=s.useState(()=>typeof window>"u"?i:c()||i),o=s.useRef(t);o.current=t;const f=n=>{window.location.hash=n,a(n),o.current?.onChange?.(n)};return s.useEffect(()=>{if(!h)return;r==="replace"&&(window.location.hash=u);const n=()=>{const d=c();a(d),o.current?.onChange?.(d)};return window.addEventListener("hashchange",n),()=>{window.removeEventListener("hashchange",n)}},[h,r]),{value:u,set:f}});exports.getHash=c;exports.useHash=w;
2
- //# sourceMappingURL=useHash.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>decodeURIComponent(window.location.hash.replace(`#`,``)),n=((...n)=>{let r=typeof n[0]==`string`?n[0]:``,i=typeof n[1]==`object`?n[1]:typeof n[1]==`function`?{onChange:n[1]}:typeof n[0]==`object`?n[0]:{},a=i?.enabled??!0,o=i?.mode??`replace`,[s,c]=(0,e.useState)(()=>typeof window>`u`?r:t()||r),l=(0,e.useRef)(i);return l.current=i,(0,e.useEffect)(()=>{if(!a)return;o===`replace`&&(window.location.hash=s);let e=()=>{let e=t();c(e),l.current?.onChange?.(e)};return window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`hashchange`,e)}},[a,o]),{value:s,set:e=>{window.location.hash=e,c(e),l.current?.onChange?.(e)}}});exports.getHash=t,exports.useHash=n;
2
+ //# sourceMappingURL=useHash.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHash.cjs","sources":["../../../../src/hooks/useHash/useHash.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const getHash = () => decodeURIComponent(window.location.hash.replace('#', ''));\n\n/** The use hash options type */\nexport interface UseHashOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The mode of hash setting */\n mode?: 'initial' | 'replace';\n /** Callback function called when hash changes */\n onChange?: (hash: string) => void;\n}\n\n/** The use hash return type */\ninterface UseHashReturn {\n /** The hash value */\n value: string;\n /** The function to set the hash value */\n set: (value: string) => void;\n}\n\nexport interface UseHash {\n (initialValue?: string, options?: UseHashOptions): UseHashReturn;\n\n (options?: UseHashOptions): UseHashReturn;\n\n (initialValue?: string, callback?: (hash: string) => void): UseHashReturn;\n\n (callback?: (hash: string) => void): UseHashReturn;\n}\n\n/**\n * @name useHash\n * @description - Hook that manages the hash value\n * @category State\n * @usage low\n *\n * @overload\n * @param {string} [initialValue] The initial hash value if no hash exists\n * @param {UseHashOptions} [options] Configuration options\n * @param {boolean} [options.enabled] The enabled state of the hook\n * @param {'initial' | 'replace'} [options.mode] The mode of hash setting\n * @param {(hash: string) => void} [options.onChange] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash(\"initial\");\n *\n * @overload\n * @param {string} [initialValue] The initial hash value if no hash exists\n * @param {(hash: string) => void} [callback] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash(\"initial\", (newHash) => console.log('callback'));\n *\n * @overload\n * @param {UseHashOptions} [options] Configuration options\n * @param {boolean} [options.enabled] The enabled state of the hook\n * @param {'initial' | 'replace'} [options.mode] The mode of hash setting\n * @param {(hash: string) => void} [options.onChange] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash();\n *\n * @overload\n * @param {(hash: string) => void} [callback] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash((newHash) => console.log('callback'));\n */\nexport const useHash = ((...params: any[]) => {\n const initialValue = typeof params[0] === 'string' ? params[0] : '';\n const options =\n typeof params[1] === 'object'\n ? params[1]\n : typeof params[1] === 'function'\n ? { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : {};\n\n const enabled = options?.enabled ?? true;\n const mode = options?.mode ?? 'replace';\n\n const [hash, setHash] = useState(() => {\n if (typeof window === 'undefined') return initialValue;\n return getHash() || initialValue;\n });\n\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n const set = (value: string) => {\n window.location.hash = value;\n setHash(value);\n optionsRef.current?.onChange?.(value);\n };\n\n useEffect(() => {\n if (!enabled) return;\n\n if (mode === 'replace') window.location.hash = hash;\n\n const onHashChange = () => {\n const newHash = getHash();\n setHash(newHash);\n optionsRef.current?.onChange?.(newHash);\n };\n\n window.addEventListener('hashchange', onHashChange);\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n };\n }, [enabled, mode]);\n\n return {\n value: hash,\n set\n };\n}) as UseHash;\n"],"names":["getHash","useHash","params","initialValue","options","enabled","mode","hash","setHash","useState","optionsRef","useRef","set","value","useEffect","onHashChange","newHash"],"mappings":"yGAEaA,EAAU,IAAM,mBAAmB,OAAO,SAAS,KAAK,QAAQ,IAAK,EAAE,CAAC,EAwExEC,GAAW,IAAIC,IAAkB,CAC5C,MAAMC,EAAe,OAAOD,EAAO,CAAC,GAAM,SAAWA,EAAO,CAAC,EAAI,GAC3DE,EACJ,OAAOF,EAAO,CAAC,GAAM,SACjBA,EAAO,CAAC,EACR,OAAOA,EAAO,CAAC,GAAM,WACnB,CAAE,SAAUA,EAAO,CAAC,CAAA,EACpB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAA,EAEJG,EAAUD,GAAS,SAAW,GAC9BE,EAAOF,GAAS,MAAQ,UAExB,CAACG,EAAMC,CAAO,EAAIC,EAAAA,SAAS,IAC3B,OAAO,OAAW,IAAoBN,EACnCH,KAAaG,CACrB,EAEKO,EAAaC,EAAAA,OAAOP,CAAO,EACjCM,EAAW,QAAUN,EAErB,MAAMQ,EAAOC,GAAkB,CAC7B,OAAO,SAAS,KAAOA,EACvBL,EAAQK,CAAK,EACbH,EAAW,SAAS,WAAWG,CAAK,CAAA,EAGtCC,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACT,EAAS,OAEVC,IAAS,YAAW,OAAO,SAAS,KAAOC,GAE/C,MAAMQ,EAAe,IAAM,CACzB,MAAMC,EAAUhB,EAAA,EAChBQ,EAAQQ,CAAO,EACfN,EAAW,SAAS,WAAWM,CAAO,CAAA,EAGxC,cAAO,iBAAiB,aAAcD,CAAY,EAC3C,IAAM,CACX,OAAO,oBAAoB,aAAcA,CAAY,CAAA,CACvD,EACC,CAACV,EAASC,CAAI,CAAC,EAEX,CACL,MAAOC,EACP,IAAAK,CAAA,CAEJ"}
1
+ {"version":3,"file":"useHash.cjs","names":[],"sources":["../../../../src/hooks/useHash/useHash.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const getHash = () => decodeURIComponent(window.location.hash.replace('#', ''));\n\n/** The use hash options type */\nexport interface UseHashOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The mode of hash setting */\n mode?: 'initial' | 'replace';\n /** Callback function called when hash changes */\n onChange?: (hash: string) => void;\n}\n\n/** The use hash return type */\ninterface UseHashReturn {\n /** The hash value */\n value: string;\n /** The function to set the hash value */\n set: (value: string) => void;\n}\n\nexport interface UseHash {\n (initialValue?: string, options?: UseHashOptions): UseHashReturn;\n\n (options?: UseHashOptions): UseHashReturn;\n\n (initialValue?: string, callback?: (hash: string) => void): UseHashReturn;\n\n (callback?: (hash: string) => void): UseHashReturn;\n}\n\n/**\n * @name useHash\n * @description - Hook that manages the hash value\n * @category State\n * @usage low\n *\n * @overload\n * @param {string} [initialValue] The initial hash value if no hash exists\n * @param {UseHashOptions} [options] Configuration options\n * @param {boolean} [options.enabled] The enabled state of the hook\n * @param {'initial' | 'replace'} [options.mode] The mode of hash setting\n * @param {(hash: string) => void} [options.onChange] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash(\"initial\");\n *\n * @overload\n * @param {string} [initialValue] The initial hash value if no hash exists\n * @param {(hash: string) => void} [callback] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash(\"initial\", (newHash) => console.log('callback'));\n *\n * @overload\n * @param {UseHashOptions} [options] Configuration options\n * @param {boolean} [options.enabled] The enabled state of the hook\n * @param {'initial' | 'replace'} [options.mode] The mode of hash setting\n * @param {(hash: string) => void} [options.onChange] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash();\n *\n * @overload\n * @param {(hash: string) => void} [callback] Callback function called when hash changes\n * @returns {UseHashReturn} An array containing the hash value and a function to set the hash value\n *\n * @example\n * const { value, set } = useHash((newHash) => console.log('callback'));\n */\nexport const useHash = ((...params: any[]) => {\n const initialValue = typeof params[0] === 'string' ? params[0] : '';\n const options =\n typeof params[1] === 'object'\n ? params[1]\n : typeof params[1] === 'function'\n ? { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : {};\n\n const enabled = options?.enabled ?? true;\n const mode = options?.mode ?? 'replace';\n\n const [hash, setHash] = useState(() => {\n if (typeof window === 'undefined') return initialValue;\n return getHash() || initialValue;\n });\n\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n const set = (value: string) => {\n window.location.hash = value;\n setHash(value);\n optionsRef.current?.onChange?.(value);\n };\n\n useEffect(() => {\n if (!enabled) return;\n\n if (mode === 'replace') window.location.hash = hash;\n\n const onHashChange = () => {\n const newHash = getHash();\n setHash(newHash);\n optionsRef.current?.onChange?.(newHash);\n };\n\n window.addEventListener('hashchange', onHashChange);\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n };\n }, [enabled, mode]);\n\n return {\n value: hash,\n set\n };\n}) as UseHash;\n"],"mappings":"uEAEA,IAAa,MAAgB,mBAAmB,OAAO,SAAS,KAAK,QAAQ,IAAK,GAAG,CAAC,CAwEzE,IAAY,GAAG,IAAkB,CAC5C,IAAM,EAAe,OAAO,EAAO,IAAO,SAAW,EAAO,GAAK,GAC3D,EACJ,OAAO,EAAO,IAAO,SACjB,EAAO,GACP,OAAO,EAAO,IAAO,WACnB,CAAE,SAAU,EAAO,GAAI,CACvB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,EAAE,CAEN,EAAU,GAAS,SAAW,GAC9B,EAAO,GAAS,MAAQ,UAExB,CAAC,EAAM,IAAA,EAAA,EAAA,cACP,OAAO,OAAW,IAAoB,EACnC,GAAS,EAAI,EACpB,CAEI,GAAA,EAAA,EAAA,QAAoB,EAAQ,CA0BlC,MAzBA,GAAW,QAAU,GAQrB,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAS,OAEV,IAAS,YAAW,OAAO,SAAS,KAAO,GAE/C,IAAM,MAAqB,CACzB,IAAM,EAAU,GAAS,CACzB,EAAQ,EAAQ,CAChB,EAAW,SAAS,WAAW,EAAQ,EAIzC,OADA,OAAO,iBAAiB,aAAc,EAAa,KACtC,CACX,OAAO,oBAAoB,aAAc,EAAa,GAEvD,CAAC,EAAS,EAAK,CAAC,CAEZ,CACL,MAAO,EACP,IAzBW,GAAkB,CAC7B,OAAO,SAAS,KAAO,EACvB,EAAQ,EAAM,CACd,EAAW,SAAS,WAAW,EAAM,EAuBtC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("react"),g=require("../useEvent/useEvent.cjs"),E=require("../useRefState/useRefState.cjs"),y=require("../../utils/helpers/isTarget.cjs"),w=(o,t)=>o.toLowerCase().split(/[+_,\-]/g).map(r=>r.trim()).every(r=>t.find(s=>r===s.code.toLocaleLowerCase()||r===s.key.toLocaleLowerCase()||r===s.alias.toLocaleLowerCase())),h=((...o)=>{const t=y.isTarget(o[0])?o[0]:void 0,r=t?o[1]:o[0],s=t?o[2]:o[1],d=t?o[3]:o[2],i=E.useRefState(window),n=L.useRef([]),u=d?.enabled??!0,a=g.useEvent(e=>{if(!u||n.current.some(({code:c})=>c===e.code))return;const f=d?.alias?.[e.key]??e.code,k=[...n.current,{key:e.key,code:e.code,alias:f}];n.current=k,r.split(",").map(c=>c.trim()).some(c=>w(c,k))&&(e.preventDefault(),s(e))}),l=g.useEvent(e=>{u&&(n.current=n.current.filter(({code:f})=>f!==e.code))});if(L.useEffect(()=>{if(n.current=[],!t&&!i.state&&!u)return;const e=t?y.isTarget.getElement(t):i.current;if(e)return e.addEventListener("keydown",a),e.addEventListener("keyup",l),()=>{e.removeEventListener("keydown",a),e.removeEventListener("keyup",l)}},[t&&y.isTarget.getRawElement(t),i.state,u,r,a,l]),!t)return i});exports.isHotkeyMatch=w;exports.useHotkeys=h;
2
- //# sourceMappingURL=useHotkeys.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`),n=require(`../useEvent/useEvent.cjs`);let r=require(`react`);var i=(e,t)=>e.toLowerCase().split(/[+_,\-]/g).map(e=>e.trim()).every(e=>t.find(t=>e===t.code.toLocaleLowerCase()||e===t.key.toLocaleLowerCase()||e===t.alias.toLocaleLowerCase())),a=((...a)=>{let o=e.isTarget(a[0])?a[0]:void 0,s=o?a[1]:a[0],c=o?a[2]:a[1],l=o?a[3]:a[2],u=t.useRefState(window),d=(0,r.useRef)([]),f=l?.enabled??!0,p=n.useEvent(e=>{if(!f||d.current.some(({code:t})=>t===e.code))return;let t=l?.alias?.[e.key]??e.code,n=[...d.current,{key:e.key,code:e.code,alias:t}];d.current=n,s.split(`,`).map(e=>e.trim()).some(e=>i(e,n))&&(e.preventDefault(),c(e))}),m=n.useEvent(e=>{f&&(d.current=d.current.filter(({code:t})=>t!==e.code))});if((0,r.useEffect)(()=>{if(d.current=[],!o&&!u.state&&!f)return;let t=o?e.isTarget.getElement(o):u.current;if(t)return t.addEventListener(`keydown`,p),t.addEventListener(`keyup`,m),()=>{t.removeEventListener(`keydown`,p),t.removeEventListener(`keyup`,m)}},[o&&e.isTarget.getRawElement(o),u.state,f,s,p,m]),!o)return u});exports.isHotkeyMatch=i,exports.useHotkeys=a;
2
+ //# sourceMappingURL=useHotkeys.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkeys.cjs","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport type { HookTarget } from '@/utils/helpers';\r\n\r\nimport { isTarget } from '@/utils/helpers';\r\n\r\nimport type { StateRef } from '../useRefState/useRefState';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\nimport { useRefState } from '../useRefState/useRefState';\r\n\r\n/** The use hotkeys params type */\r\nexport interface UseHotkeysOptions {\r\n /** Alias map for hotkeys */\r\n alias?: Record<string, string>;\r\n /** Enable or disable the event listeners */\r\n enabled?: boolean;\r\n}\r\n\r\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\r\n hotkey\r\n .toLowerCase()\r\n .split(/[+_,\\-]/g)\r\n .map((key) => key.trim())\r\n .every((key) =>\r\n keys.find(\r\n (updatedKey) =>\r\n key === updatedKey.code.toLocaleLowerCase() ||\r\n key === updatedKey.key.toLocaleLowerCase() ||\r\n key === updatedKey.alias.toLocaleLowerCase()\r\n )\r\n );\r\n\r\n/** The hotkeys string type */\r\nexport type UseHotkeysHotkeys = string;\r\n\r\n/** The hotkey key information */\r\nexport interface UseHotkeysKey {\r\n /** The alias for the key */\r\n alias: string;\r\n /** The key code */\r\n code: string;\r\n /** The key value */\r\n key: string;\r\n}\r\n\r\n/** The use hotkeys target type */\r\nexport type UseHotkeysTarget = Element | React.RefObject<Element | null | undefined>;\r\n\r\nexport interface UseHotkeys {\r\n (\r\n target: UseHotkeysTarget,\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions\r\n ): void;\r\n\r\n <Target extends Element>(\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions,\r\n target?: never\r\n ): StateRef<Target>;\r\n}\r\n\r\n/**\r\n * @name useHotkeys\r\n * @description - Hook that listens for hotkeys\r\n * @category Sensors\r\n * @usage medium\r\n *\r\n * @overload\r\n * @param {HookTarget} [target=window] The target element to attach the event listener to\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {void}\r\n *\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {StateRef<Target>} A reference to the target element\r\n *\r\n * @example\r\n * const ref = useHotkeys('ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * const ref = useHotkeys('ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n */\r\nexport const useHotkeys = ((...params: any[]) => {\r\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\r\n const hotkeys = (target ? params[1] : params[0]) as UseHotkeysHotkeys;\r\n const callback = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\r\n const options = (target ? params[3] : params[2]) as UseHotkeysOptions | undefined;\r\n\r\n const internalRef = useRefState(window);\r\n const keysRef = useRef<UseHotkeysKey[]>([]);\r\n const enabled = options?.enabled ?? true;\r\n\r\n const onKeyDown = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n\r\n if (keysRef.current.some(({ code }) => code === event.code)) return;\r\n\r\n const alias = options?.alias?.[event.key] ?? event.code;\r\n const updatedKeys = [...keysRef.current, { key: event.key, code: event.code, alias }];\r\n keysRef.current = updatedKeys;\r\n\r\n const hotkeysList = hotkeys.split(',').map((h) => h.trim());\r\n const isMatch = hotkeysList.some((hotkey) => isHotkeyMatch(hotkey, updatedKeys));\r\n if (!isMatch) return;\r\n event.preventDefault();\r\n callback(event);\r\n });\r\n\r\n const onKeyUp = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n keysRef.current = keysRef.current.filter(({ code }) => code !== event.code);\r\n });\r\n\r\n useEffect(() => {\r\n keysRef.current = [];\r\n if (!target && !internalRef.state && !enabled) return;\r\n\r\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\r\n if (!element) return;\r\n\r\n element.addEventListener('keydown', onKeyDown as EventListener);\r\n element.addEventListener('keyup', onKeyUp as EventListener);\r\n\r\n return () => {\r\n element.removeEventListener('keydown', onKeyDown as EventListener);\r\n element.removeEventListener('keyup', onKeyUp as EventListener);\r\n };\r\n }, [\r\n target && isTarget.getRawElement(target),\r\n internalRef.state,\r\n enabled,\r\n hotkeys,\r\n onKeyDown,\r\n onKeyUp\r\n ]);\r\n\r\n if (target) return;\r\n return internalRef;\r\n}) as UseHotkeys;\r\n"],"names":["isHotkeyMatch","hotkey","keys","key","updatedKey","useHotkeys","params","target","isTarget","hotkeys","callback","options","internalRef","useRefState","keysRef","useRef","enabled","onKeyDown","useEvent","event","code","alias","updatedKeys","h","onKeyUp","useEffect","element"],"mappings":"yOAmBaA,EAAgB,CAACC,EAAgBC,IAC5CD,EACG,cACA,MAAM,UAAU,EAChB,IAAKE,GAAQA,EAAI,KAAA,CAAM,EACvB,MAAOA,GACND,EAAK,KACFE,GACCD,IAAQC,EAAW,KAAK,kBAAA,GACxBD,IAAQC,EAAW,IAAI,kBAAA,GACvBD,IAAQC,EAAW,MAAM,kBAAA,CAAkB,CAEjD,EAkESC,GAAc,IAAIC,IAAkB,CAC/C,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAWF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACxCI,EAAYH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCK,EAAWJ,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExCM,EAAcC,EAAAA,YAAY,MAAM,EAChCC,EAAUC,EAAAA,OAAwB,EAAE,EACpCC,EAAUL,GAAS,SAAW,GAE9BM,EAAYC,WAAUC,GAAyB,CAGnD,GAFI,CAACH,GAEDF,EAAQ,QAAQ,KAAK,CAAC,CAAE,KAAAM,KAAWA,IAASD,EAAM,IAAI,EAAG,OAE7D,MAAME,EAAQV,GAAS,QAAQQ,EAAM,GAAG,GAAKA,EAAM,KAC7CG,EAAc,CAAC,GAAGR,EAAQ,QAAS,CAAE,IAAKK,EAAM,IAAK,KAAMA,EAAM,KAAM,MAAAE,EAAO,EACpFP,EAAQ,QAAUQ,EAEEb,EAAQ,MAAM,GAAG,EAAE,IAAKc,GAAMA,EAAE,MAAM,EAC9B,KAAMtB,GAAWD,EAAcC,EAAQqB,CAAW,CAAC,IAE/EH,EAAM,eAAA,EACNT,EAASS,CAAK,EAAA,CACf,EAEKK,EAAUN,WAAUC,GAAyB,CAC5CH,IACLF,EAAQ,QAAUA,EAAQ,QAAQ,OAAO,CAAC,CAAE,KAAAM,KAAWA,IAASD,EAAM,IAAI,EAAA,CAC3E,EAyBD,GAvBAM,EAAAA,UAAU,IAAM,CAEd,GADAX,EAAQ,QAAU,CAAA,EACd,CAACP,GAAU,CAACK,EAAY,OAAS,CAACI,EAAS,OAE/C,MAAMU,EAAWnB,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIK,EAAY,QACpE,GAAKc,EAEL,OAAAA,EAAQ,iBAAiB,UAAWT,CAA0B,EAC9DS,EAAQ,iBAAiB,QAASF,CAAwB,EAEnD,IAAM,CACXE,EAAQ,oBAAoB,UAAWT,CAA0B,EACjES,EAAQ,oBAAoB,QAASF,CAAwB,CAAA,CAC/D,EACC,CACDjB,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCK,EAAY,MACZI,EACAP,EACAQ,EACAO,CAAA,CACD,EAEG,CAAAjB,EACJ,OAAOK,CACT"}
1
+ {"version":3,"file":"useHotkeys.cjs","names":[],"sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport type { HookTarget } from '@/utils/helpers';\r\n\r\nimport { isTarget } from '@/utils/helpers';\r\n\r\nimport type { StateRef } from '../useRefState/useRefState';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\nimport { useRefState } from '../useRefState/useRefState';\r\n\r\n/** The use hotkeys params type */\r\nexport interface UseHotkeysOptions {\r\n /** Alias map for hotkeys */\r\n alias?: Record<string, string>;\r\n /** Enable or disable the event listeners */\r\n enabled?: boolean;\r\n}\r\n\r\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\r\n hotkey\r\n .toLowerCase()\r\n .split(/[+_,\\-]/g)\r\n .map((key) => key.trim())\r\n .every((key) =>\r\n keys.find(\r\n (updatedKey) =>\r\n key === updatedKey.code.toLocaleLowerCase() ||\r\n key === updatedKey.key.toLocaleLowerCase() ||\r\n key === updatedKey.alias.toLocaleLowerCase()\r\n )\r\n );\r\n\r\n/** The hotkeys string type */\r\nexport type UseHotkeysHotkeys = string;\r\n\r\n/** The hotkey key information */\r\nexport interface UseHotkeysKey {\r\n /** The alias for the key */\r\n alias: string;\r\n /** The key code */\r\n code: string;\r\n /** The key value */\r\n key: string;\r\n}\r\n\r\n/** The use hotkeys target type */\r\nexport type UseHotkeysTarget = Element | React.RefObject<Element | null | undefined>;\r\n\r\nexport interface UseHotkeys {\r\n (\r\n target: UseHotkeysTarget,\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions\r\n ): void;\r\n\r\n <Target extends Element>(\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions,\r\n target?: never\r\n ): StateRef<Target>;\r\n}\r\n\r\n/**\r\n * @name useHotkeys\r\n * @description - Hook that listens for hotkeys\r\n * @category Sensors\r\n * @usage medium\r\n *\r\n * @overload\r\n * @param {HookTarget} [target=window] The target element to attach the event listener to\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {void}\r\n *\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {StateRef<Target>} A reference to the target element\r\n *\r\n * @example\r\n * const ref = useHotkeys('ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * const ref = useHotkeys('ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n */\r\nexport const useHotkeys = ((...params: any[]) => {\r\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\r\n const hotkeys = (target ? params[1] : params[0]) as UseHotkeysHotkeys;\r\n const callback = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\r\n const options = (target ? params[3] : params[2]) as UseHotkeysOptions | undefined;\r\n\r\n const internalRef = useRefState(window);\r\n const keysRef = useRef<UseHotkeysKey[]>([]);\r\n const enabled = options?.enabled ?? true;\r\n\r\n const onKeyDown = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n\r\n if (keysRef.current.some(({ code }) => code === event.code)) return;\r\n\r\n const alias = options?.alias?.[event.key] ?? event.code;\r\n const updatedKeys = [...keysRef.current, { key: event.key, code: event.code, alias }];\r\n keysRef.current = updatedKeys;\r\n\r\n const hotkeysList = hotkeys.split(',').map((h) => h.trim());\r\n const isMatch = hotkeysList.some((hotkey) => isHotkeyMatch(hotkey, updatedKeys));\r\n if (!isMatch) return;\r\n event.preventDefault();\r\n callback(event);\r\n });\r\n\r\n const onKeyUp = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n keysRef.current = keysRef.current.filter(({ code }) => code !== event.code);\r\n });\r\n\r\n useEffect(() => {\r\n keysRef.current = [];\r\n if (!target && !internalRef.state && !enabled) return;\r\n\r\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\r\n if (!element) return;\r\n\r\n element.addEventListener('keydown', onKeyDown as EventListener);\r\n element.addEventListener('keyup', onKeyUp as EventListener);\r\n\r\n return () => {\r\n element.removeEventListener('keydown', onKeyDown as EventListener);\r\n element.removeEventListener('keyup', onKeyUp as EventListener);\r\n };\r\n }, [\r\n target && isTarget.getRawElement(target),\r\n internalRef.state,\r\n enabled,\r\n hotkeys,\r\n onKeyDown,\r\n onKeyUp\r\n ]);\r\n\r\n if (target) return;\r\n return internalRef;\r\n}) as UseHotkeys;\r\n"],"mappings":"6MAmBA,IAAa,GAAiB,EAAgB,IAC5C,EACG,aAAa,CACb,MAAM,WAAW,CACjB,IAAK,GAAQ,EAAI,MAAM,CAAC,CACxB,MAAO,GACN,EAAK,KACF,GACC,IAAQ,EAAW,KAAK,mBAAmB,EAC3C,IAAQ,EAAW,IAAI,mBAAmB,EAC1C,IAAQ,EAAW,MAAM,mBAAmB,CAC/C,CACF,CAkEQ,IAAe,GAAG,IAAkB,CAC/C,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAW,EAAS,EAAO,GAAK,EAAO,GACvC,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,EAAc,EAAA,YAAY,OAAO,CACjC,GAAA,EAAA,EAAA,QAAkC,EAAE,CAAC,CACrC,EAAU,GAAS,SAAW,GAE9B,EAAY,EAAA,SAAU,GAAyB,CAGnD,GAFI,CAAC,GAED,EAAQ,QAAQ,MAAM,CAAE,UAAW,IAAS,EAAM,KAAK,CAAE,OAE7D,IAAM,EAAQ,GAAS,QAAQ,EAAM,MAAQ,EAAM,KAC7C,EAAc,CAAC,GAAG,EAAQ,QAAS,CAAE,IAAK,EAAM,IAAK,KAAM,EAAM,KAAM,QAAO,CAAC,CACrF,EAAQ,QAAU,EAEE,EAAQ,MAAM,IAAI,CAAC,IAAK,GAAM,EAAE,MAAM,CAAC,CAC/B,KAAM,GAAW,EAAc,EAAQ,EAAY,CAAC,GAEhF,EAAM,gBAAgB,CACtB,EAAS,EAAM,GACf,CAEI,EAAU,EAAA,SAAU,GAAyB,CAC5C,IACL,EAAQ,QAAU,EAAQ,QAAQ,QAAQ,CAAE,UAAW,IAAS,EAAM,KAAK,GAC3E,CAEF,IAAA,EAAA,EAAA,eAAgB,CAEd,GADA,EAAQ,QAAU,EAAE,CAChB,CAAC,GAAU,CAAC,EAAY,OAAS,CAAC,EAAS,OAE/C,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAC/D,KAKL,OAHA,EAAQ,iBAAiB,UAAW,EAA2B,CAC/D,EAAQ,iBAAiB,QAAS,EAAyB,KAE9C,CACX,EAAQ,oBAAoB,UAAW,EAA2B,CAClE,EAAQ,oBAAoB,QAAS,EAAyB,GAE/D,CACD,GAAU,EAAA,SAAS,cAAc,EAAO,CACxC,EAAY,MACZ,EACA,EACA,EACA,EACD,CAAC,CAEE,GACJ,OAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),E=require("../useRefState/useRefState.cjs"),c=require("../../utils/helpers/isTarget.cjs"),d=((...e)=>{const t=c.isTarget(e[0])?e[0]:void 0,o=t?typeof e[1]=="object"?e[1]:{onEntry:e[1]}:typeof e[0]=="object"?e[0]:{onEntry:e[0]},v=o?.enabled??!0,[f,l]=i.useState(!1),r=E.useRefState(),s=i.useRef(o);return s.current=o,i.useEffect(()=>{if(!v||!t&&!r.state)return;const n=t?c.isTarget.getElement(t):r.current;if(!n)return;const a=u=>{s.current?.onEntry?.(u),l(!0)},g=u=>{s.current?.onLeave?.(u),l(!1)};return n.addEventListener("mouseenter",a),n.addEventListener("mouseleave",g),()=>{n.removeEventListener("mouseenter",a),n.removeEventListener("mouseleave",g)}},[v,t&&c.isTarget.getRawElement(t),r.state]),t?{value:f}:{ref:r,value:f}});exports.useHover=d;
2
- //# sourceMappingURL=useHover.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?typeof r[1]==`object`?r[1]:{onEntry:r[1]}:typeof r[0]==`object`?r[0]:{onEntry:r[0]},o=a?.enabled??!0,[s,c]=(0,n.useState)(!1),l=t.useRefState(),u=(0,n.useRef)(a);return u.current=a,(0,n.useEffect)(()=>{if(!o||!i&&!l.state)return;let t=i?e.isTarget.getElement(i):l.current;if(!t)return;let n=e=>{u.current?.onEntry?.(e),c(!0)},r=e=>{u.current?.onLeave?.(e),c(!1)};return t.addEventListener(`mouseenter`,n),t.addEventListener(`mouseleave`,r),()=>{t.removeEventListener(`mouseenter`,n),t.removeEventListener(`mouseleave`,r)}},[o,i&&e.isTarget.getRawElement(i),l.state]),i?{value:s}:{ref:l,value:s}});exports.useHover=r;
2
+ //# sourceMappingURL=useHover.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHover.cjs","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\n/** The use hover return type */\nexport interface UseHoverReturn {\n /** The value of the hover */\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): UseHoverReturn;\n\n (target: HookTarget, options?: UseHoverOptions): UseHoverReturn;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} 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 value of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} 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 value 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 {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = 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 {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | 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 enabled = options?.enabled ?? true;\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 (!enabled || (!target && !internalRef.state)) return;\n\n const element = (target ? isTarget.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 }, [enabled, target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { value: hovering };\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"names":["useHover","params","target","isTarget","options","enabled","hovering","setHovering","useState","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","onMouseEnter","event","onMouseLeave"],"mappings":"mMAkFaA,GAAY,IAAIC,IAAkB,CAC7C,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,QAASA,EAAO,CAAC,CAAA,EACrB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,QAASA,EAAO,CAAC,CAAA,EAGrBI,EAAUD,GAAS,SAAW,GAE9B,CAACE,EAAUC,CAAW,EAAIC,EAAAA,SAAS,EAAK,EACxCC,EAAcC,EAAAA,YAAA,EACdC,EAAqBC,EAAAA,OAAOR,CAAO,EA6BzC,OA5BAO,EAAmB,QAAUP,EAE7BS,EAAAA,UAAU,IAAM,CACd,GAAI,CAACR,GAAY,CAACH,GAAU,CAACO,EAAY,MAAQ,OAEjD,MAAMK,EAAWZ,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIO,EAAY,QAEpE,GAAI,CAACK,EAAS,OAEd,MAAMC,EAAgBC,GAAiB,CACrCL,EAAmB,SAAS,UAAUK,CAAK,EAC3CT,EAAY,EAAI,CAAA,EAGZU,EAAgBD,GAAiB,CACrCL,EAAmB,SAAS,UAAUK,CAAK,EAC3CT,EAAY,EAAK,CAAA,EAGnB,OAAAO,EAAQ,iBAAiB,aAAcC,CAAY,EACnDD,EAAQ,iBAAiB,aAAcG,CAAY,EAE5C,IAAM,CACXH,EAAQ,oBAAoB,aAAcC,CAAY,EACtDD,EAAQ,oBAAoB,aAAcG,CAAY,CAAA,CACxD,EACC,CAACZ,EAASH,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EAAGO,EAAY,KAAK,CAAC,EAErEP,EAAe,CAAE,MAAOI,CAAA,EACrB,CACL,IAAKG,EACL,MAAOH,CAAA,CAEX"}
1
+ {"version":3,"file":"useHover.cjs","names":[],"sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\n/** The use hover return type */\nexport interface UseHoverReturn {\n /** The value of the hover */\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): UseHoverReturn;\n\n (target: HookTarget, options?: UseHoverOptions): UseHoverReturn;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} 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 value of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} 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 value 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 {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = 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 {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | 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 enabled = options?.enabled ?? true;\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 (!enabled || (!target && !internalRef.state)) return;\n\n const element = (target ? isTarget.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 }, [enabled, target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { value: hovering };\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"mappings":"uKAkFA,IAAa,IAAa,GAAG,IAAkB,CAC7C,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAE5C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,QAAS,EAAO,GAAI,CACxB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,QAAS,EAAO,GAAI,CAGxB,EAAU,GAAS,SAAW,GAE9B,CAAC,EAAU,IAAA,EAAA,EAAA,UAAwB,GAAM,CACzC,EAAc,EAAA,aAAsB,CACpC,GAAA,EAAA,EAAA,QAA4B,EAAQ,CA8B1C,MA7BA,GAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAY,CAAC,GAAU,CAAC,EAAY,MAAQ,OAEjD,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAEpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAgB,GAAiB,CACrC,EAAmB,SAAS,UAAU,EAAM,CAC5C,EAAY,GAAK,EAGb,EAAgB,GAAiB,CACrC,EAAmB,SAAS,UAAU,EAAM,CAC5C,EAAY,GAAM,EAMpB,OAHA,EAAQ,iBAAiB,aAAc,EAAa,CACpD,EAAQ,iBAAiB,aAAc,EAAa,KAEvC,CACX,EAAQ,oBAAoB,aAAc,EAAa,CACvD,EAAQ,oBAAoB,aAAc,EAAa,GAExD,CAAC,EAAS,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAEtE,EAAe,CAAE,MAAO,EAAU,CAC/B,CACL,IAAK,EACL,MAAO,EACR"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),m=require("../../utils/helpers/throttle.cjs"),h=["mousemove","mousedown","keydown","touchstart","wheel","resize"],v=6e4,w=(t=v,{initialValue:a=!1,events:o=h}={})=>{const[d,r]=s.useState(a),[l,E]=s.useState(Date.now());return s.useEffect(()=>{let e;const c=()=>r(!0),n=m.throttle(()=>{r(!1),E(Date.now()),clearTimeout(e),e=setTimeout(c,t)},500),u=()=>{document.hidden||n()};return e=setTimeout(c,t),o.forEach(i=>window.addEventListener(i,n)),document.addEventListener("visibilitychange",u),()=>{o.forEach(i=>window.addEventListener(i,n)),document.removeEventListener("visibilitychange",u),clearTimeout(e)}},[t,o]),{idle:d,lastActive:l}};exports.useIdle=w;
2
- //# sourceMappingURL=useIdle.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/throttle.cjs`);let t=require(`react`);var n=[`mousemove`,`mousedown`,`keydown`,`touchstart`,`wheel`,`resize`],r=6e4,i=(i=r,{initialValue:a=!1,events:o=n}={})=>{let[s,c]=(0,t.useState)(a),[l,u]=(0,t.useState)(Date.now());return(0,t.useEffect)(()=>{let t,n=()=>c(!0),r=e.throttle(()=>{c(!1),u(Date.now()),clearTimeout(t),t=setTimeout(n,i)},500),a=()=>{document.hidden||r()};return t=setTimeout(n,i),o.forEach(e=>window.addEventListener(e,r)),document.addEventListener(`visibilitychange`,a),()=>{o.forEach(e=>window.addEventListener(e,r)),document.removeEventListener(`visibilitychange`,a),clearTimeout(t)}},[i,o]),{idle:s,lastActive:l}};exports.useIdle=i;
2
+ //# sourceMappingURL=useIdle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIdle.cjs","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 * @usage low\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","ONE_MINUTE","useIdle","milliseconds","initialValue","events","idle","setIdle","useState","lastActive","setLastActive","useEffect","timeoutId","onTimeout","onEvent","throttle","onVisibilitychange","event"],"mappings":"uJAYMA,EAAc,CAClB,YACA,YACA,UACA,aACA,QACA,QACF,EACMC,EAAa,IAwBNC,EAAU,CACrBC,EAAeF,EACf,CAAE,aAAAG,EAAe,GAAO,OAAAC,EAASL,CAAA,EAAgC,KAC/C,CAClB,KAAM,CAACM,EAAMC,CAAO,EAAIC,EAAAA,SAASJ,CAAY,EACvC,CAACK,EAAYC,CAAa,EAAIF,EAAAA,SAAS,KAAK,KAAK,EAEvDG,OAAAA,EAAAA,UAAU,IAAM,CACd,IAAIC,EACJ,MAAMC,EAAY,IAAMN,EAAQ,EAAI,EAE9BO,EAAUC,EAAAA,SAAS,IAAM,CAC7BR,EAAQ,EAAK,EACbG,EAAc,KAAK,KAAK,EACxB,aAAaE,CAAS,EACtBA,EAAY,WAAWC,EAAWV,CAAY,CAAA,EAC7C,GAAG,EAEAa,EAAqB,IAAM,CAC1B,SAAS,QAAQF,EAAA,CAAQ,EAGhC,OAAAF,EAAY,WAAWC,EAAWV,CAAY,EAE9CE,EAAO,QAASY,GAAU,OAAO,iBAAiBA,EAAOH,CAAO,CAAC,EACjE,SAAS,iBAAiB,mBAAoBE,CAAkB,EAEzD,IAAM,CACXX,EAAO,QAASY,GAAU,OAAO,iBAAiBA,EAAOH,CAAO,CAAC,EACjE,SAAS,oBAAoB,mBAAoBE,CAAkB,EACnE,aAAaJ,CAAS,CAAA,CACxB,EACC,CAACT,EAAcE,CAAM,CAAC,EAElB,CAAE,KAAAC,EAAM,WAAAG,CAAA,CACjB"}
1
+ {"version":3,"file":"useIdle.cjs","names":[],"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 * @usage low\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"],"mappings":"2HAYA,IAAM,EAAc,CAClB,YACA,YACA,UACA,aACA,QACA,SACD,CACK,EAAa,IAwBN,GACX,EAAe,EACf,CAAE,eAAe,GAAO,SAAS,GAAgC,EAAE,GACjD,CAClB,GAAM,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAa,CACxC,CAAC,EAAY,IAAA,EAAA,EAAA,UAA0B,KAAK,KAAK,CAAC,CA6BxD,OA3BA,EAAA,EAAA,eAAgB,CACd,IAAI,EACE,MAAkB,EAAQ,GAAK,CAE/B,EAAU,EAAA,aAAe,CAC7B,EAAQ,GAAM,CACd,EAAc,KAAK,KAAK,CAAC,CACzB,aAAa,EAAU,CACvB,EAAY,WAAW,EAAW,EAAa,EAC9C,IAAI,CAED,MAA2B,CAC1B,SAAS,QAAQ,GAAS,EAQjC,MALA,GAAY,WAAW,EAAW,EAAa,CAE/C,EAAO,QAAS,GAAU,OAAO,iBAAiB,EAAO,EAAQ,CAAC,CAClE,SAAS,iBAAiB,mBAAoB,EAAmB,KAEpD,CACX,EAAO,QAAS,GAAU,OAAO,iBAAiB,EAAO,EAAQ,CAAC,CAClE,SAAS,oBAAoB,mBAAoB,EAAmB,CACpE,aAAa,EAAU,GAExB,CAAC,EAAc,EAAO,CAAC,CAEnB,CAAE,OAAM,aAAY"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("../useQuery/useQuery.cjs"),t=async(s,e={})=>new Promise((o,f)=>{const r=new Image,{srcset:c,sizes:a,class:l,loading:i,crossorigin:g,referrerPolicy:n}=e;r.src=s,c&&(r.srcset=c),a&&(r.sizes=a),l&&(r.className=l),i&&(r.loading=i),g&&(r.crossOrigin=g),n&&(r.referrerPolicy=n),r.onload=()=>o(r),r.onerror=f}),u=(s,e)=>y.useQuery(()=>t(s,{alt:e?.alt,class:e?.class,crossorigin:e?.crossorigin,loading:e?.loading,referrerPolicy:e?.referrerPolicy,sizes:e?.sizes,srcset:e?.srcset}),{keys:[s,...e?.keys??[]],onSuccess:e?.onSuccess,onError:e?.onError,refetchInterval:e?.refetchInterval,retry:e?.retry});exports.useImage=u;
2
- //# sourceMappingURL=useImage.cjs.map
1
+ const e=require(`../useQuery/useQuery.cjs`);var t=async(e,t={})=>new Promise((n,r)=>{let i=new Image,{srcset:a,sizes:o,class:s,loading:c,crossorigin:l,referrerPolicy:u}=t;i.src=e,a&&(i.srcset=a),o&&(i.sizes=o),s&&(i.className=s),c&&(i.loading=c),l&&(i.crossOrigin=l),u&&(i.referrerPolicy=u),i.onload=()=>n(i),i.onerror=r}),n=(n,r)=>e.useQuery(()=>t(n,{alt:r?.alt,class:r?.class,crossorigin:r?.crossorigin,loading:r?.loading,referrerPolicy:r?.referrerPolicy,sizes:r?.sizes,srcset:r?.srcset}),{keys:[n,...r?.keys??[]],onSuccess:r?.onSuccess,onError:r?.onError,refetchInterval:r?.refetchInterval,retry:r?.retry});exports.useImage=n;
2
+ //# sourceMappingURL=useImage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useImage.cjs","sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\r\n\r\nimport { useQuery } from '../useQuery/useQuery';\r\n\r\n/** The use image options */\r\nexport interface UseImageOptions {\r\n /** The alt of the image */\r\n alt?: string;\r\n /** The class of the image */\r\n class?: string;\r\n /** The crossorigin of the image */\r\n crossorigin?: string;\r\n /** The loading of the image */\r\n loading?: HTMLImageElement['loading'];\r\n /** The referrer policy of the image */\r\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\r\n /** The sizes of the image */\r\n sizes?: string;\r\n /** The srcset of the image */\r\n srcset?: string;\r\n}\r\n\r\n/** The use image return type */\r\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\r\n\r\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\r\n new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\r\n\r\n img.src = src;\r\n if (srcset) img.srcset = srcset;\r\n if (sizes) img.sizes = sizes;\r\n if (className) img.className = className;\r\n if (loading) img.loading = loading;\r\n if (crossorigin) img.crossOrigin = crossorigin;\r\n\r\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\r\n\r\n img.onload = () => resolve(img);\r\n img.onerror = reject;\r\n });\r\n\r\n/**\r\n * @name useImage\r\n * @description - Hook that load an image in the browser\r\n * @category Elements\r\n * @usage low\r\n *\r\n * @param {string} src The source of the image\r\n * @param {string} [options.srcset] The srcset of the image\r\n * @param {string} [options.sizes] The sizes of the image\r\n * @param {string} [options.alt] The alt of the image\r\n * @param {string} [options.class] The class of the image\r\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\r\n * @param {string} [options.crossorigin] The crossorigin of the image\r\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\r\n * @param {DependencyList} [options.keys] The dependencies for the hook\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @param {number} [options.refetchInterval] The refetch interval\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @returns {UseImageReturn} An object with the state of the image\r\n *\r\n * @example\r\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\r\n */\r\nexport const useImage = (\r\n src: string,\r\n options?: UseImageOptions &\r\n Omit<\r\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\r\n 'initialData' | 'placeholderData' | 'select'\r\n >\r\n) =>\r\n useQuery(\r\n () =>\r\n loadImage(src, {\r\n alt: options?.alt,\r\n class: options?.class,\r\n crossorigin: options?.crossorigin,\r\n loading: options?.loading,\r\n referrerPolicy: options?.referrerPolicy,\r\n sizes: options?.sizes,\r\n srcset: options?.srcset\r\n }),\r\n {\r\n keys: [src, ...(options?.keys ?? [])],\r\n onSuccess: options?.onSuccess,\r\n onError: options?.onError,\r\n refetchInterval: options?.refetchInterval,\r\n retry: options?.retry\r\n }\r\n );\r\n"],"names":["loadImage","src","options","resolve","reject","img","srcset","sizes","className","loading","crossorigin","referrerPolicy","useImage","useQuery"],"mappings":"4HAyBMA,EAAY,MAAOC,EAAaC,EAA2B,CAAA,IAC/D,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,MAAMC,EAAM,IAAI,MACV,CAAE,OAAAC,EAAQ,MAAAC,EAAO,MAAOC,EAAW,QAAAC,EAAS,YAAAC,EAAa,eAAAC,GAAmBT,EAElFG,EAAI,IAAMJ,EACNK,MAAY,OAASA,GACrBC,MAAW,MAAQA,GACnBC,MAAe,UAAYA,GAC3BC,MAAa,QAAUA,GACvBC,MAAiB,YAAcA,GAE/BC,MAAoB,eAAiBA,GAEzCN,EAAI,OAAS,IAAMF,EAAQE,CAAG,EAC9BA,EAAI,QAAUD,CAChB,CAAC,EA0BUQ,EAAW,CACtBX,EACAC,IAMAW,EAAAA,SACE,IACEb,EAAUC,EAAK,CACb,IAAKC,GAAS,IACd,MAAOA,GAAS,MAChB,YAAaA,GAAS,YACtB,QAASA,GAAS,QAClB,eAAgBA,GAAS,eACzB,MAAOA,GAAS,MAChB,OAAQA,GAAS,MAAA,CAClB,EACH,CACE,KAAM,CAACD,EAAK,GAAIC,GAAS,MAAQ,CAAA,CAAG,EACpC,UAAWA,GAAS,UACpB,QAASA,GAAS,QAClB,gBAAiBA,GAAS,gBAC1B,MAAOA,GAAS,KAAA,CAEpB"}
1
+ {"version":3,"file":"useImage.cjs","names":[],"sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\r\n\r\nimport { useQuery } from '../useQuery/useQuery';\r\n\r\n/** The use image options */\r\nexport interface UseImageOptions {\r\n /** The alt of the image */\r\n alt?: string;\r\n /** The class of the image */\r\n class?: string;\r\n /** The crossorigin of the image */\r\n crossorigin?: string;\r\n /** The loading of the image */\r\n loading?: HTMLImageElement['loading'];\r\n /** The referrer policy of the image */\r\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\r\n /** The sizes of the image */\r\n sizes?: string;\r\n /** The srcset of the image */\r\n srcset?: string;\r\n}\r\n\r\n/** The use image return type */\r\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\r\n\r\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\r\n new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\r\n\r\n img.src = src;\r\n if (srcset) img.srcset = srcset;\r\n if (sizes) img.sizes = sizes;\r\n if (className) img.className = className;\r\n if (loading) img.loading = loading;\r\n if (crossorigin) img.crossOrigin = crossorigin;\r\n\r\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\r\n\r\n img.onload = () => resolve(img);\r\n img.onerror = reject;\r\n });\r\n\r\n/**\r\n * @name useImage\r\n * @description - Hook that load an image in the browser\r\n * @category Elements\r\n * @usage low\r\n *\r\n * @param {string} src The source of the image\r\n * @param {string} [options.srcset] The srcset of the image\r\n * @param {string} [options.sizes] The sizes of the image\r\n * @param {string} [options.alt] The alt of the image\r\n * @param {string} [options.class] The class of the image\r\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\r\n * @param {string} [options.crossorigin] The crossorigin of the image\r\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\r\n * @param {DependencyList} [options.keys] The dependencies for the hook\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @param {number} [options.refetchInterval] The refetch interval\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @returns {UseImageReturn} An object with the state of the image\r\n *\r\n * @example\r\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\r\n */\r\nexport const useImage = (\r\n src: string,\r\n options?: UseImageOptions &\r\n Omit<\r\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\r\n 'initialData' | 'placeholderData' | 'select'\r\n >\r\n) =>\r\n useQuery(\r\n () =>\r\n loadImage(src, {\r\n alt: options?.alt,\r\n class: options?.class,\r\n crossorigin: options?.crossorigin,\r\n loading: options?.loading,\r\n referrerPolicy: options?.referrerPolicy,\r\n sizes: options?.sizes,\r\n srcset: options?.srcset\r\n }),\r\n {\r\n keys: [src, ...(options?.keys ?? [])],\r\n onSuccess: options?.onSuccess,\r\n onError: options?.onError,\r\n refetchInterval: options?.refetchInterval,\r\n retry: options?.retry\r\n }\r\n );\r\n"],"mappings":"4CAyBA,IAAM,EAAY,MAAO,EAAa,EAA2B,EAAE,GACjE,IAAI,SAAS,EAAS,IAAW,CAC/B,IAAM,EAAM,IAAI,MACV,CAAE,SAAQ,QAAO,MAAO,EAAW,UAAS,cAAa,kBAAmB,EAElF,EAAI,IAAM,EACN,IAAQ,EAAI,OAAS,GACrB,IAAO,EAAI,MAAQ,GACnB,IAAW,EAAI,UAAY,GAC3B,IAAS,EAAI,QAAU,GACvB,IAAa,EAAI,YAAc,GAE/B,IAAgB,EAAI,eAAiB,GAEzC,EAAI,WAAe,EAAQ,EAAI,CAC/B,EAAI,QAAU,GACd,CA0BS,GACX,EACA,IAMA,EAAA,aAEI,EAAU,EAAK,CACb,IAAK,GAAS,IACd,MAAO,GAAS,MAChB,YAAa,GAAS,YACtB,QAAS,GAAS,QAClB,eAAgB,GAAS,eACzB,MAAO,GAAS,MAChB,OAAQ,GAAS,OAClB,CAAC,CACJ,CACE,KAAM,CAAC,EAAK,GAAI,GAAS,MAAQ,EAAE,CAAE,CACrC,UAAW,GAAS,UACpB,QAAS,GAAS,QAClB,gBAAiB,GAAS,gBAC1B,MAAO,GAAS,MACjB,CACF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),y=require("../useRefState/useRefState.cjs"),c=require("../../utils/helpers/isTarget.cjs"),I=((...e)=>{const t=c.isTarget(e[0])?e[0]:void 0,i=t?e[1]:e[0],l=t?e[2]:e[1],a=l?.direction??"bottom",u=l?.distance??10,[n,f]=o.useState(!1),r=y.useRefState(),d=o.useRef(i);d.current=i;const g=o.useRef(n);return g.current=n,o.useEffect(()=>{if(!t&&!r.state)return;const s=t?c.isTarget.getElement(t):r.current;if(!s)return;const R=async S=>{if(g.current)return;const{clientHeight:L,scrollHeight:T,scrollTop:b,clientWidth:E,scrollWidth:v,scrollLeft:h}=S.target,m=T-(b+L),q=v-(h+E);({bottom:m,top:b,right:q,left:h})[a]<=u&&(f(!0),await d.current(S),f(!1))};return s.addEventListener("scroll",R),()=>{s.removeEventListener("scroll",R)}},[t&&c.isTarget.getRawElement(t),r.state,a,u]),t?{loading:n}:{ref:r,loading:n}});exports.useInfiniteScroll=I;
2
- //# sourceMappingURL=useInfiniteScroll.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?r[1]:r[0],o=i?r[2]:r[1],s=o?.direction??`bottom`,c=o?.distance??10,[l,u]=(0,n.useState)(!1),d=t.useRefState(),f=(0,n.useRef)(a);f.current=a;let p=(0,n.useRef)(l);return p.current=l,(0,n.useEffect)(()=>{if(!i&&!d.state)return;let t=i?e.isTarget.getElement(i):d.current;if(!t)return;let n=async e=>{if(p.current)return;let{clientHeight:t,scrollHeight:n,scrollTop:r,clientWidth:i,scrollWidth:a,scrollLeft:o}=e.target;({bottom:n-(r+t),top:r,right:a-(o+i),left:o})[s]<=c&&(u(!0),await f.current(e),u(!1))};return t.addEventListener(`scroll`,n),()=>{t.removeEventListener(`scroll`,n)}},[i&&e.isTarget.getRawElement(i),d.state,s,c]),i?{loading:l}:{ref:d,loading:l}});exports.useInfiniteScroll=r;
2
+ //# sourceMappingURL=useInfiniteScroll.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteScroll.cjs","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\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\n/** The use infinite scroll return type */\nexport interface UseInfiniteScrollReturn {\n /** The loading state of the infinite scroll */\n loading: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): UseInfiniteScrollReturn;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): UseInfiniteScrollReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n * @usage medium\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 {UseInfiniteScrollReturn & { ref: StateRef<Target> }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @param {HookTarget} 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 {UseInfiniteScrollReturn} An object containing the ref and loading\n *\n * @example\n * const { loading } = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: Event) => void;\n const options = (target ? params[2] : params[1]) as UseInfiniteScrollOptions | undefined;\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 const internalLoadingRef = useRef(loading);\n internalLoadingRef.current = loading;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onLoadMore = async (event: Event) => {\n if (internalLoadingRef.current) return;\n\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 element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, direction, distance]);\n\n if (target) return { loading };\n return {\n ref: internalRef,\n loading\n };\n}) as UseInfiniteScroll;\n"],"names":["useInfiniteScroll","params","target","isTarget","callback","options","direction","distance","loading","setIsLoading","useState","internalRef","useRefState","internalCallbackRef","useRef","internalLoadingRef","useEffect","element","onLoadMore","event","clientHeight","scrollHeight","scrollTop","clientWidth","scrollWidth","scrollLeft","scrollBottom","scrollRight"],"mappings":"mMAkEaA,GAAqB,IAAIC,IAAkB,CACtD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAYF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCI,EAAWH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExCK,EAAYD,GAAS,WAAa,SAClCE,EAAWF,GAAS,UAAY,GAEhC,CAACG,EAASC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAExCC,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOV,CAAQ,EAC3CS,EAAoB,QAAUT,EAC9B,MAAMW,EAAqBD,EAAAA,OAAON,CAAO,EAqCzC,OApCAO,EAAmB,QAAUP,EAE7BQ,EAAAA,UAAU,IAAM,CACd,GAAI,CAACd,GAAU,CAACS,EAAY,MAAO,OACnC,MAAMM,EAAWf,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIS,EAAY,QACpE,GAAI,CAACM,EAAS,OAEd,MAAMC,EAAa,MAAOC,GAAiB,CACzC,GAAIJ,EAAmB,QAAS,OAEhC,KAAM,CAAE,aAAAK,EAAc,aAAAC,EAAc,UAAAC,EAAW,YAAAC,EAAa,YAAAC,EAAa,WAAAC,GACvEN,EAAM,OACFO,EAAeL,GAAgBC,EAAYF,GAC3CO,EAAcH,GAAeC,EAAaF,IAE9B,CAChB,OAAQG,EACR,IAAKJ,EACL,MAAOK,EACP,KAAMF,CAAA,GAGMnB,CAAS,GAAKC,IAC1BE,EAAa,EAAI,EACjB,MAAMI,EAAoB,QAAQM,CAAK,EACvCV,EAAa,EAAK,EACpB,EAGF,OAAAQ,EAAQ,iBAAiB,SAAUC,CAAU,EAEtC,IAAM,CACXD,EAAQ,oBAAoB,SAAUC,CAAU,CAAA,CAClD,EACC,CAAChB,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EAAGS,EAAY,MAAOL,EAAWC,CAAQ,CAAC,EAEjFL,EAAe,CAAE,QAAAM,CAAA,EACd,CACL,IAAKG,EACL,QAAAH,CAAA,CAEJ"}
1
+ {"version":3,"file":"useInfiniteScroll.cjs","names":[],"sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\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\n/** The use infinite scroll return type */\nexport interface UseInfiniteScrollReturn {\n /** The loading state of the infinite scroll */\n loading: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): UseInfiniteScrollReturn;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): UseInfiniteScrollReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n * @usage medium\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 {UseInfiniteScrollReturn & { ref: StateRef<Target> }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @param {HookTarget} 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 {UseInfiniteScrollReturn} An object containing the ref and loading\n *\n * @example\n * const { loading } = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: Event) => void;\n const options = (target ? params[2] : params[1]) as UseInfiniteScrollOptions | undefined;\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 const internalLoadingRef = useRef(loading);\n internalLoadingRef.current = loading;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onLoadMore = async (event: Event) => {\n if (internalLoadingRef.current) return;\n\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 element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, direction, distance]);\n\n if (target) return { loading };\n return {\n ref: internalRef,\n loading\n };\n}) as UseInfiniteScroll;\n"],"mappings":"uKAkEA,IAAa,IAAsB,GAAG,IAAkB,CACtD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,EAAY,GAAS,WAAa,SAClC,EAAW,GAAS,UAAY,GAEhC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAyB,GAAM,CAEzC,EAAc,EAAA,aAAsB,CACpC,GAAA,EAAA,EAAA,QAA6B,EAAS,CAC5C,EAAoB,QAAU,EAC9B,IAAM,GAAA,EAAA,EAAA,QAA4B,EAAQ,CAsC1C,MArCA,GAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OACnC,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAa,KAAO,IAAiB,CACzC,GAAI,EAAmB,QAAS,OAEhC,GAAM,CAAE,eAAc,eAAc,YAAW,cAAa,cAAa,cACvE,EAAM,QAIU,CAChB,OAJmB,GAAgB,EAAY,GAK/C,IAAK,EACL,MALkB,GAAe,EAAa,GAM9C,KAAM,EACP,EAEa,IAAc,IAC1B,EAAa,GAAK,CAClB,MAAM,EAAoB,QAAQ,EAAM,CACxC,EAAa,GAAM,GAMvB,OAFA,EAAQ,iBAAiB,SAAU,EAAW,KAEjC,CACX,EAAQ,oBAAoB,SAAU,EAAW,GAElD,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAO,EAAW,EAAS,CAAC,CAElF,EAAe,CAAE,UAAS,CACvB,CACL,IAAK,EACL,UACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),S=require("../useRefState/useRefState.cjs"),s=require("../../utils/helpers/isTarget.cjs"),T=((...e)=>{const r=s.isTarget(e[0])?e[0]:void 0,t=r?typeof e[1]=="object"?e[1]:{onChange:e[1]}:typeof e[0]=="object"?e[0]:{onChange:e[0]},i=t?.onChange,u=t?.enabled??!0,[l,v]=o.useState(),[b,d]=o.useState(),n=S.useRefState(),g=o.useRef(i);return g.current=i,o.useEffect(()=>{if(!u||!r&&!n.state)return;const a=r?s.isTarget.getElement(r):n.current;if(!a)return;const c=new IntersectionObserver((f,R)=>{d(f),g.current?.(f,R)},{...t,root:t?.root?s.isTarget.getElement(t.root):document});return v(c),c.observe(a),()=>{c.disconnect()}},[r&&s.isTarget.getRawElement(r),n.state,t?.rootMargin,t?.threshold,t?.root,u]),r?{observer:l,entries:b}:{observer:l,ref:n,entries:b}});exports.useIntersectionObserver=T;
2
- //# sourceMappingURL=useIntersectionObserver.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?typeof r[1]==`object`?r[1]:{onChange:r[1]}:typeof r[0]==`object`?r[0]:{onChange:r[0]},o=a?.onChange,s=a?.enabled??!0,[c,l]=(0,n.useState)(),[u,d]=(0,n.useState)(),f=t.useRefState(),p=(0,n.useRef)(o);return p.current=o,(0,n.useEffect)(()=>{if(!s||!i&&!f.state)return;let t=i?e.isTarget.getElement(i):f.current;if(!t)return;let n=new IntersectionObserver((e,t)=>{d(e),p.current?.(e,t)},{...a,root:a?.root?e.isTarget.getElement(a.root):document});return l(n),n.observe(t),()=>{n.disconnect()}},[i&&e.isTarget.getRawElement(i),f.state,a?.rootMargin,a?.threshold,a?.root,s]),i?{observer:c,entries:u}:{observer:c,ref:f,entries:u}});exports.useIntersectionObserver=r;
2
+ //# sourceMappingURL=useIntersectionObserver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersectionObserver.cjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer callback type */\nexport type UseIntersectionObserverCallback = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver\n) => void;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection observer */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseIntersectionObserverCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n /** The intersection observer entry */\n entries?: IntersectionObserverEntry[];\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n\n <Target extends Element>(\n callback: UseIntersectionObserverCallback,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseIntersectionObserverCallback): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} 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 {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = 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 {HookTarget} [options.root=document] 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 { entries, observer } = useIntersectionObserver(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver(() => console.log('callback'));\n *\n * @overload\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref, () => console.log('callback'));\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseIntersectionObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entries, setEntries] = useState<IntersectionObserverEntry[]>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n setEntries(entries);\n internalCallbackRef.current?.(entries, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entries };\n return {\n observer,\n ref: internalRef,\n entries\n };\n}) as UseIntersectionObserver;\n"],"names":["useIntersectionObserver","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entries","setEntries","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element"],"mappings":"mMA8FaA,GAA2B,IAAIC,IAAkB,CAC5D,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EACtB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EAGtBI,EAAWD,GAAS,SACpBE,EAAUF,GAAS,SAAW,GAE9B,CAACG,EAAUC,CAAW,EAAIC,WAAA,EAC1B,CAACC,EAASC,CAAU,EAAIF,WAAA,EAExBG,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOV,CAAQ,EAmC3C,OAlCAS,EAAoB,QAAUT,EAE9BW,EAAAA,UAAU,IAAM,CACd,GAAI,CAACV,GAAY,CAACJ,GAAU,CAACU,EAAY,MAAQ,OAEjD,MAAMK,EAAUf,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIU,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMV,EAAW,IAAI,qBACnB,CAACG,EAASH,IAAa,CACrBI,EAAWD,CAAO,EAClBI,EAAoB,UAAUJ,EAASH,CAAQ,CAAA,EAEjD,CACE,GAAGH,EACH,KAAMA,GAAS,KAAQD,EAAAA,SAAS,WAAWC,EAAQ,IAAI,EAA2B,QAAA,CACpF,EAGF,OAAAI,EAAYD,CAAQ,EACpBA,EAAS,QAAQU,CAAkB,EAE5B,IAAM,CACXV,EAAS,WAAA,CAAW,CACtB,EACC,CACDL,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCU,EAAY,MACZR,GAAS,WACTA,GAAS,UACTA,GAAS,KACTE,CAAA,CACD,EAEGJ,EAAe,CAAE,SAAAK,EAAU,QAAAG,CAAA,EACxB,CACL,SAAAH,EACA,IAAKK,EACL,QAAAF,CAAA,CAEJ"}
1
+ {"version":3,"file":"useIntersectionObserver.cjs","names":[],"sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer callback type */\nexport type UseIntersectionObserverCallback = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver\n) => void;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection observer */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseIntersectionObserverCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n /** The intersection observer entry */\n entries?: IntersectionObserverEntry[];\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n\n <Target extends Element>(\n callback: UseIntersectionObserverCallback,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseIntersectionObserverCallback): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} 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 {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = 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 {HookTarget} [options.root=document] 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 { entries, observer } = useIntersectionObserver(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver(() => console.log('callback'));\n *\n * @overload\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref, () => console.log('callback'));\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseIntersectionObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entries, setEntries] = useState<IntersectionObserverEntry[]>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n setEntries(entries);\n internalCallbackRef.current?.(entries, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entries };\n return {\n observer,\n ref: internalRef,\n entries\n };\n}) as UseIntersectionObserver;\n"],"mappings":"uKA8FA,IAAa,IAA4B,GAAG,IAAkB,CAC5D,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAE5C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,SAAU,EAAO,GAAI,CACzB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,SAAU,EAAO,GAAI,CAGzB,EAAW,GAAS,SACpB,EAAU,GAAS,SAAW,GAE9B,CAAC,EAAU,IAAA,EAAA,EAAA,WAA+C,CAC1D,CAAC,EAAS,IAAA,EAAA,EAAA,WAAqD,CAE/D,EAAc,EAAA,aAAsB,CACpC,GAAA,EAAA,EAAA,QAA6B,EAAS,CAoC5C,MAnCA,GAAoB,QAAU,GAE9B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAY,CAAC,GAAU,CAAC,EAAY,MAAQ,OAEjD,IAAM,EAAU,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACnE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,IAAI,sBAClB,EAAS,IAAa,CACrB,EAAW,EAAQ,CACnB,EAAoB,UAAU,EAAS,EAAS,EAElD,CACE,GAAG,EACH,KAAM,GAAS,KAAQ,EAAA,SAAS,WAAW,EAAQ,KAAK,CAA0B,SACnF,CACF,CAKD,OAHA,EAAY,EAAS,CACrB,EAAS,QAAQ,EAAmB,KAEvB,CACX,EAAS,YAAY,GAEtB,CACD,GAAU,EAAA,SAAS,cAAc,EAAO,CACxC,EAAY,MACZ,GAAS,WACT,GAAS,UACT,GAAS,KACT,EACD,CAAC,CAEE,EAAe,CAAE,WAAU,UAAS,CACjC,CACL,WACA,IAAK,EACL,UACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),f=((...e)=>{const o=e[0],r=(typeof e[1]=="number"?e[1]:e[1].interval)??1e3,l=(typeof e[1]=="object"?e[1]:e[2])?.immediately??!0,[t,c]=n.useState(l??!0),u=n.useRef(void 0),s=n.useRef(o);return s.current=o,n.useEffect(()=>{if(t)return u.current=setInterval(()=>s.current(),r),()=>{clearInterval(u.current)}},[t,r]),{active:t,pause:()=>c(!1),resume:()=>{r<=0||c(!0)},toggle:(i=!t)=>c(i)}});exports.useInterval=f;
2
- //# sourceMappingURL=useInterval.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=((...t)=>{let n=t[0],r=(typeof t[1]==`number`?t[1]:t[1].interval)??1e3,[i,a]=(0,e.useState)((typeof t[1]==`object`?t[1]:t[2])?.immediately??!0??!0),o=(0,e.useRef)(void 0),s=(0,e.useRef)(n);return s.current=n,(0,e.useEffect)(()=>{if(i)return o.current=setInterval(()=>s.current(),r),()=>{clearInterval(o.current)}},[i,r]),{active:i,pause:()=>a(!1),resume:()=>{r<=0||a(!0)},toggle:(e=!i)=>a(e)}});exports.useInterval=t;
2
+ //# sourceMappingURL=useInterval.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInterval.cjs","sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n immediately?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n active: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n /** Toggle the interval */\n toggle: () => void;\n}\n\ninterface UseInterval {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n}\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n * @category Time\n * @usage high\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const immediately = options?.immediately ?? true;\n\n const [active, setActive] = useState<boolean>(immediately ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>(undefined);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!active) return;\n\n intervalIdRef.current = setInterval(() => internalCallbackRef.current(), interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [active, interval]);\n\n const pause = () => setActive(false);\n\n const resume = () => {\n if (interval <= 0) return;\n setActive(true);\n };\n\n const toggle = (value = !active) => setActive(value);\n\n return {\n active,\n pause,\n resume,\n toggle\n };\n}) as UseInterval;\n"],"names":["useInterval","params","callback","interval","immediately","active","setActive","useState","intervalIdRef","useRef","internalCallbackRef","useEffect","value"],"mappings":"yGAiDaA,GAAe,IAAIC,IAAqC,CACnE,MAAMC,EAAWD,EAAO,CAAC,EACnBE,GACF,OAAOF,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACPA,EAAO,CAAC,EAAiD,WAAwB,IAKlFG,GAHJ,OAAOH,EAAO,CAAC,GAAM,SAChBA,EAAO,CAAC,EACRA,EAAO,CAAC,IACc,aAAe,GAEtC,CAACI,EAAQC,CAAS,EAAIC,EAAAA,SAAkBH,GAAe,EAAI,EAE3DI,EAAgBC,EAAAA,OAAuC,MAAS,EAChEC,EAAsBD,EAAAA,OAAOP,CAAQ,EAC3C,OAAAQ,EAAoB,QAAUR,EAE9BS,EAAAA,UAAU,IAAM,CACd,GAAKN,EAEL,OAAAG,EAAc,QAAU,YAAY,IAAME,EAAoB,QAAA,EAAWP,CAAQ,EAC1E,IAAM,CACX,cAAcK,EAAc,OAAO,CAAA,CACrC,EACC,CAACH,EAAQF,CAAQ,CAAC,EAWd,CACL,OAAAE,EACA,MAXY,IAAMC,EAAU,EAAK,EAYjC,OAVa,IAAM,CACfH,GAAY,GAChBG,EAAU,EAAI,CAAA,EASd,OANa,CAACM,EAAQ,CAACP,IAAWC,EAAUM,CAAK,CAMjD,CAEJ"}
1
+ {"version":3,"file":"useInterval.cjs","names":[],"sources":["../../../../src/hooks/useInterval/useInterval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use interval options */\nexport interface UseIntervalOptions {\n /** Start the interval immediately */\n immediately?: boolean;\n}\n\n/** The use interval return type */\nexport interface UseIntervalReturn {\n /** Is the interval active */\n active: boolean;\n /** Pause the interval */\n pause: () => void;\n /** Resume the interval */\n resume: () => void;\n /** Toggle the interval */\n toggle: () => void;\n}\n\ninterface UseInterval {\n (callback: () => void, interval?: number, options?: UseIntervalOptions): UseIntervalReturn;\n\n (callback: () => void, options?: UseIntervalOptions & { interval?: number }): UseIntervalReturn;\n}\n\n/**\n * @name useInterval\n * @description - Hook that makes and interval and returns controlling functions\n * @category Time\n * @usage high\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n * @returns {UseIntervalReturn}\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), 2500);\n *\n * @overload\n * @param {() => void} callback Any callback function\n * @param {number} [options.interval=1000] Time in milliseconds\n * @param {boolean} [options.immediately=true] Start the interval immediately\n *\n * @example\n * const { active, pause, resume, toggle } = useInterval(() => console.log('inside interval'), { interval: 2500 });\n */\nexport const useInterval = ((...params: any[]): UseIntervalReturn => {\n const callback = params[0] as () => void;\n const interval =\n ((typeof params[1] === 'number'\n ? params[1]\n : (params[1] as UseIntervalOptions & { interval?: number }).interval) as number) ?? 1000;\n const options =\n typeof params[1] === 'object'\n ? (params[1] as (UseIntervalOptions & { interval?: number }) | undefined)\n : (params[2] as UseIntervalOptions | undefined);\n const immediately = options?.immediately ?? true;\n\n const [active, setActive] = useState<boolean>(immediately ?? true);\n\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>(undefined);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!active) return;\n\n intervalIdRef.current = setInterval(() => internalCallbackRef.current(), interval);\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [active, interval]);\n\n const pause = () => setActive(false);\n\n const resume = () => {\n if (interval <= 0) return;\n setActive(true);\n };\n\n const toggle = (value = !active) => setActive(value);\n\n return {\n active,\n pause,\n resume,\n toggle\n };\n}) as UseInterval;\n"],"mappings":"uEAiDA,IAAa,IAAgB,GAAG,IAAqC,CACnE,IAAM,EAAW,EAAO,GAClB,GACF,OAAO,EAAO,IAAO,SACnB,EAAO,GACN,EAAO,GAAkD,WAAwB,IAOlF,CAAC,EAAQ,IAAA,EAAA,EAAA,WALb,OAAO,EAAO,IAAO,SAChB,EAAO,GACP,EAAO,KACe,aAAe,IAEiB,GAAK,CAE5D,GAAA,EAAA,EAAA,QAAuD,IAAA,GAAU,CACjE,GAAA,EAAA,EAAA,QAA6B,EAAS,CAqB5C,MApBA,GAAoB,QAAU,GAE9B,EAAA,EAAA,eAAgB,CACT,KAGL,MADA,GAAc,QAAU,gBAAkB,EAAoB,SAAS,CAAE,EAAS,KACrE,CACX,cAAc,EAAc,QAAQ,GAErC,CAAC,EAAQ,EAAS,CAAC,CAWf,CACL,SACA,UAXkB,EAAU,GAAM,CAYlC,WAVmB,CACf,GAAY,GAChB,EAAU,GAAK,EASf,QANc,EAAQ,CAAC,IAAW,EAAU,EAAM,CAOnD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),t=()=>{const e=r.useRef(!0);return e.current===!0?(e.current=!1,!0):e.current};exports.useIsFirstRender=t;
2
- //# sourceMappingURL=useIsFirstRender.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{let t=(0,e.useRef)(!0);return t.current===!0?(t.current=!1,!0):t.current};exports.useIsFirstRender=t;
2
+ //# sourceMappingURL=useIsFirstRender.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFirstRender.cjs","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n * @category Lifecycle\n * @usage low\n *\n * @returns {boolean} True if the component is first render\n *\n * @example\n * const isFirstRender = useIsFirstRender();\n */\nexport const useIsFirstRender = () => {\n const renderRef = useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n};\n"],"names":["useIsFirstRender","renderRef","useRef"],"mappings":"yGAaaA,EAAmB,IAAM,CACpC,MAAMC,EAAYC,EAAAA,OAAO,EAAI,EAE7B,OAAID,EAAU,UAAY,IACxBA,EAAU,QAAU,GACb,IAGFA,EAAU,OACnB"}
1
+ {"version":3,"file":"useIsFirstRender.cjs","names":[],"sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n * @category Lifecycle\n * @usage low\n *\n * @returns {boolean} True if the component is first render\n *\n * @example\n * const isFirstRender = useIsFirstRender();\n */\nexport const useIsFirstRender = () => {\n const renderRef = useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n};\n"],"mappings":"uEAaA,IAAa,MAAyB,CACpC,IAAM,GAAA,EAAA,EAAA,QAAmB,GAAK,CAO9B,OALI,EAAU,UAAY,IACxB,EAAU,QAAU,GACb,IAGF,EAAU"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=typeof window<"u"?e.useLayoutEffect:e.useEffect;exports.useIsomorphicLayoutEffect=t;
2
- //# sourceMappingURL=useIsomorphicLayoutEffect.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=typeof window<`u`?e.useLayoutEffect:e.useEffect;exports.useIsomorphicLayoutEffect=t;
2
+ //# sourceMappingURL=useIsomorphicLayoutEffect.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.cjs","sources":["../../../../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\n/**\n * @name useIsomorphicLayoutEffect\n * @description - Hook conditionally selects either `useLayoutEffect` or `useEffect` based on the environment\n * @category Lifecycle\n * @usage high\n *\n * @example\n * useIsomorphicLayoutEffect(() => console.log('effect'), [])\n */\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n"],"names":["useIsomorphicLayoutEffect","useLayoutEffect","useEffect"],"mappings":"yGAWaA,EACX,OAAO,OAAW,IAAcC,kBAAkBC,EAAAA"}
1
+ {"version":3,"file":"useIsomorphicLayoutEffect.cjs","names":[],"sources":["../../../../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\n/**\n * @name useIsomorphicLayoutEffect\n * @description - Hook conditionally selects either `useLayoutEffect` or `useEffect` based on the environment\n * @category Lifecycle\n * @usage high\n *\n * @example\n * useIsomorphicLayoutEffect(() => console.log('effect'), [])\n */\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n"],"mappings":"uEAWA,IAAa,EACX,OAAO,OAAW,IAAc,EAAA,gBAAkB,EAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),g=require("../useRefState/useRefState.cjs"),y=require("../../utils/helpers/isTarget.cjs"),E=((...n)=>{const e=y.isTarget(n[0])?n[0]:void 0,a=e?n[1]:n[0],f=e?n[2]:n[1],[l,d]=u.useState(!1),c=g.useRefState(window),t=u.useRef(a);t.current=a;const o=u.useRef(f);return o.current=f,u.useEffect(()=>{if(!e&&!c.state)return;const s=e?y.isTarget.getElement(e):c.current;if(!s)return;const k=i=>{const r=i;(Array.isArray(t.current)?t.current.includes(r.key):r.key===t.current)&&(d(!0),o.current?.(!0,r))},v=i=>{const r=i;(Array.isArray(t.current)?t.current.includes(r.key):r.key===t.current)&&(d(!1),o.current?.(!1,r))};return s.addEventListener("keydown",k),s.addEventListener("keyup",v),()=>{s.removeEventListener("keydown",k),s.removeEventListener("keyup",v)}},[e&&y.isTarget.getRawElement(e),c.state]),e?{pressed:l}:{pressed:l,ref:c}});exports.useKeyPress=E;
2
- //# sourceMappingURL=useKeyPress.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?r[1]:r[0],o=i?r[2]:r[1],[s,c]=(0,n.useState)(!1),l=t.useRefState(window),u=(0,n.useRef)(a);u.current=a;let d=(0,n.useRef)(o);return d.current=o,(0,n.useEffect)(()=>{if(!i&&!l.state)return;let t=i?e.isTarget.getElement(i):l.current;if(!t)return;let n=e=>{let t=e;(Array.isArray(u.current)?u.current.includes(t.key):t.key===u.current)&&(c(!0),d.current?.(!0,t))},r=e=>{let t=e;(Array.isArray(u.current)?u.current.includes(t.key):t.key===u.current)&&(c(!1),d.current?.(!1,t))};return t.addEventListener(`keydown`,n),t.addEventListener(`keyup`,r),()=>{t.removeEventListener(`keydown`,n),t.removeEventListener(`keyup`,r)}},[i&&e.isTarget.getRawElement(i),l.state]),i?{pressed:s}:{pressed:s,ref:l}});exports.useKeyPress=r;
2
+ //# sourceMappingURL=useKeyPress.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPress.cjs","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The callback function to be invoked when key is pressed */\nexport type UseKeyPressCallback = (pressed: boolean, event: KeyboardEvent) => void;\n\n/** The use key press return type */\nexport interface UseKeyPressReturn {\n /** The pressed state of the key */\n pressed: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseKeyPress {\n (\n target: HookTarget | Window,\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback\n ): UseKeyPressReturn;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): UseKeyPressReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @param {HookTarget} [target=window] The target to attach the event listeners to\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {UseKeyPressReturn} An object containing the pressed state and ref\n *\n * @example\n * const isKeyPressed = useKeyPress(ref, 'a');\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {{ pressed: boolean; ref: StateRef<Target> }} An object containing the pressed state and ref\n *\n * @example\n * const { pressed, ref } = useKeyPress('a');\n */\nexport const useKeyPress = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const key = (target ? params[1] : params[0]) as UseKeyPressKey;\n const callback = (target ? params[2] : params[1]) as UseKeyPressCallback | undefined;\n\n const [pressed, setPressed] = useState(false);\n const internalRef = useRefState(window);\n\n const keyRef = useRef(key);\n keyRef.current = key;\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(true);\n internalCallbackRef.current?.(true, keyboardEvent);\n }\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(false);\n internalCallbackRef.current?.(false, keyboardEvent);\n }\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { pressed };\n return { pressed, ref: internalRef };\n}) as UseKeyPress;\n"],"names":["useKeyPress","params","target","isTarget","key","callback","pressed","setPressed","useState","internalRef","useRefState","keyRef","useRef","internalCallbackRef","useEffect","element","onKeyDown","event","keyboardEvent","onKeyUp"],"mappings":"mMA8DaA,GAAe,IAAIC,IAAkB,CAChD,MAAMC,EAASC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC3CG,EAAOF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpCI,EAAYH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAEzC,CAACK,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EACtCC,EAAcC,EAAAA,YAAY,MAAM,EAEhCC,EAASC,EAAAA,OAAOR,CAAG,EACzBO,EAAO,QAAUP,EACjB,MAAMS,EAAsBD,EAAAA,OAAOP,CAAQ,EA0C3C,OAzCAQ,EAAoB,QAAUR,EAE9BS,EAAAA,UAAU,IAAM,CACd,GAAI,CAACZ,GAAU,CAACO,EAAY,MAAO,OAEnC,MAAMM,EAAWb,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIO,EAAY,QACpE,GAAI,CAACM,EAAS,OAEd,MAAMC,EAAaC,GAAiB,CAClC,MAAMC,EAAgBD,GAEpB,MAAM,QAAQN,EAAO,OAAO,EACxBA,EAAO,QAAQ,SAASO,EAAc,GAAG,EACzCA,EAAc,MAAQP,EAAO,WAEjCJ,EAAW,EAAI,EACfM,EAAoB,UAAU,GAAMK,CAAa,EACnD,EAGIC,EAAWF,GAAiB,CAChC,MAAMC,EAAgBD,GAEpB,MAAM,QAAQN,EAAO,OAAO,EACxBA,EAAO,QAAQ,SAASO,EAAc,GAAG,EACzCA,EAAc,MAAQP,EAAO,WAEjCJ,EAAW,EAAK,EAChBM,EAAoB,UAAU,GAAOK,CAAa,EACpD,EAGF,OAAAH,EAAQ,iBAAiB,UAAWC,CAAS,EAC7CD,EAAQ,iBAAiB,QAASI,CAAO,EAElC,IAAM,CACXJ,EAAQ,oBAAoB,UAAWC,CAAS,EAChDD,EAAQ,oBAAoB,QAASI,CAAO,CAAA,CAC9C,EACC,CAACjB,GAAUC,WAAS,cAAcD,CAAM,EAAGO,EAAY,KAAK,CAAC,EAE5DP,EAAe,CAAE,QAAAI,CAAA,EACd,CAAE,QAAAA,EAAS,IAAKG,CAAA,CACzB"}
1
+ {"version":3,"file":"useKeyPress.cjs","names":[],"sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The callback function to be invoked when key is pressed */\nexport type UseKeyPressCallback = (pressed: boolean, event: KeyboardEvent) => void;\n\n/** The use key press return type */\nexport interface UseKeyPressReturn {\n /** The pressed state of the key */\n pressed: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseKeyPress {\n (\n target: HookTarget | Window,\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback\n ): UseKeyPressReturn;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): UseKeyPressReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @param {HookTarget} [target=window] The target to attach the event listeners to\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {UseKeyPressReturn} An object containing the pressed state and ref\n *\n * @example\n * const isKeyPressed = useKeyPress(ref, 'a');\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {{ pressed: boolean; ref: StateRef<Target> }} An object containing the pressed state and ref\n *\n * @example\n * const { pressed, ref } = useKeyPress('a');\n */\nexport const useKeyPress = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const key = (target ? params[1] : params[0]) as UseKeyPressKey;\n const callback = (target ? params[2] : params[1]) as UseKeyPressCallback | undefined;\n\n const [pressed, setPressed] = useState(false);\n const internalRef = useRefState(window);\n\n const keyRef = useRef(key);\n keyRef.current = key;\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(true);\n internalCallbackRef.current?.(true, keyboardEvent);\n }\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(false);\n internalCallbackRef.current?.(false, keyboardEvent);\n }\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { pressed };\n return { pressed, ref: internalRef };\n}) as UseKeyPress;\n"],"mappings":"uKA8DA,IAAa,IAAgB,GAAG,IAAkB,CAChD,IAAM,EAAS,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC3C,EAAO,EAAS,EAAO,GAAK,EAAO,GACnC,EAAY,EAAS,EAAO,GAAK,EAAO,GAExC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,EAAc,EAAA,YAAY,OAAO,CAEjC,GAAA,EAAA,EAAA,QAAgB,EAAI,CAC1B,EAAO,QAAU,EACjB,IAAM,GAAA,EAAA,EAAA,QAA6B,EAAS,CA2C5C,MA1CA,GAAoB,QAAU,GAE9B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OAEnC,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAa,GAAiB,CAClC,IAAM,EAAgB,GAEpB,MAAM,QAAQ,EAAO,QAAQ,CACzB,EAAO,QAAQ,SAAS,EAAc,IAAI,CAC1C,EAAc,MAAQ,EAAO,WAEjC,EAAW,GAAK,CAChB,EAAoB,UAAU,GAAM,EAAc,GAIhD,EAAW,GAAiB,CAChC,IAAM,EAAgB,GAEpB,MAAM,QAAQ,EAAO,QAAQ,CACzB,EAAO,QAAQ,SAAS,EAAc,IAAI,CAC1C,EAAc,MAAQ,EAAO,WAEjC,EAAW,GAAM,CACjB,EAAoB,UAAU,GAAO,EAAc,GAOvD,OAHA,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,QAAS,EAAQ,KAE7B,CACX,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,QAAS,EAAQ,GAE9C,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,EAAe,CAAE,UAAS,CACvB,CAAE,UAAS,IAAK,EAAa"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),l=require("../useRefState/useRefState.cjs"),u=require("../../utils/helpers/isTarget.cjs"),g=((...e)=>{const t=u.isTarget(e[0])?e[0]:void 0,i=t?e[1]:e[0],y=t?e[2]:e[1],n=t?e[3]:e[2],s=l.useRefState(window),r=o.useRef(i);r.current=i;const f=o.useRef(y);if(f.current=y,o.useEffect(()=>{const c=t?u.isTarget.getElement(t):s.current;if(!c)return;const a=d=>{const v=d;(Array.isArray(r.current)?r.current:[r.current]).includes(v.key)&&f.current(v)};return c.addEventListener("keydown",a,{capture:n?.capture,passive:n?.passive,once:n?.once}),()=>{c.removeEventListener("keydown",a,{capture:n?.capture})}},[t&&u.isTarget.getRawElement(t),s.state,n?.capture,n?.passive,n?.once]),!t)return s});exports.useKeyPressEvent=g;
2
- //# sourceMappingURL=useKeyPressEvent.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?r[1]:r[0],o=i?r[2]:r[1],s=i?r[3]:r[2],c=t.useRefState(window),l=(0,n.useRef)(a);l.current=a;let u=(0,n.useRef)(o);if(u.current=o,(0,n.useEffect)(()=>{let t=i?e.isTarget.getElement(i):c.current;if(!t)return;let n=e=>{let t=e;(Array.isArray(l.current)?l.current:[l.current]).includes(t.key)&&u.current(t)};return t.addEventListener(`keydown`,n,{capture:s?.capture,passive:s?.passive,once:s?.once}),()=>{t.removeEventListener(`keydown`,n,{capture:s?.capture})}},[i&&e.isTarget.getRawElement(i),c.state,s?.capture,s?.passive,s?.once]),!i)return c});exports.useKeyPressEvent=r;
2
+ //# sourceMappingURL=useKeyPressEvent.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPressEvent.cjs","sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressEventKey = string | string[];\n\n/** The use key press event options type */\nexport interface UseKeyPressEventOptions {\n /** Whether the event should be captured */\n capture?: boolean;\n /** Whether the event listener should only be triggered once */\n once?: boolean;\n /** Whether the event listener should be passive */\n passive?: boolean;\n}\n\nexport interface UseKeyPressEvent {\n (\n target: HookTarget | Window,\n key: UseKeyPressEventKey,\n listener: (event: KeyboardEvent) => void,\n options?: UseKeyPressEventOptions\n ): void;\n\n <Target extends Element>(\n key: UseKeyPressEventKey,\n listener: (event: KeyboardEvent) => void,\n options?: UseKeyPressEventOptions,\n target?: never\n ): { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPressEvent\n * @description - Hook that listens for key press events on specified targets\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {HookTarget | Window} target The target 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 {UseKeyPressEventOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent(ref, 'Enter', () => console.log('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 {UseKeyPressEventOptions} [options] The options for the event listener.\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyPressEvent('Enter', (event) => console.log('pressed'));\n */\nexport const useKeyPressEvent = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const key = (target ? params[1] : params[0]) as UseKeyPressEventKey;\n const listener = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\n const options = (target ? params[3] : params[2]) as UseKeyPressEventOptions | undefined;\n\n const internalRef = useRefState(window);\n\n const keyRef = useRef(key);\n keyRef.current = key;\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n\n useEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n const keys = Array.isArray(keyRef.current) ? keyRef.current : [keyRef.current];\n if (keys.includes(keyboardEvent.key)) {\n listenerRef.current(keyboardEvent);\n }\n };\n\n element.addEventListener('keydown', onKeyDown, {\n capture: options?.capture,\n passive: options?.passive,\n once: options?.once\n });\n\n return () => {\n element.removeEventListener('keydown', onKeyDown, {\n capture: options?.capture\n });\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.capture,\n options?.passive,\n options?.once\n ]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyPressEvent;\n"],"names":["useKeyPressEvent","params","target","isTarget","key","listener","options","internalRef","useRefState","keyRef","useRef","listenerRef","useEffect","element","onKeyDown","event","keyboardEvent"],"mappings":"mMAiEaA,GAAoB,IAAIC,IAAkB,CACrD,MAAMC,EAASC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC3CG,EAAOF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACpCI,EAAYH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCK,EAAWJ,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExCM,EAAcC,EAAAA,YAAY,MAAM,EAEhCC,EAASC,EAAAA,OAAON,CAAG,EACzBK,EAAO,QAAUL,EACjB,MAAMO,EAAcD,EAAAA,OAAOL,CAAQ,EAkCnC,GAjCAM,EAAY,QAAUN,EAEtBO,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAWX,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIK,EAAY,QACpE,GAAI,CAACM,EAAS,OAEd,MAAMC,EAAaC,GAAiB,CAClC,MAAMC,EAAgBD,GACT,MAAM,QAAQN,EAAO,OAAO,EAAIA,EAAO,QAAU,CAACA,EAAO,OAAO,GACpE,SAASO,EAAc,GAAG,GACjCL,EAAY,QAAQK,CAAa,CACnC,EAGF,OAAAH,EAAQ,iBAAiB,UAAWC,EAAW,CAC7C,QAASR,GAAS,QAClB,QAASA,GAAS,QAClB,KAAMA,GAAS,IAAA,CAChB,EAEM,IAAM,CACXO,EAAQ,oBAAoB,UAAWC,EAAW,CAChD,QAASR,GAAS,OAAA,CACnB,CAAA,CACH,EACC,CACDJ,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCK,EAAY,MACZD,GAAS,QACTA,GAAS,QACTA,GAAS,IAAA,CACV,EAEG,CAAAJ,EACJ,OAAOK,CACT"}
1
+ {"version":3,"file":"useKeyPressEvent.cjs","names":[],"sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressEventKey = string | string[];\n\n/** The use key press event options type */\nexport interface UseKeyPressEventOptions {\n /** Whether the event should be captured */\n capture?: boolean;\n /** Whether the event listener should only be triggered once */\n once?: boolean;\n /** Whether the event listener should be passive */\n passive?: boolean;\n}\n\nexport interface UseKeyPressEvent {\n (\n target: HookTarget | Window,\n key: UseKeyPressEventKey,\n listener: (event: KeyboardEvent) => void,\n options?: UseKeyPressEventOptions\n ): void;\n\n <Target extends Element>(\n key: UseKeyPressEventKey,\n listener: (event: KeyboardEvent) => void,\n options?: UseKeyPressEventOptions,\n target?: never\n ): { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPressEvent\n * @description - Hook that listens for key press events on specified targets\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {UseKeyPressEventKey} key The key or array of keys to listen for.\n * @param {HookTarget | Window} target The target 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 {UseKeyPressEventOptions} [options] The options for the event listener.\n * @returns {void}\n *\n * @example\n * useKeyPressEvent(ref, 'Enter', () => console.log('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 {UseKeyPressEventOptions} [options] The options for the event listener.\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyPressEvent('Enter', (event) => console.log('pressed'));\n */\nexport const useKeyPressEvent = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const key = (target ? params[1] : params[0]) as UseKeyPressEventKey;\n const listener = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\n const options = (target ? params[3] : params[2]) as UseKeyPressEventOptions | undefined;\n\n const internalRef = useRefState(window);\n\n const keyRef = useRef(key);\n keyRef.current = key;\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n\n useEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n const keys = Array.isArray(keyRef.current) ? keyRef.current : [keyRef.current];\n if (keys.includes(keyboardEvent.key)) {\n listenerRef.current(keyboardEvent);\n }\n };\n\n element.addEventListener('keydown', onKeyDown, {\n capture: options?.capture,\n passive: options?.passive,\n once: options?.once\n });\n\n return () => {\n element.removeEventListener('keydown', onKeyDown, {\n capture: options?.capture\n });\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.capture,\n options?.passive,\n options?.once\n ]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyPressEvent;\n"],"mappings":"uKAiEA,IAAa,IAAqB,GAAG,IAAkB,CACrD,IAAM,EAAS,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC3C,EAAO,EAAS,EAAO,GAAK,EAAO,GACnC,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,EAAc,EAAA,YAAY,OAAO,CAEjC,GAAA,EAAA,EAAA,QAAgB,EAAI,CAC1B,EAAO,QAAU,EACjB,IAAM,GAAA,EAAA,EAAA,QAAqB,EAAS,CACpC,KAAY,QAAU,GAEtB,EAAA,EAAA,eAAgB,CACd,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAa,GAAiB,CAClC,IAAM,EAAgB,GACT,MAAM,QAAQ,EAAO,QAAQ,CAAG,EAAO,QAAU,CAAC,EAAO,QAAQ,EACrE,SAAS,EAAc,IAAI,EAClC,EAAY,QAAQ,EAAc,EAUtC,OANA,EAAQ,iBAAiB,UAAW,EAAW,CAC7C,QAAS,GAAS,QAClB,QAAS,GAAS,QAClB,KAAM,GAAS,KAChB,CAAC,KAEW,CACX,EAAQ,oBAAoB,UAAW,EAAW,CAChD,QAAS,GAAS,QACnB,CAAC,GAEH,CACD,GAAU,EAAA,SAAS,cAAc,EAAO,CACxC,EAAY,MACZ,GAAS,QACT,GAAS,QACT,GAAS,KACV,CAAC,CAEE,GACJ,OAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),d=require("../useRefState/useRefState.cjs"),i=require("../../utils/helpers/isTarget.cjs"),g=((...e)=>{const t=i.isTarget(e[0])?e[0]:void 0,u=t?typeof e[1]=="object"?e[1]:{onKeyDown:e[1]}:typeof e[0]=="object"?e[0]:{onKeyDown:e[0]},o=d.useRefState(window),r=f.useRef(u);if(r.current=u,f.useEffect(()=>{if(!t&&!o.state)return;const n=t?i.isTarget.getElement(t):o.current;if(!n)return;const c=s=>r.current?.onKeyDown?.(s),y=s=>r.current?.onKeyUp?.(s);return n.addEventListener("keydown",c),n.addEventListener("keyup",y),()=>{n.removeEventListener("keydown",c),n.removeEventListener("keyup",y)}},[t&&i.isTarget.getRawElement(t),o.state]),!t)return o});exports.useKeyboard=g;
2
- //# sourceMappingURL=useKeyboard.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?typeof r[1]==`object`?r[1]:{onKeyDown:r[1]}:typeof r[0]==`object`?r[0]:{onKeyDown:r[0]},o=t.useRefState(),s=(0,n.useRef)(a);if(s.current=a,(0,n.useEffect)(()=>{let t=(i?e.isTarget.getElement(i):o.current)??window,n=e=>s.current?.onKeyDown?.(e),r=e=>s.current?.onKeyUp?.(e);return t.addEventListener(`keydown`,n),t.addEventListener(`keyup`,r),()=>{t.removeEventListener(`keydown`,n),t.removeEventListener(`keyup`,r)}},[i&&e.isTarget.getRawElement(i),o.state]),!i)return{ref:o}});exports.useKeyboard=r;
2
+ //# sourceMappingURL=useKeyboard.cjs.map