@siberiacancode/reactuse 0.2.12 → 0.2.14

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 (418) hide show
  1. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  2. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  3. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  4. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +1 -1
  5. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  6. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  7. package/dist/cjs/hooks/useBattery/useBattery.cjs +1 -1
  8. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  9. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +1 -1
  10. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  11. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  12. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  13. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  14. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  15. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +1 -1
  16. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  17. package/dist/cjs/hooks/useCookie/useCookie.cjs +1 -1
  18. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  19. package/dist/cjs/hooks/useCookies/useCookies.cjs +1 -1
  20. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  21. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  22. package/dist/cjs/hooks/useCounter/useCounter.cjs +1 -1
  23. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  24. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +1 -1
  25. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  26. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +1 -1
  27. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  29. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +1 -1
  30. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  31. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  32. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  33. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  34. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +1 -1
  35. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  36. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +1 -1
  37. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  38. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  39. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +1 -1
  40. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  41. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  42. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +1 -1
  43. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  44. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +1 -1
  45. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  46. package/dist/cjs/hooks/useElementSize/useElementSize.cjs.map +1 -1
  47. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  48. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  49. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +1 -1
  50. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  51. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  52. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +1 -1
  53. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  54. package/dist/cjs/hooks/useField/useField.cjs +1 -1
  55. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  56. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +1 -1
  57. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  58. package/dist/cjs/hooks/useFocus/useFocus.cjs +1 -1
  59. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  60. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  61. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  62. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +1 -1
  63. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  64. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  65. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +1 -1
  66. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  67. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  68. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +1 -1
  69. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  70. package/dist/cjs/hooks/useHover/useHover.cjs +1 -1
  71. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  72. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  73. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  74. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +1 -1
  75. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  76. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
  77. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  78. package/dist/cjs/hooks/useInterval/useInterval.cjs +1 -1
  79. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  80. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  81. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +1 -1
  82. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  83. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +1 -1
  84. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  85. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +1 -1
  86. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  87. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +1 -1
  88. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  89. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +1 -1
  90. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  91. package/dist/cjs/hooks/useLatest/useLatest.cjs +1 -1
  92. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  93. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  94. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  95. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  96. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  97. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +1 -1
  98. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  99. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  100. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  101. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  102. package/dist/cjs/hooks/useMemory/useMemory.cjs +1 -1
  103. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  104. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  105. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  106. package/dist/cjs/hooks/useMutation/useMutation.cjs +1 -1
  107. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  108. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +1 -1
  109. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  110. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +1 -1
  111. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  112. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  113. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  114. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  115. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  116. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  117. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  118. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +1 -1
  119. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  120. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +1 -1
  121. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  122. package/dist/cjs/hooks/usePaint/usePaint.cjs +1 -1
  123. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  124. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  125. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +1 -1
  126. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  127. package/dist/cjs/hooks/usePermission/usePermission.cjs +1 -1
  128. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  129. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  130. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  131. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  132. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  133. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  134. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  135. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +1 -1
  136. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  137. package/dist/cjs/hooks/useQuery/useQuery.cjs +1 -1
  138. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  139. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  140. package/dist/cjs/hooks/useRaf/useRaf.cjs +1 -1
  141. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  142. package/dist/cjs/hooks/useRafValue/useRafValue.cjs.map +1 -1
  143. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  144. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  145. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  146. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  147. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +1 -1
  148. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  149. package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.cjs +1 -1
  150. package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.cjs.map +1 -1
  151. package/dist/cjs/hooks/useScript/useScript.cjs +1 -1
  152. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  153. package/dist/cjs/hooks/useScroll/useScroll.cjs +1 -1
  154. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  155. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  156. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  157. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  158. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  159. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +1 -1
  160. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  161. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +1 -1
  162. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  163. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  164. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  165. package/dist/cjs/hooks/useSticky/useSticky.cjs +1 -1
  166. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  167. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +1 -1
  168. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  169. package/dist/cjs/hooks/useStorage/useStorage.cjs +1 -1
  170. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  171. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +1 -1
  172. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  173. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +1 -1
  174. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  175. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  176. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  177. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  178. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  179. package/dist/cjs/hooks/useTimer/useTimer.cjs +1 -1
  180. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  181. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  182. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  183. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +1 -1
  184. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  185. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +1 -1
  186. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  187. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  188. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +1 -1
  189. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  190. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +1 -1
  191. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  192. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  193. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  194. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  195. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +1 -1
  196. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  197. package/dist/cjs/hooks/useWizard/useWizard.cjs +1 -1
  198. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  199. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  200. package/dist/cjs/utils/helpers/debounce.cjs +1 -1
  201. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  202. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  203. package/dist/cjs/utils/helpers/getElement.cjs.map +1 -1
  204. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  205. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  206. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  207. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  208. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  209. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  210. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +1 -1
  211. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  212. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  213. package/dist/esm/hooks/useBattery/useBattery.mjs +10 -10
  214. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  215. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +14 -15
  216. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  217. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  218. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  219. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  220. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  221. package/dist/esm/hooks/useClipboard/useClipboard.mjs +13 -14
  222. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  223. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  224. package/dist/esm/hooks/useCookie/useCookie.mjs +27 -27
  225. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  226. package/dist/esm/hooks/useCookies/useCookies.mjs +19 -19
  227. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  228. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  229. package/dist/esm/hooks/useCounter/useCounter.mjs +5 -6
  230. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  231. package/dist/esm/hooks/useCssVar/useCssVar.mjs +13 -14
  232. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  233. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +14 -7
  234. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  235. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  236. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  237. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +18 -19
  238. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  239. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  240. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  241. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  242. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +5 -11
  243. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  244. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +28 -28
  245. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  246. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  247. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +15 -15
  248. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  249. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  250. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +11 -13
  251. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  252. package/dist/esm/hooks/useDropZone/useDropZone.mjs +27 -28
  253. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  254. package/dist/esm/hooks/useElementSize/useElementSize.mjs.map +1 -1
  255. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  256. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  257. package/dist/esm/hooks/useEventSource/useEventSource.mjs +37 -40
  258. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  259. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  260. package/dist/esm/hooks/useFavicon/useFavicon.mjs +11 -12
  261. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  262. package/dist/esm/hooks/useField/useField.mjs +45 -49
  263. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  264. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +22 -25
  265. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  266. package/dist/esm/hooks/useFocus/useFocus.mjs +24 -32
  267. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  268. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  269. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  270. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +23 -24
  271. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  272. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  273. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +24 -24
  274. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  275. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  276. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +24 -25
  277. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  278. package/dist/esm/hooks/useHover/useHover.mjs +20 -22
  279. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  280. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  281. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  282. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +14 -14
  283. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  284. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +19 -20
  285. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  286. package/dist/esm/hooks/useInterval/useInterval.mjs +8 -8
  287. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  288. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  289. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +22 -24
  290. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  291. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +23 -23
  292. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  293. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -22
  294. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  295. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +20 -20
  296. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  297. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +6 -6
  298. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  299. package/dist/esm/hooks/useLatest/useLatest.mjs +12 -4
  300. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  301. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  302. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  303. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  304. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  305. package/dist/esm/hooks/useLongPress/useLongPress.mjs +23 -27
  306. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  307. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  308. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  309. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  310. package/dist/esm/hooks/useMemory/useMemory.mjs +1 -1
  311. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  312. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  313. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  314. package/dist/esm/hooks/useMutation/useMutation.mjs +38 -42
  315. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  316. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +12 -12
  317. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  318. package/dist/esm/hooks/useNetwork/useNetwork.mjs +28 -28
  319. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  320. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  321. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  322. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  323. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  324. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  325. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  326. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +12 -13
  327. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  328. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +6 -6
  329. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  330. package/dist/esm/hooks/usePaint/usePaint.mjs +87 -93
  331. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  332. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  333. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +17 -19
  334. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  335. package/dist/esm/hooks/usePermission/usePermission.mjs +13 -13
  336. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  337. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  338. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  339. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  340. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  341. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  342. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  343. package/dist/esm/hooks/usePrevious/usePrevious.mjs +4 -4
  344. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  345. package/dist/esm/hooks/useQuery/useQuery.mjs +39 -41
  346. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  347. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  348. package/dist/esm/hooks/useRaf/useRaf.mjs +21 -21
  349. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  350. package/dist/esm/hooks/useRafValue/useRafValue.mjs.map +1 -1
  351. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  352. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  353. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  354. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  355. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +16 -17
  356. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  357. package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.mjs +11 -11
  358. package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.mjs.map +1 -1
  359. package/dist/esm/hooks/useScript/useScript.mjs +16 -16
  360. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  361. package/dist/esm/hooks/useScroll/useScroll.mjs +37 -39
  362. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  363. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  364. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  365. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  366. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  367. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +35 -35
  368. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  369. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +36 -42
  370. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  371. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  372. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  373. package/dist/esm/hooks/useSticky/useSticky.mjs +12 -12
  374. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  375. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +10 -11
  376. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  377. package/dist/esm/hooks/useStorage/useStorage.mjs +27 -27
  378. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  379. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +21 -24
  380. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  381. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +7 -7
  382. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  383. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  384. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  385. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  386. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  387. package/dist/esm/hooks/useTimer/useTimer.mjs +51 -54
  388. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  389. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  390. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  391. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +38 -38
  392. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  393. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +29 -29
  394. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  395. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  396. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +16 -16
  397. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  398. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +28 -38
  399. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  400. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  401. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  402. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  403. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +9 -9
  404. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  405. package/dist/esm/hooks/useWizard/useWizard.mjs +9 -11
  406. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  407. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  408. package/dist/esm/utils/helpers/debounce.mjs +6 -5
  409. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  410. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  411. package/dist/esm/utils/helpers/getElement.mjs.map +1 -1
  412. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  413. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  414. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  415. package/dist/types/hooks/useDebounceCallback/useDebounceCallback.d.ts +4 -1
  416. package/dist/types/hooks/useLatest/useLatest.d.ts +8 -3
  417. package/dist/types/utils/helpers/debounce.d.ts +5 -1
  418. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"useImage.mjs","sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\n\nimport { useQuery } from '../useQuery/useQuery';\n\n/** The use image options */\nexport interface UseImageOptions {\n /** The alt of the image */\n alt?: string;\n /** The class of the image */\n class?: string;\n /** The crossorigin of the image */\n crossorigin?: string;\n /** The loading of the image */\n loading?: HTMLImageElement['loading'];\n /** The referrer policy of the image */\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\n /** The sizes of the image */\n sizes?: string;\n /** The srcset of the image */\n srcset?: string;\n}\n\n/** The use image return type */\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\n\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\n new Promise((resolve, reject) => {\n const img = new Image();\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\n\n img.src = src;\n if (srcset) img.srcset = srcset;\n if (sizes) img.sizes = sizes;\n if (className) img.className = className;\n if (loading) img.loading = loading;\n if (crossorigin) img.crossOrigin = crossorigin;\n\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\n\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n\n/**\n * @name useImage\n * @description - Hook that load an image in the browser\n * @category Browser\n *\n * @param {string} src The source of the image\n * @param {string} [options.srcset] The srcset of the image\n * @param {string} [options.sizes] The sizes of the image\n * @param {string} [options.alt] The alt of the image\n * @param {string} [options.class] The class of the image\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\n * @param {string} [options.crossorigin] The crossorigin of the image\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\n * @param {DependencyList} [useQueryOptions.keys] The dependencies for the hook\n * @param {(data: Data) => void} [useQueryOptions.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [useQueryOptions.onError] The callback function to be invoked on error\n * @param {number} [useQueryOptions.refetchInterval] The refetch interval\n * @param {boolean | number} [useQueryOptions.retry] The retry count of requests\n * @returns {UseImageReturn} An object with the state of the image\n *\n * @example\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\n */\nexport const useImage = (\n src: string,\n options?: UseImageOptions,\n useQueryOptions: Omit<\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\n 'initialData' | 'placeholderData' | 'select'\n > = {}\n) =>\n useQuery(() => loadImage(src, options), {\n keys: [src, ...(useQueryOptions.keys ?? [])],\n ...useQueryOptions\n });\n"],"names":["loadImage","src","options","resolve","reject","img","srcset","sizes","className","loading","crossorigin","referrerPolicy","useImage","useQueryOptions","useQuery"],"mappings":";AAyBA,MAAMA,IAAY,OAAOC,GAAaC,IAA2B,CAAA,MAC/D,IAAI,QAAQ,CAACC,GAASC,MAAW;AACzB,QAAAC,IAAM,IAAI,MAAM,GAChB,EAAE,QAAAC,GAAQ,OAAAC,GAAO,OAAOC,GAAW,SAAAC,GAAS,aAAAC,GAAa,gBAAAC,MAAmBT;AAElF,EAAAG,EAAI,MAAMJ,GACNK,QAAY,SAASA,IACrBC,QAAW,QAAQA,IACnBC,QAAe,YAAYA,IAC3BC,QAAa,UAAUA,IACvBC,QAAiB,cAAcA,IAE/BC,QAAoB,iBAAiBA,IAErCN,EAAA,SAAS,MAAMF,EAAQE,CAAG,GAC9BA,EAAI,UAAUD;AAChB,CAAC,GAyBUQ,IAAW,CACtBX,GACAC,GACAW,IAGI,CAAA,MAEJC,EAAS,MAAMd,EAAUC,GAAKC,CAAO,GAAG;AAAA,EACtC,MAAM,CAACD,GAAK,GAAIY,EAAgB,QAAQ,CAAA,CAAG;AAAA,EAC3C,GAAGA;AACL,CAAC;"}
1
+ {"version":3,"file":"useImage.mjs","sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\n\nimport { useQuery } from '../useQuery/useQuery';\n\n/** The use image options */\nexport interface UseImageOptions {\n /** The alt of the image */\n alt?: string;\n /** The class of the image */\n class?: string;\n /** The crossorigin of the image */\n crossorigin?: string;\n /** The loading of the image */\n loading?: HTMLImageElement['loading'];\n /** The referrer policy of the image */\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\n /** The sizes of the image */\n sizes?: string;\n /** The srcset of the image */\n srcset?: string;\n}\n\n/** The use image return type */\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\n\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\n new Promise((resolve, reject) => {\n const img = new Image();\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\n\n img.src = src;\n if (srcset) img.srcset = srcset;\n if (sizes) img.sizes = sizes;\n if (className) img.className = className;\n if (loading) img.loading = loading;\n if (crossorigin) img.crossOrigin = crossorigin;\n\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\n\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n\n/**\n * @name useImage\n * @description - Hook that load an image in the browser\n * @category Browser\n *\n * @param {string} src The source of the image\n * @param {string} [options.srcset] The srcset of the image\n * @param {string} [options.sizes] The sizes of the image\n * @param {string} [options.alt] The alt of the image\n * @param {string} [options.class] The class of the image\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\n * @param {string} [options.crossorigin] The crossorigin of the image\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\n * @param {DependencyList} [useQueryOptions.keys] The dependencies for the hook\n * @param {(data: Data) => void} [useQueryOptions.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [useQueryOptions.onError] The callback function to be invoked on error\n * @param {number} [useQueryOptions.refetchInterval] The refetch interval\n * @param {boolean | number} [useQueryOptions.retry] The retry count of requests\n * @returns {UseImageReturn} An object with the state of the image\n *\n * @example\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\n */\nexport const useImage = (\n src: string,\n options?: UseImageOptions,\n useQueryOptions: Omit<\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\n 'initialData' | 'placeholderData' | 'select'\n > = {}\n) =>\n useQuery(() => loadImage(src, options), {\n keys: [src, ...(useQueryOptions.keys ?? [])],\n ...useQueryOptions\n });\n"],"names":["loadImage","src","options","resolve","reject","img","srcset","sizes","className","loading","crossorigin","referrerPolicy","useImage","useQueryOptions","useQuery"],"mappings":";AAyBA,MAAMA,IAAY,OAAOC,GAAaC,IAA2B,CAAA,MAC/D,IAAI,QAAQ,CAACC,GAASC,MAAW;AAC/B,QAAMC,IAAM,IAAI,MAAA,GACV,EAAE,QAAAC,GAAQ,OAAAC,GAAO,OAAOC,GAAW,SAAAC,GAAS,aAAAC,GAAa,gBAAAC,MAAmBT;AAElF,EAAAG,EAAI,MAAMJ,GACNK,QAAY,SAASA,IACrBC,QAAW,QAAQA,IACnBC,QAAe,YAAYA,IAC3BC,QAAa,UAAUA,IACvBC,QAAiB,cAAcA,IAE/BC,QAAoB,iBAAiBA,IAEzCN,EAAI,SAAS,MAAMF,EAAQE,CAAG,GAC9BA,EAAI,UAAUD;AAChB,CAAC,GAyBUQ,IAAW,CACtBX,GACAC,GACAW,IAGI,CAAA,MAEJC,EAAS,MAAMd,EAAUC,GAAKC,CAAO,GAAG;AAAA,EACtC,MAAM,CAACD,GAAK,GAAIY,EAAgB,QAAQ,CAAA,CAAG;AAAA,EAC3C,GAAGA;AACL,CAAC;"}
@@ -1,13 +1,13 @@
1
- import { useState as v, useRef as S, useEffect as k } from "react";
2
- import { useEvent as H } from "../useEvent/useEvent.mjs";
3
- import { useRefState as I } from "../useRefState/useRefState.mjs";
4
- import { isTarget as T } from "../../utils/helpers/isTarget.mjs";
5
- import { getElement as W } from "../../utils/helpers/getElement.mjs";
6
- const j = (...e) => {
7
- const t = T(e[0]) ? e[0] : void 0, s = t ? e[1] : e[0], r = t ? e[2] : e[1], i = (r == null ? void 0 : r.direction) ?? "bottom", l = (r == null ? void 0 : r.distance) ?? 10, [c, f] = v(!1), n = I(), a = S(s);
1
+ import { useState as p, useRef as v, useEffect as S } from "react";
2
+ import { useEvent as k } from "../useEvent/useEvent.mjs";
3
+ import { useRefState as H } from "../useRefState/useRefState.mjs";
4
+ import { isTarget as I } from "../../utils/helpers/isTarget.mjs";
5
+ import { getElement as T } from "../../utils/helpers/getElement.mjs";
6
+ const M = (...e) => {
7
+ const t = I(e[0]) ? e[0] : void 0, s = t ? e[1] : e[0], c = t ? e[2] : e[1], i = c?.direction ?? "bottom", l = c?.distance ?? 10, [r, f] = p(!1), n = H(), a = v(s);
8
8
  a.current = s;
9
- const u = H(async (o) => {
10
- if (c) return;
9
+ const u = k(async (o) => {
10
+ if (r) return;
11
11
  const { clientHeight: g, scrollHeight: h, scrollTop: d, clientWidth: E, scrollWidth: L, scrollLeft: m } = o.target, R = h - (d + g), b = L - (m + E);
12
12
  ({
13
13
  bottom: R,
@@ -16,19 +16,19 @@ const j = (...e) => {
16
16
  left: m
17
17
  })[i] <= l && (f(!0), await a.current(o), f(!1));
18
18
  });
19
- return k(() => {
19
+ return S(() => {
20
20
  if (!t && !n.state) return;
21
- const o = t ? W(t) : n.current;
21
+ const o = t ? T(t) : n.current;
22
22
  if (o)
23
23
  return o.addEventListener("scroll", u), () => {
24
24
  o.removeEventListener("scroll", u);
25
25
  };
26
- }, [t, n.state, i, l]), t ? c : {
26
+ }, [t, n.state, i, l]), t ? r : {
27
27
  ref: n,
28
- loading: c
28
+ loading: r
29
29
  };
30
30
  };
31
31
  export {
32
- j as useInfiniteScroll
32
+ M as useInfiniteScroll
33
33
  };
34
34
  //# sourceMappingURL=useInfiniteScroll.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteScroll.mjs","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useEvent } from '../useEvent/useEvent';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n loading: boolean;\n };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {{ ref: StateRef<Target>, loading: boolean }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @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 {boolean} A loading indicator of the infinite scroll\n *\n * @example\n * const loading = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: 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\n const onLoadMore = useEvent(async (event: Event) => {\n if (loading) return;\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\n event.target as Element;\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\n\n const distances = {\n bottom: scrollBottom,\n top: scrollTop,\n right: scrollRight,\n left: scrollLeft\n };\n\n if (distances[direction] <= distance) {\n setIsLoading(true);\n await internalCallbackRef.current(event);\n setIsLoading(false);\n }\n });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target, internalRef.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","onLoadMore","useEvent","event","clientHeight","scrollHeight","scrollTop","clientWidth","scrollWidth","scrollLeft","scrollBottom","scrollRight","useEffect","element","getElement"],"mappings":";;;;;AA6Da,MAAAA,IAAqB,IAAIC,MAAkB;AAChD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCK,KAAYD,KAAA,gBAAAA,EAAS,cAAa,UAClCE,KAAWF,KAAA,gBAAAA,EAAS,aAAY,IAEhC,CAACG,GAASC,CAAY,IAAIC,EAAS,EAAK,GAExCC,IAAcC,EAAqB,GACnCC,IAAsBC,EAAOV,CAAQ;AAC3C,EAAAS,EAAoB,UAAUT;AAExB,QAAAW,IAAaC,EAAS,OAAOC,MAAiB;AAClD,QAAIT,EAAS;AACP,UAAA,EAAE,cAAAU,GAAc,cAAAC,GAAc,WAAAC,GAAW,aAAAC,GAAa,aAAAC,GAAa,YAAAC,MACvEN,EAAM,QACFO,IAAeL,KAAgBC,IAAYF,IAC3CO,IAAcH,KAAeC,IAAaF;AAS5C,KAPc;AAAA,MAChB,QAAQG;AAAA,MACR,KAAKJ;AAAA,MACL,OAAOK;AAAA,MACP,MAAMF;AAAA,IACR,GAEcjB,CAAS,KAAKC,MAC1BE,EAAa,EAAI,GACX,MAAAI,EAAoB,QAAQI,CAAK,GACvCR,EAAa,EAAK;AAAA,EACpB,CACD;AAcD,SAZAiB,EAAU,MAAM;AACd,QAAI,CAACxB,KAAU,CAACS,EAAY,MAAO;AACnC,UAAMgB,IAAWzB,IAAS0B,EAAW1B,CAAM,IAAIS,EAAY;AAC3D,QAAKgB;AAEG,aAAAA,EAAA,iBAAiB,UAAUZ,CAAU,GAEtC,MAAM;AACH,QAAAY,EAAA,oBAAoB,UAAUZ,CAAU;AAAA,MAClD;AAAA,EAAA,GACC,CAACb,GAAQS,EAAY,OAAOL,GAAWC,CAAQ,CAAC,GAE/CL,IAAeM,IACZ;AAAA,IACL,KAAKG;AAAA,IACL,SAAAH;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useInfiniteScroll.mjs","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useEvent } from '../useEvent/useEvent';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): boolean;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n loading: boolean;\n };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {{ ref: StateRef<Target>, loading: boolean }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @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 {boolean} A loading indicator of the infinite scroll\n *\n * @example\n * const loading = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: 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\n const onLoadMore = useEvent(async (event: Event) => {\n if (loading) return;\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\n event.target as Element;\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\n\n const distances = {\n bottom: scrollBottom,\n top: scrollTop,\n right: scrollRight,\n left: scrollLeft\n };\n\n if (distances[direction] <= distance) {\n setIsLoading(true);\n await internalCallbackRef.current(event);\n setIsLoading(false);\n }\n });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target, internalRef.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","onLoadMore","useEvent","event","clientHeight","scrollHeight","scrollTop","clientWidth","scrollWidth","scrollLeft","scrollBottom","scrollRight","useEffect","element","getElement"],"mappings":";;;;;AA6DO,MAAMA,IAAqB,IAAIC,MAAkB;AACtD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCI,IAAWH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCK,IAAYD,GAAS,aAAa,UAClCE,IAAWF,GAAS,YAAY,IAEhC,CAACG,GAASC,CAAY,IAAIC,EAAS,EAAK,GAExCC,IAAcC,EAAA,GACdC,IAAsBC,EAAOV,CAAQ;AAC3C,EAAAS,EAAoB,UAAUT;AAE9B,QAAMW,IAAaC,EAAS,OAAOC,MAAiB;AAClD,QAAIT,EAAS;AACb,UAAM,EAAE,cAAAU,GAAc,cAAAC,GAAc,WAAAC,GAAW,aAAAC,GAAa,aAAAC,GAAa,YAAAC,MACvEN,EAAM,QACFO,IAAeL,KAAgBC,IAAYF,IAC3CO,IAAcH,KAAeC,IAAaF;AAShD,KAPkB;AAAA,MAChB,QAAQG;AAAA,MACR,KAAKJ;AAAA,MACL,OAAOK;AAAA,MACP,MAAMF;AAAA,IAAA,GAGMjB,CAAS,KAAKC,MAC1BE,EAAa,EAAI,GACjB,MAAMI,EAAoB,QAAQI,CAAK,GACvCR,EAAa,EAAK;AAAA,EACpB,CACD;AAcD,SAZAiB,EAAU,MAAM;AACd,QAAI,CAACxB,KAAU,CAACS,EAAY,MAAO;AACnC,UAAMgB,IAAWzB,IAAS0B,EAAW1B,CAAM,IAAIS,EAAY;AAC3D,QAAKgB;AAEL,aAAAA,EAAQ,iBAAiB,UAAUZ,CAAU,GAEtC,MAAM;AACX,QAAAY,EAAQ,oBAAoB,UAAUZ,CAAU;AAAA,MAAA;AAAA,EAClD,GACC,CAACb,GAAQS,EAAY,OAAOL,GAAWC,CAAQ,CAAC,GAE/CL,IAAeM,IACZ;AAAA,IACL,KAAKG;AAAA,IACL,SAAAH;AAAA,EAAA;AAEJ;"}
@@ -1,33 +1,32 @@
1
- import { useState as d, useRef as l, useEffect as v } from "react";
2
- import { useRefState as a } from "../useRefState/useRefState.mjs";
3
- import { isTarget as I } from "../../utils/helpers/isTarget.mjs";
1
+ import { useState as m, useRef as l, useEffect as b } from "react";
2
+ import { useRefState as d } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as h } from "../../utils/helpers/isTarget.mjs";
4
4
  import { getElement as g } from "../../utils/helpers/getElement.mjs";
5
- const S = (...n) => {
6
- const t = I(n[0]) ? n[0] : void 0, e = t ? n[1] : n[0], s = (e == null ? void 0 : e.enabled) ?? !0, [r, b] = d(), c = a(), u = l(e == null ? void 0 : e.onChange);
7
- return u.current = e == null ? void 0 : e.onChange, v(() => {
8
- if (!s && !t && !c.state) return;
9
- const f = t ? g(t) : c.current;
10
- if (!f) return;
11
- const o = new IntersectionObserver(
12
- ([i]) => {
13
- var m;
14
- b(i), (m = u.current) == null || m.call(u, i);
5
+ const w = (...n) => {
6
+ const t = h(n[0]) ? n[0] : void 0, e = t ? n[1] : n[0], s = e?.enabled ?? !0, [r, a] = m(), o = d(), i = l(e?.onChange);
7
+ return i.current = e?.onChange, b(() => {
8
+ if (!s || !t && !o.state) return;
9
+ const c = t ? g(t) : o.current;
10
+ if (!c) return;
11
+ const u = new IntersectionObserver(
12
+ ([f]) => {
13
+ a(f), i.current?.(f);
15
14
  },
16
15
  {
17
16
  ...e,
18
- root: e != null && e.root ? g(e.root) : document
17
+ root: e?.root ? g(e.root) : document
19
18
  }
20
19
  );
21
- return o.observe(f), () => {
22
- o.disconnect();
20
+ return u.observe(c), () => {
21
+ u.disconnect();
23
22
  };
24
- }, [t, c.state, e == null ? void 0 : e.rootMargin, e == null ? void 0 : e.threshold, e == null ? void 0 : e.root, s]), t ? { entry: r, inView: !!(r != null && r.isIntersecting) } : {
25
- ref: c,
23
+ }, [t, o.state, e?.rootMargin, e?.threshold, e?.root, s]), t ? { entry: r, inView: !!r?.isIntersecting } : {
24
+ ref: o,
26
25
  entry: r,
27
- inView: !!(r != null && r.isIntersecting)
26
+ inView: !!r?.isIntersecting
28
27
  };
29
28
  };
30
29
  export {
31
- S as useIntersectionObserver
30
+ w as useIntersectionObserver
32
31
  };
33
32
  //# sourceMappingURL=useIntersectionObserver.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersectionObserver.mjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n enabled?: boolean;\n root?: HookTarget;\n onChange?: (entry: IntersectionObserverEntry) => void;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n entry?: IntersectionObserverEntry;\n inView: boolean;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Browser\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] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entry, inView } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entry, inView } = useIntersectionObserver(ref);\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseIntersectionObserverOptions | undefined;\n const enabled = options?.enabled ?? true;\n\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const internalRef = useRefState<Element>();\n const internalOnChangeRef = useRef<UseIntersectionObserverOptions['onChange']>(options?.onChange);\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled && !target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setEntry(entry);\n internalOnChangeRef.current?.(entry);\n },\n {\n ...options,\n root: options?.root ? (getElement(options.root) as Document | Element) : document\n }\n );\n\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [target, internalRef.state, options?.rootMargin, options?.threshold, options?.root, enabled]);\n\n if (target) return { entry, inView: !!entry?.isIntersecting };\n return {\n ref: internalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseIntersectionObserver;\n"],"names":["useIntersectionObserver","params","target","isTarget","options","enabled","entry","setEntry","useState","internalRef","useRefState","internalOnChangeRef","useRef","useEffect","element","getElement","observer","_a"],"mappings":";;;;AA2Da,MAAAA,IAA2B,IAAIC,MAAkB;AACtD,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACxCI,KAAUD,KAAA,gBAAAA,EAAS,YAAW,IAE9B,CAACE,GAAOC,CAAQ,IAAIC,EAAoC,GAExDC,IAAcC,EAAqB,GACnCC,IAAsBC,EAAmDR,KAAA,gBAAAA,EAAS,QAAQ;AA2B5F,SA1BJO,EAAoB,UAAUP,KAAA,gBAAAA,EAAS,UAEvCS,EAAU,MAAM;AACd,QAAI,CAACR,KAAW,CAACH,KAAU,CAACO,EAAY,MAAO;AAE/C,UAAMK,IAAUZ,IAASa,EAAWb,CAAM,IAAIO,EAAY;AAC1D,QAAI,CAACK,EAAS;AAEd,UAAME,IAAW,IAAI;AAAA,MACnB,CAAC,CAACV,CAAK,MAAM;;AACX,QAAAC,EAASD,CAAK,IACdW,IAAAN,EAAoB,YAApB,QAAAM,EAAA,KAAAN,GAA8BL;AAAAA,MAChC;AAAA,MACA;AAAA,QACE,GAAGF;AAAA,QACH,MAAMA,KAAA,QAAAA,EAAS,OAAQW,EAAWX,EAAQ,IAAI,IAA2B;AAAA,MAAA;AAAA,IAE7E;AAEA,WAAAY,EAAS,QAAQF,CAAkB,GAE5B,MAAM;AACX,MAAAE,EAAS,WAAW;AAAA,IACtB;AAAA,EACC,GAAA,CAACd,GAAQO,EAAY,OAAOL,KAAA,gBAAAA,EAAS,YAAYA,KAAA,gBAAAA,EAAS,WAAWA,KAAA,gBAAAA,EAAS,MAAMC,CAAO,CAAC,GAE3FH,IAAe,EAAE,OAAAI,GAAO,QAAQ,CAAC,EAACA,KAAA,QAAAA,EAAO,gBAAe,IACrD;AAAA,IACL,KAAKG;AAAA,IACL,OAAAH;AAAA,IACA,QAAQ,CAAC,EAACA,KAAA,QAAAA,EAAO;AAAA,EACnB;AACF;"}
1
+ {"version":3,"file":"useIntersectionObserver.mjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n enabled?: boolean;\n root?: HookTarget;\n onChange?: (entry: IntersectionObserverEntry) => void;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n entry?: IntersectionObserverEntry;\n inView: boolean;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Browser\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] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entry, inView } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entry, inView } = useIntersectionObserver(ref);\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseIntersectionObserverOptions | undefined;\n const enabled = options?.enabled ?? true;\n\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const internalRef = useRefState<Element>();\n const internalOnChangeRef = useRef<UseIntersectionObserverOptions['onChange']>(options?.onChange);\n internalOnChangeRef.current = options?.onChange;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setEntry(entry);\n internalOnChangeRef.current?.(entry);\n },\n {\n ...options,\n root: options?.root ? (getElement(options.root) as Document | Element) : document\n }\n );\n\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [target, internalRef.state, options?.rootMargin, options?.threshold, options?.root, enabled]);\n\n if (target) return { entry, inView: !!entry?.isIntersecting };\n return {\n ref: internalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseIntersectionObserver;\n"],"names":["useIntersectionObserver","params","target","isTarget","options","enabled","entry","setEntry","useState","internalRef","useRefState","internalOnChangeRef","useRef","useEffect","element","getElement","observer"],"mappings":";;;;AA2DO,MAAMA,IAA2B,IAAIC,MAAkB;AAC5D,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACxCI,IAAUD,GAAS,WAAW,IAE9B,CAACE,GAAOC,CAAQ,IAAIC,EAAA,GAEpBC,IAAcC,EAAA,GACdC,IAAsBC,EAAmDR,GAAS,QAAQ;AA2BhG,SA1BAO,EAAoB,UAAUP,GAAS,UAEvCS,EAAU,MAAM;AACd,QAAI,CAACR,KAAY,CAACH,KAAU,CAACO,EAAY,MAAQ;AAEjD,UAAMK,IAAUZ,IAASa,EAAWb,CAAM,IAAIO,EAAY;AAC1D,QAAI,CAACK,EAAS;AAEd,UAAME,IAAW,IAAI;AAAA,MACnB,CAAC,CAACV,CAAK,MAAM;AACX,QAAAC,EAASD,CAAK,GACdK,EAAoB,UAAUL,CAAK;AAAA,MAAA;AAAA,MAErC;AAAA,QACE,GAAGF;AAAA,QACH,MAAMA,GAAS,OAAQW,EAAWX,EAAQ,IAAI,IAA2B;AAAA,MAAA;AAAA,IAC3E;AAGF,WAAAY,EAAS,QAAQF,CAAkB,GAE5B,MAAM;AACX,MAAAE,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC,CAACd,GAAQO,EAAY,OAAOL,GAAS,YAAYA,GAAS,WAAWA,GAAS,MAAMC,CAAO,CAAC,GAE3FH,IAAe,EAAE,OAAAI,GAAO,QAAQ,CAAC,CAACA,GAAO,eAAA,IACtC;AAAA,IACL,KAAKG;AAAA,IACL,OAAAH;AAAA,IACA,QAAQ,CAAC,CAACA,GAAO;AAAA,EAAA;AAErB;"}
@@ -1,18 +1,18 @@
1
- import { useState as f, useRef as s, useEffect as v } from "react";
1
+ import { useState as i, useRef as s, useEffect as f } from "react";
2
2
  const y = (...e) => {
3
- const u = e[0], n = (typeof e[1] == "number" ? e[1] : e[1].interval) ?? 1e3, r = typeof e[1] == "object" ? e[1] : e[2], i = (r == null ? void 0 : r.immediately) ?? !0, [t, c] = f(i ?? !0), o = s(void 0), l = s(u);
4
- return l.current = u, v(() => {
3
+ const o = e[0], n = (typeof e[1] == "number" ? e[1] : e[1].interval) ?? 1e3, l = (typeof e[1] == "object" ? e[1] : e[2])?.immediately ?? !0, [t, r] = i(l ?? !0), c = s(void 0), u = s(o);
4
+ return u.current = o, f(() => {
5
5
  if (t)
6
- return o.current = setInterval(() => l.current(), n), () => {
7
- clearInterval(o.current);
6
+ return c.current = setInterval(() => u.current(), n), () => {
7
+ clearInterval(c.current);
8
8
  };
9
9
  }, [t, n]), {
10
10
  active: t,
11
- pause: () => c(!1),
11
+ pause: () => r(!1),
12
12
  resume: () => {
13
- n <= 0 || c(!0);
13
+ n <= 0 || r(!0);
14
14
  },
15
- toggle: () => c(!t)
15
+ toggle: () => r(!t)
16
16
  };
17
17
  };
18
18
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useInterval.mjs","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 *\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 = () => setActive(!active);\n\n return {\n active,\n pause,\n resume,\n toggle\n };\n}) as UseInterval;\n"],"names":["useInterval","params","callback","interval","options","immediately","active","setActive","useState","intervalIdRef","useRef","internalCallbackRef","useEffect"],"mappings":";AAgDa,MAAAA,IAAe,IAAIC,MAAqC;AAC7D,QAAAC,IAAWD,EAAO,CAAC,GACnBE,KACF,OAAOF,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACPA,EAAO,CAAC,EAAiD,aAAwB,KAClFG,IACJ,OAAOH,EAAO,CAAC,KAAM,WAChBA,EAAO,CAAC,IACRA,EAAO,CAAC,GACTI,KAAcD,KAAA,gBAAAA,EAAS,gBAAe,IAEtC,CAACE,GAAQC,CAAS,IAAIC,EAAkBH,KAAe,EAAI,GAE3DI,IAAgBC,EAAuC,MAAS,GAChEC,IAAsBD,EAAOR,CAAQ;AAC3C,SAAAS,EAAoB,UAAUT,GAE9BU,EAAU,MAAM;AACd,QAAKN;AAEL,aAAAG,EAAc,UAAU,YAAY,MAAME,EAAoB,WAAWR,CAAQ,GAC1E,MAAM;AACX,sBAAcM,EAAc,OAAO;AAAA,MACrC;AAAA,EAAA,GACC,CAACH,GAAQH,CAAQ,CAAC,GAWd;AAAA,IACL,QAAAG;AAAA,IACA,OAXY,MAAMC,EAAU,EAAK;AAAA,IAYjC,QAVa,MAAM;AACnB,MAAIJ,KAAY,KAChBI,EAAU,EAAI;AAAA,IAChB;AAAA,IAQE,QANa,MAAMA,EAAU,CAACD,CAAM;AAAA,EAOtC;AACF;"}
1
+ {"version":3,"file":"useInterval.mjs","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 *\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 = () => setActive(!active);\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"],"mappings":";AAgDO,MAAMA,IAAe,IAAIC,MAAqC;AACnE,QAAMC,IAAWD,EAAO,CAAC,GACnBE,KACF,OAAOF,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACPA,EAAO,CAAC,EAAiD,aAAwB,KAKlFG,KAHJ,OAAOH,EAAO,CAAC,KAAM,WAChBA,EAAO,CAAC,IACRA,EAAO,CAAC,IACc,eAAe,IAEtC,CAACI,GAAQC,CAAS,IAAIC,EAAkBH,KAAe,EAAI,GAE3DI,IAAgBC,EAAuC,MAAS,GAChEC,IAAsBD,EAAOP,CAAQ;AAC3C,SAAAQ,EAAoB,UAAUR,GAE9BS,EAAU,MAAM;AACd,QAAKN;AAEL,aAAAG,EAAc,UAAU,YAAY,MAAME,EAAoB,QAAA,GAAWP,CAAQ,GAC1E,MAAM;AACX,sBAAcK,EAAc,OAAO;AAAA,MAAA;AAAA,EACrC,GACC,CAACH,GAAQF,CAAQ,CAAC,GAWd;AAAA,IACL,QAAAE;AAAA,IACA,OAXY,MAAMC,EAAU,EAAK;AAAA,IAYjC,QAVa,MAAM;AACnB,MAAIH,KAAY,KAChBG,EAAU,EAAI;AAAA,IAAA;AAAA,IASd,QANa,MAAMA,EAAU,CAACD,CAAM;AAAA,EAMpC;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFirstRender.mjs","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n * @category Lifecycle\n *\n * @returns {boolean} True if the component is first render\n *\n * @example\n * const isFirstRender = useIsFirstRender();\n */\nexport const useIsFirstRender = () => {\n const renderRef = useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n};\n"],"names":["useIsFirstRender","renderRef","useRef"],"mappings":";AAYO,MAAMA,IAAmB,MAAM;AAC9B,QAAAC,IAAYC,EAAO,EAAI;AAEzB,SAAAD,EAAU,YAAY,MACxBA,EAAU,UAAU,IACb,MAGFA,EAAU;AACnB;"}
1
+ {"version":3,"file":"useIsFirstRender.mjs","sources":["../../../../src/hooks/useIsFirstRender/useIsFirstRender.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useIsFirstRender\n * @description - Hook that returns true if the component is first render\n * @category Lifecycle\n *\n * @returns {boolean} True if the component is first render\n *\n * @example\n * const isFirstRender = useIsFirstRender();\n */\nexport const useIsFirstRender = () => {\n const renderRef = useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n};\n"],"names":["useIsFirstRender","renderRef","useRef"],"mappings":";AAYO,MAAMA,IAAmB,MAAM;AACpC,QAAMC,IAAYC,EAAO,EAAI;AAE7B,SAAID,EAAU,YAAY,MACxBA,EAAU,UAAU,IACb,MAGFA,EAAU;AACnB;"}
@@ -1,30 +1,28 @@
1
- import { useState as w, useRef as m, useEffect as a } from "react";
2
- import { useRefState as l } from "../useRefState/useRefState.mjs";
3
- import { isTarget as p } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as A } from "../../utils/helpers/getElement.mjs";
5
- const S = (...s) => {
6
- const e = p(s[0]) ? s[0] : void 0, y = e ? s[1] : s[0], f = e ? s[2] : s[1], [d, k] = w(!1), c = l(window), t = m(y);
7
- t.current = y;
8
- const r = m(f);
9
- return r.current = f, a(() => {
10
- if (!e && !c.state) return;
11
- const o = e ? A(e) : c.current;
12
- if (!o) return;
13
- const v = (i) => {
14
- var u;
15
- const n = i;
16
- (Array.isArray(t.current) ? t.current.includes(n.key) : n.key === t.current) && (k(!0), (u = r.current) == null || u.call(r, !0, n));
17
- }, E = (i) => {
18
- var u;
19
- const n = i;
20
- (Array.isArray(t.current) ? t.current.includes(n.key) : n.key === t.current) && (k(!1), (u = r.current) == null || u.call(r, !1, n));
1
+ import { useState as v, useRef as l, useEffect as E } from "react";
2
+ import { useRefState as m } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as w } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as R } from "../../utils/helpers/getElement.mjs";
5
+ const g = (...n) => {
6
+ const e = w(n[0]) ? n[0] : void 0, i = e ? n[1] : n[0], f = e ? n[2] : n[1], [y, d] = v(!1), o = m(window), t = l(i);
7
+ t.current = i;
8
+ const c = l(f);
9
+ return c.current = f, E(() => {
10
+ if (!e && !o.state) return;
11
+ const s = e ? R(e) : o.current;
12
+ if (!s) return;
13
+ const k = (u) => {
14
+ const r = u;
15
+ (Array.isArray(t.current) ? t.current.includes(r.key) : r.key === t.current) && (d(!0), c.current?.(!0, r));
16
+ }, a = (u) => {
17
+ const r = u;
18
+ (Array.isArray(t.current) ? t.current.includes(r.key) : r.key === t.current) && (d(!1), c.current?.(!1, r));
21
19
  };
22
- return o.addEventListener("keydown", v), o.addEventListener("keyup", E), () => {
23
- o.removeEventListener("keydown", v), o.removeEventListener("keyup", E);
20
+ return s.addEventListener("keydown", k), s.addEventListener("keyup", a), () => {
21
+ s.removeEventListener("keydown", k), s.removeEventListener("keyup", a);
24
22
  };
25
- }, [e, c.state]), e ? d : { pressed: d, ref: c };
23
+ }, [e, o.state]), e ? y : { pressed: y, ref: o };
26
24
  };
27
25
  export {
28
- S as useKeyPress
26
+ g as useKeyPress
29
27
  };
30
28
  //# sourceMappingURL=useKeyPress.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPress.mjs","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, 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\nexport interface UseKeyPress {\n (target: HookTarget | Window, key: UseKeyPressKey, callback?: UseKeyPressCallback): boolean;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): { pressed: boolean; ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\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 {boolean} The pressed state of the key\n *\n * @example\n * const isKeyPressed = useKeyPress('a', window);\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 callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? 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 callbackRef.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 callbackRef.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, 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","callbackRef","useEffect","element","getElement","onKeyDown","event","keyboardEvent","_a","onKeyUp"],"mappings":";;;;AAiDa,MAAAA,IAAe,IAAIC,MAAkB;AAC1C,QAAAC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAOF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACpCI,IAAYH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAEzC,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAcC,EAAY,MAAM,GAEhCC,IAASC,EAAOR,CAAG;AACzB,EAAAO,EAAO,UAAUP;AACX,QAAAS,IAAcD,EAAOP,CAAQ;AA0CnC,SAzCAQ,EAAY,UAAUR,GAEtBS,EAAU,MAAM;AACd,QAAI,CAACZ,KAAU,CAACO,EAAY,MAAO;AAEnC,UAAMM,IAAWb,IAASc,EAAWd,CAAM,IAAIO,EAAY;AAC3D,QAAI,CAACM,EAAS;AAER,UAAAE,IAAY,CAACC,MAAiB;;AAClC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAI,IACHa,IAAAP,EAAA,YAAA,QAAAO,EAAA,KAAAP,GAAU,IAAMM;AAAA,IAEhC,GAEME,IAAU,CAACH,MAAiB;;AAChC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAK,IACJa,IAAAP,EAAA,YAAA,QAAAO,EAAA,KAAAP,GAAU,IAAOM;AAAA,IAEjC;AAEQ,WAAAJ,EAAA,iBAAiB,WAAWE,CAAS,GACrCF,EAAA,iBAAiB,SAASM,CAAO,GAElC,MAAM;AACH,MAAAN,EAAA,oBAAoB,WAAWE,CAAS,GACxCF,EAAA,oBAAoB,SAASM,CAAO;AAAA,IAC9C;AAAA,EACC,GAAA,CAACnB,GAAQO,EAAY,KAAK,CAAC,GAE1BP,IAAeI,IACZ,EAAE,SAAAA,GAAS,KAAKG,EAAY;AACrC;"}
1
+ {"version":3,"file":"useKeyPress.mjs","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, 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\nexport interface UseKeyPress {\n (target: HookTarget | Window, key: UseKeyPressKey, callback?: UseKeyPressCallback): boolean;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): { pressed: boolean; ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\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 {boolean} The pressed state of the key\n *\n * @example\n * const isKeyPressed = useKeyPress('a', window);\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 callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? 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 callbackRef.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 callbackRef.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, 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","callbackRef","useEffect","element","getElement","onKeyDown","event","keyboardEvent","onKeyUp"],"mappings":";;;;AAiDO,MAAMA,IAAe,IAAIC,MAAkB;AAChD,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAOF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACpCI,IAAYH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAEzC,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAcC,EAAY,MAAM,GAEhCC,IAASC,EAAOR,CAAG;AACzB,EAAAO,EAAO,UAAUP;AACjB,QAAMS,IAAcD,EAAOP,CAAQ;AA0CnC,SAzCAQ,EAAY,UAAUR,GAEtBS,EAAU,MAAM;AACd,QAAI,CAACZ,KAAU,CAACO,EAAY,MAAO;AAEnC,UAAMM,IAAWb,IAASc,EAAWd,CAAM,IAAIO,EAAY;AAC3D,QAAI,CAACM,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAI,GACfM,EAAY,UAAU,IAAMM,CAAa;AAAA,IAC3C,GAGIC,IAAU,CAACF,MAAiB;AAChC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAK,GAChBM,EAAY,UAAU,IAAOM,CAAa;AAAA,IAC5C;AAGF,WAAAJ,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASK,CAAO,GAElC,MAAM;AACX,MAAAL,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASK,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAAClB,GAAQO,EAAY,KAAK,CAAC,GAE1BP,IAAeI,IACZ,EAAE,SAAAA,GAAS,KAAKG,EAAA;AACzB;"}
@@ -1,31 +1,31 @@
1
- import { useRef as k, useEffect as l } from "react";
2
- import { useRefState as o } from "../useRefState/useRefState.mjs";
3
- import { isTarget as E } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as w } from "../../utils/helpers/getElement.mjs";
5
- const K = (...r) => {
6
- const t = E(r[0]) ? r[0] : void 0, f = t ? r[1] : r[0], s = t ? r[2] : r[1], e = t ? r[3] : r[2], c = o(window), n = k(f);
7
- n.current = f;
8
- const y = k(s);
9
- if (y.current = s, l(() => {
10
- const u = t ? w(t) : c.current;
11
- if (!u) return;
12
- const v = (i) => {
13
- const d = i;
14
- (Array.isArray(n.current) ? n.current : [n.current]).includes(d.key) && y.current(d);
1
+ import { useRef as v, useEffect as k } from "react";
2
+ import { useRefState as p } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as l } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as E } from "../../utils/helpers/getElement.mjs";
5
+ const A = (...e) => {
6
+ const t = l(e[0]) ? e[0] : void 0, s = t ? e[1] : e[0], i = t ? e[2] : e[1], n = t ? e[3] : e[2], o = p(window), r = v(s);
7
+ r.current = s;
8
+ const u = v(i);
9
+ if (u.current = i, k(() => {
10
+ const c = t ? E(t) : o.current;
11
+ if (!c) return;
12
+ const f = (d) => {
13
+ const y = d;
14
+ (Array.isArray(r.current) ? r.current : [r.current]).includes(y.key) && u.current(y);
15
15
  };
16
- return u.addEventListener("keydown", v, {
17
- capture: e == null ? void 0 : e.capture,
18
- passive: e == null ? void 0 : e.passive,
19
- once: e == null ? void 0 : e.once
16
+ return c.addEventListener("keydown", f, {
17
+ capture: n?.capture,
18
+ passive: n?.passive,
19
+ once: n?.once
20
20
  }), () => {
21
- u.removeEventListener("keydown", v, {
22
- capture: e == null ? void 0 : e.capture
21
+ c.removeEventListener("keydown", f, {
22
+ capture: n?.capture
23
23
  });
24
24
  };
25
- }, [t, c.state, e == null ? void 0 : e.capture, e == null ? void 0 : e.passive, e == null ? void 0 : e.once]), !t)
26
- return c;
25
+ }, [t, o.state, n?.capture, n?.passive, n?.once]), !t)
26
+ return o;
27
27
  };
28
28
  export {
29
- K as useKeyPressEvent
29
+ A as useKeyPressEvent
30
30
  };
31
31
  //# sourceMappingURL=useKeyPressEvent.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyPressEvent.mjs","sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, 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 *\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 ? 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 }, [target, internalRef.state, options?.capture, options?.passive, options?.once]);\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","getElement","onKeyDown","event","keyboardEvent"],"mappings":";;;;AAgEa,MAAAA,IAAoB,IAAIC,MAAkB;AAC/C,QAAAC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAOF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACpCI,IAAYH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCK,IAAWJ,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCM,IAAcC,EAAY,MAAM,GAEhCC,IAASC,EAAON,CAAG;AACzB,EAAAK,EAAO,UAAUL;AACX,QAAAO,IAAcD,EAAOL,CAAQ;AA4BnC,MA3BAM,EAAY,UAAUN,GAEtBO,EAAU,MAAM;AACd,UAAMC,IAAWX,IAASY,EAAWZ,CAAM,IAAIK,EAAY;AAC3D,QAAI,CAACM,EAAS;AAER,UAAAE,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AAEtB,OADa,MAAM,QAAQP,EAAO,OAAO,IAAIA,EAAO,UAAU,CAACA,EAAO,OAAO,GACpE,SAASQ,EAAc,GAAG,KACjCN,EAAY,QAAQM,CAAa;AAAA,IAErC;AAEQ,WAAAJ,EAAA,iBAAiB,WAAWE,GAAW;AAAA,MAC7C,SAAST,KAAA,gBAAAA,EAAS;AAAA,MAClB,SAASA,KAAA,gBAAAA,EAAS;AAAA,MAClB,MAAMA,KAAA,gBAAAA,EAAS;AAAA,IAAA,CAChB,GAEM,MAAM;AACH,MAAAO,EAAA,oBAAoB,WAAWE,GAAW;AAAA,QAChD,SAAST,KAAA,gBAAAA,EAAS;AAAA,MAAA,CACnB;AAAA,IACH;AAAA,EACF,GAAG,CAACJ,GAAQK,EAAY,OAAOD,KAAA,gBAAAA,EAAS,SAASA,KAAA,gBAAAA,EAAS,SAASA,KAAA,gBAAAA,EAAS,IAAI,CAAC,GAE7E,CAAAJ;AACG,WAAAK;AACT;"}
1
+ {"version":3,"file":"useKeyPressEvent.mjs","sources":["../../../../src/hooks/useKeyPressEvent/useKeyPressEvent.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, 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 *\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 ? 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 }, [target, internalRef.state, options?.capture, options?.passive, options?.once]);\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","getElement","onKeyDown","event","keyboardEvent"],"mappings":";;;;AAgEO,MAAMA,IAAoB,IAAIC,MAAkB;AACrD,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAOF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACpCI,IAAYH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACzCK,IAAWJ,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCM,IAAcC,EAAY,MAAM,GAEhCC,IAASC,EAAON,CAAG;AACzB,EAAAK,EAAO,UAAUL;AACjB,QAAMO,IAAcD,EAAOL,CAAQ;AA4BnC,MA3BAM,EAAY,UAAUN,GAEtBO,EAAU,MAAM;AACd,UAAMC,IAAWX,IAASY,EAAWZ,CAAM,IAAIK,EAAY;AAC3D,QAAI,CAACM,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AAEtB,OADa,MAAM,QAAQP,EAAO,OAAO,IAAIA,EAAO,UAAU,CAACA,EAAO,OAAO,GACpE,SAASQ,EAAc,GAAG,KACjCN,EAAY,QAAQM,CAAa;AAAA,IACnC;AAGF,WAAAJ,EAAQ,iBAAiB,WAAWE,GAAW;AAAA,MAC7C,SAAST,GAAS;AAAA,MAClB,SAASA,GAAS;AAAA,MAClB,MAAMA,GAAS;AAAA,IAAA,CAChB,GAEM,MAAM;AACX,MAAAO,EAAQ,oBAAoB,WAAWE,GAAW;AAAA,QAChD,SAAST,GAAS;AAAA,MAAA,CACnB;AAAA,IAAA;AAAA,EACH,GACC,CAACJ,GAAQK,EAAY,OAAOD,GAAS,SAASA,GAAS,SAASA,GAAS,IAAI,CAAC,GAE7E,CAAAJ;AACJ,WAAOK;AACT;"}
@@ -1,27 +1,21 @@
1
- import { useEffect as m } from "react";
2
- import { useRefState as y } from "../useRefState/useRefState.mjs";
3
- import { isTarget as i } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as s } from "../../utils/helpers/getElement.mjs";
5
- const k = (...o) => {
6
- const t = i(o[0]) ? o[0] : void 0, e = t ? o[1] : o[0], f = y(window);
7
- if (m(() => {
8
- if (!t && !f.state) return;
9
- const r = t ? s(t) : f.current;
10
- if (!r) return;
11
- const c = (u) => {
12
- var n;
13
- return (n = e == null ? void 0 : e.onKeyDown) == null ? void 0 : n.call(e, u);
14
- }, d = (u) => {
15
- var n;
16
- return (n = e == null ? void 0 : e.onKeyUp) == null ? void 0 : n.call(e, u);
1
+ import { useEffect as u } from "react";
2
+ import { useRefState as c } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as d } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as m } from "../../utils/helpers/getElement.mjs";
5
+ const E = (...n) => {
6
+ const e = d(n[0]) ? n[0] : void 0, i = e ? n[1] : n[0], o = c(window);
7
+ if (u(() => {
8
+ if (!e && !o.state) return;
9
+ const t = e ? m(e) : o.current;
10
+ if (!t) return;
11
+ const s = (r) => i?.onKeyDown?.(r), f = (r) => i?.onKeyUp?.(r);
12
+ return t.addEventListener("keydown", s), t.addEventListener("keyup", f), () => {
13
+ t.removeEventListener("keydown", s), t.removeEventListener("keyup", f);
17
14
  };
18
- return r.addEventListener("keydown", c), r.addEventListener("keyup", d), () => {
19
- r.removeEventListener("keydown", c), r.removeEventListener("keyup", d);
20
- };
21
- }, [t, f.state]), !t)
22
- return f;
15
+ }, [e, o.state]), !e)
16
+ return o;
23
17
  };
24
18
  export {
25
- k as useKeyboard
19
+ E as useKeyboard
26
20
  };
27
21
  //# sourceMappingURL=useKeyboard.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboard.mjs","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard options type */\nexport interface UseKeyboardOptions {\n /** The callback function to be invoked on key down */\n onKeyDown?: KeyboardEventHandler;\n /** The callback function to be invoked on key up */\n onKeyUp?: KeyboardEventHandler;\n}\n\nexport interface UseKeyboard {\n (target: HookTarget | Window, options: UseKeyboardOptions): void;\n\n <Target extends Element>(options: UseKeyboardOptions, target?: never): { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that helps to listen for keyboard events\n * @category Sensors\n *\n * @overload\n * @param {HookTarget | Window} target The target to attach the event listeners to\n * @param {UseKeyboardOptions} [options] The keyboard event options\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, { onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyboardOptions} [options] The keyboard event options\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard({ onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n */\nexport const useKeyboard = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const options = (target ? params[1] : params[0]) as UseKeyboardOptions;\n\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => options?.onKeyDown?.(event as KeyboardEvent);\n const onKeyUp = (event: Event) => options?.onKeyUp?.(event as KeyboardEvent);\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, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyboard;\n"],"names":["useKeyboard","params","target","isTarget","options","internalRef","useRefState","useEffect","element","getElement","onKeyDown","event","_a","onKeyUp"],"mappings":";;;;AAgDa,MAAAA,IAAe,IAAIC,MAAkB;AAC1C,QAAAC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCI,IAAcC,EAAY,MAAM;AAoBtC,MAlBAC,EAAU,MAAM;AACd,QAAI,CAACL,KAAU,CAACG,EAAY,MAAO;AAEnC,UAAMG,IAAWN,IAASO,EAAWP,CAAM,IAAIG,EAAY;AAC3D,QAAI,CAACG,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;;AAAA,cAAAC,IAAAR,KAAA,gBAAAA,EAAS,cAAT,gBAAAQ,EAAA,KAAAR,GAAqBO;AAAA,OACnDE,IAAU,CAACF,MAAiB;;AAAA,cAAAC,IAAAR,KAAA,gBAAAA,EAAS,YAAT,gBAAAQ,EAAA,KAAAR,GAAmBO;AAAA;AAE7C,WAAAH,EAAA,iBAAiB,WAAWE,CAAS,GACrCF,EAAA,iBAAiB,SAASK,CAAO,GAElC,MAAM;AACH,MAAAL,EAAA,oBAAoB,WAAWE,CAAS,GACxCF,EAAA,oBAAoB,SAASK,CAAO;AAAA,IAC9C;AAAA,EACC,GAAA,CAACX,GAAQG,EAAY,KAAK,CAAC,GAE1B,CAAAH;AACG,WAAAG;AACT;"}
1
+ {"version":3,"file":"useKeyboard.mjs","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard options type */\nexport interface UseKeyboardOptions {\n /** The callback function to be invoked on key down */\n onKeyDown?: KeyboardEventHandler;\n /** The callback function to be invoked on key up */\n onKeyUp?: KeyboardEventHandler;\n}\n\nexport interface UseKeyboard {\n (target: HookTarget | Window, options: UseKeyboardOptions): void;\n\n <Target extends Element>(options: UseKeyboardOptions, target?: never): { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that helps to listen for keyboard events\n * @category Sensors\n *\n * @overload\n * @param {HookTarget | Window} target The target to attach the event listeners to\n * @param {UseKeyboardOptions} [options] The keyboard event options\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, { onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyboardOptions} [options] The keyboard event options\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard({ onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n */\nexport const useKeyboard = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const options = (target ? params[1] : params[0]) as UseKeyboardOptions;\n\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => options?.onKeyDown?.(event as KeyboardEvent);\n const onKeyUp = (event: Event) => options?.onKeyUp?.(event as KeyboardEvent);\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, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyboard;\n"],"names":["useKeyboard","params","target","isTarget","options","internalRef","useRefState","useEffect","element","getElement","onKeyDown","event","onKeyUp"],"mappings":";;;;AAgDO,MAAMA,IAAe,IAAIC,MAAkB;AAChD,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCI,IAAcC,EAAY,MAAM;AAoBtC,MAlBAC,EAAU,MAAM;AACd,QAAI,CAACL,KAAU,CAACG,EAAY,MAAO;AAEnC,UAAMG,IAAWN,IAASO,EAAWP,CAAM,IAAIG,EAAY;AAC3D,QAAI,CAACG,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiBP,GAAS,YAAYO,CAAsB,GACzEC,IAAU,CAACD,MAAiBP,GAAS,UAAUO,CAAsB;AAE3E,WAAAH,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASI,CAAO,GAElC,MAAM;AACX,MAAAJ,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASI,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAACV,GAAQG,EAAY,KAAK,CAAC,GAE1B,CAAAH;AACJ,WAAOG;AACT;"}
@@ -1,27 +1,27 @@
1
- import { useState as v, useEffect as E } from "react";
2
- import { useRefState as a } from "../useRefState/useRefState.mjs";
3
- import { isTarget as l } from "../../utils/helpers/isTarget.mjs";
4
- import { getElement as w } from "../../utils/helpers/getElement.mjs";
5
- const p = (...o) => {
6
- const e = l(o[0]) ? o[0] : void 0, s = e ? o[1] : o[0], f = (s == null ? void 0 : s.enabled) ?? !0, [y, c] = v([]), d = a(window);
7
- return E(() => {
8
- if (!f) return;
9
- c([]);
10
- const t = e ? w(e) : d.current;
1
+ import { useState as k, useEffect as v } from "react";
2
+ import { useRefState as E } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as a } from "../../utils/helpers/isTarget.mjs";
4
+ import { getElement as l } from "../../utils/helpers/getElement.mjs";
5
+ const K = (...r) => {
6
+ const e = a(r[0]) ? r[0] : void 0, u = (e ? r[1] : r[0])?.enabled ?? !0, [f, s] = k([]), i = E(window);
7
+ return v(() => {
8
+ if (!u) return;
9
+ s([]);
10
+ const t = e ? l(e) : i.current;
11
11
  if (!t) return;
12
- const m = (i) => {
13
- const n = i;
14
- c((r) => r.some(({ code: u }) => u === n.code) ? r : [...r, { key: n.key, code: n.code }]);
15
- }, k = (i) => {
16
- const n = i;
17
- c((r) => r.filter(({ code: u }) => u !== n.code));
12
+ const y = (c) => {
13
+ const n = c;
14
+ s((o) => o.some(({ code: d }) => d === n.code) ? o : [...o, { key: n.key, code: n.code }]);
15
+ }, m = (c) => {
16
+ const n = c;
17
+ s((o) => o.filter(({ code: d }) => d !== n.code));
18
18
  };
19
- return t.addEventListener("keydown", m), t.addEventListener("keyup", k), () => {
20
- t.removeEventListener("keydown", m), t.removeEventListener("keyup", k);
19
+ return t.addEventListener("keydown", y), t.addEventListener("keyup", m), () => {
20
+ t.removeEventListener("keydown", y), t.removeEventListener("keyup", m);
21
21
  };
22
- }, [f, d.state, e]), e ? y : { value: y, ref: d };
22
+ }, [u, i.state, e]), e ? f : { value: f, ref: i };
23
23
  };
24
24
  export {
25
- p as useKeysPressed
25
+ K as useKeysPressed
26
26
  };
27
27
  //# sourceMappingURL=useKeysPressed.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeysPressed.mjs","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressed {\n (\n target: HookTarget | Window,\n options?: UseKeysPressedOptions\n ): Array<{ key: string; code: string }>;\n\n <Target extends Element>(\n options?: UseKeysPressedOptions\n ): {\n value: Array<{ key: string; code: string }>;\n ref: StateRef<Target>;\n };\n}\n\n/**\n * Hook that tracks which keyboard keys are currently pressed\n *\n * @name useKeysPressed\n * @description Tracks all currently pressed keyboard keys and their codes\n * @category Sensors\n *\n * @overload\n * @param {HookTarget | Window} target DOM element or ref to attach keyboard listeners to\n * @param {UseKeysPressedOptions} [options.enabled=true] Enable or disable the event listeners\n * @returns {Array<{ key: string; code: string }>} Array of currently pressed keys with their key and code values\n *\n * @example\n * const pressedKeys = useKeysPressed(ref);\n *\n * @overload\n * @template Target - Type of the target DOM element\n * @param {UseKeysPressedOptions} [options] - Optional configuration options\n * @returns {{ keys: Array<{ key: string; code: string }>; ref: StateRef<Target> }} Object containing pressed keys array and ref to attach to a DOM element\n *\n * @example\n * const { value, ref } = useKeysPressed();\n */\nexport const useKeysPressed = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseKeysPressedOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [value, setValue] = useState<{ key: string; code: string }[]>([]);\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!enabled) return;\n setValue([]);\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => {\n if (prevValue.some(({ code }) => code === keyboardEvent.code)) return prevValue;\n return [...prevValue, { key: keyboardEvent.key, code: keyboardEvent.code }];\n });\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => prevValue.filter(({ code }) => code !== keyboardEvent.code));\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 }, [enabled, internalRef.state, target]);\n\n if (target) return value;\n return { value, ref: internalRef };\n}) as UseKeysPressed;\n"],"names":["useKeysPressed","params","target","isTarget","options","enabled","value","setValue","useState","internalRef","useRefState","useEffect","element","getElement","onKeyDown","event","keyboardEvent","prevValue","code","onKeyUp"],"mappings":";;;;AAqDa,MAAAA,IAAkB,IAAIC,MAAkB;AAC7C,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CG,IAAWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAExCI,KAAUD,KAAA,gBAAAA,EAAS,YAAW,IAC9B,CAACE,GAAOC,CAAQ,IAAIC,EAA0C,CAAA,CAAE,GAChEC,IAAcC,EAAY,MAAM;AA+BtC,SA7BAC,EAAU,MAAM;AACd,QAAI,CAACN,EAAS;AACd,IAAAE,EAAS,CAAA,CAAE;AAEX,UAAMK,IAAWV,IAASW,EAAWX,CAAM,IAAIO,EAAY;AAC3D,QAAI,CAACG,EAAS;AAER,UAAAE,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AACtB,MAAAR,EAAS,CAACU,MACJA,EAAU,KAAK,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,IAAUC,IAC/D,CAAC,GAAGA,GAAW,EAAE,KAAKD,EAAc,KAAK,MAAMA,EAAc,MAAM,CAC3E;AAAA,IACH,GAEMG,IAAU,CAACJ,MAAiB;AAChC,YAAMC,IAAgBD;AACb,MAAAR,EAAA,CAACU,MAAcA,EAAU,OAAO,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,CAAC;AAAA,IACrF;AAEQ,WAAAJ,EAAA,iBAAiB,WAAWE,CAAS,GACrCF,EAAA,iBAAiB,SAASO,CAAO,GAElC,MAAM;AACH,MAAAP,EAAA,oBAAoB,WAAWE,CAAS,GACxCF,EAAA,oBAAoB,SAASO,CAAO;AAAA,IAC9C;AAAA,KACC,CAACd,GAASI,EAAY,OAAOP,CAAM,CAAC,GAEnCA,IAAeI,IACZ,EAAE,OAAAA,GAAO,KAAKG,EAAY;AACnC;"}
1
+ {"version":3,"file":"useKeysPressed.mjs","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressed {\n (\n target: HookTarget | Window,\n options?: UseKeysPressedOptions\n ): Array<{ key: string; code: string }>;\n\n <Target extends Element>(\n options?: UseKeysPressedOptions\n ): {\n value: Array<{ key: string; code: string }>;\n ref: StateRef<Target>;\n };\n}\n\n/**\n * Hook that tracks which keyboard keys are currently pressed\n *\n * @name useKeysPressed\n * @description Tracks all currently pressed keyboard keys and their codes\n * @category Sensors\n *\n * @overload\n * @param {HookTarget | Window} target DOM element or ref to attach keyboard listeners to\n * @param {UseKeysPressedOptions} [options.enabled=true] Enable or disable the event listeners\n * @returns {Array<{ key: string; code: string }>} Array of currently pressed keys with their key and code values\n *\n * @example\n * const pressedKeys = useKeysPressed(ref);\n *\n * @overload\n * @template Target - Type of the target DOM element\n * @param {UseKeysPressedOptions} [options] - Optional configuration options\n * @returns {{ keys: Array<{ key: string; code: string }>; ref: StateRef<Target> }} Object containing pressed keys array and ref to attach to a DOM element\n *\n * @example\n * const { value, ref } = useKeysPressed();\n */\nexport const useKeysPressed = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseKeysPressedOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [value, setValue] = useState<{ key: string; code: string }[]>([]);\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!enabled) return;\n setValue([]);\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => {\n if (prevValue.some(({ code }) => code === keyboardEvent.code)) return prevValue;\n return [...prevValue, { key: keyboardEvent.key, code: keyboardEvent.code }];\n });\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => prevValue.filter(({ code }) => code !== keyboardEvent.code));\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 }, [enabled, internalRef.state, target]);\n\n if (target) return value;\n return { value, ref: internalRef };\n}) as UseKeysPressed;\n"],"names":["useKeysPressed","params","target","isTarget","enabled","value","setValue","useState","internalRef","useRefState","useEffect","element","getElement","onKeyDown","event","keyboardEvent","prevValue","code","onKeyUp"],"mappings":";;;;AAqDO,MAAMA,IAAkB,IAAIC,MAAkB;AACnD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAG5CG,KAFWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,IAErB,WAAW,IAC9B,CAACI,GAAOC,CAAQ,IAAIC,EAA0C,CAAA,CAAE,GAChEC,IAAcC,EAAY,MAAM;AA+BtC,SA7BAC,EAAU,MAAM;AACd,QAAI,CAACN,EAAS;AACd,IAAAE,EAAS,CAAA,CAAE;AAEX,UAAMK,IAAWT,IAASU,EAAWV,CAAM,IAAIM,EAAY;AAC3D,QAAI,CAACG,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AACtB,MAAAR,EAAS,CAACU,MACJA,EAAU,KAAK,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,IAAUC,IAC/D,CAAC,GAAGA,GAAW,EAAE,KAAKD,EAAc,KAAK,MAAMA,EAAc,MAAM,CAC3E;AAAA,IAAA,GAGGG,IAAU,CAACJ,MAAiB;AAChC,YAAMC,IAAgBD;AACtB,MAAAR,EAAS,CAACU,MAAcA,EAAU,OAAO,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,CAAC;AAAA,IAAA;AAGrF,WAAAJ,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASO,CAAO,GAElC,MAAM;AACX,MAAAP,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASO,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAACd,GAASI,EAAY,OAAON,CAAM,CAAC,GAEnCA,IAAeG,IACZ,EAAE,OAAAA,GAAO,KAAKG,EAAA;AACvB;"}
@@ -1,10 +1,10 @@
1
- import { useState as u } from "react";
2
- import { useDidUpdate as d } from "../useDidUpdate/useDidUpdate.mjs";
3
- const s = (a, e) => {
4
- const [t, r] = u((e == null ? void 0 : e.initialValue) ?? null);
5
- return d(() => r(Date.now()), [a]), t;
1
+ import { useState as s } from "react";
2
+ import { useDidUpdate as o } from "../useDidUpdate/useDidUpdate.mjs";
3
+ const u = (t, e) => {
4
+ const [a, n] = s(e?.initialValue ?? null);
5
+ return o(() => n(Date.now()), [t]), a;
6
6
  };
7
7
  export {
8
- s as useLastChanged
8
+ u as useLastChanged
9
9
  };
10
10
  //# sourceMappingURL=useLastChanged.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLastChanged.mjs","sources":["../../../../src/hooks/useLastChanged/useLastChanged.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/** The use last changed options type */\nexport interface UseLastChangedOptions {\n initialValue?: number;\n}\n\n/**\n * @name useLastChanged\n * @description - Hook for records the timestamp of the last change\n * @category Time\n *\n * @param {any} source The source of the last change\n * @param {number | null} [options.initialValue=null] The initial value\n * @returns {number | null} Return timestamp of the last change\n *\n * @example\n * const lastChanged = useLastChanged(source);\n */\nexport const useLastChanged = (source: any, options?: UseLastChangedOptions): number | null => {\n const [lastChanged, setLastChanged] = useState(options?.initialValue ?? null);\n\n useDidUpdate(() => setLastChanged(Date.now()), [source]);\n\n return lastChanged;\n};\n"],"names":["useLastChanged","source","options","lastChanged","setLastChanged","useState","useDidUpdate"],"mappings":";;AAqBa,MAAAA,IAAiB,CAACC,GAAaC,MAAmD;AAC7F,QAAM,CAACC,GAAaC,CAAc,IAAIC,GAASH,KAAA,gBAAAA,EAAS,iBAAgB,IAAI;AAE/D,SAAAI,EAAA,MAAMF,EAAe,KAAK,IAAA,CAAK,GAAG,CAACH,CAAM,CAAC,GAEhDE;AACT;"}
1
+ {"version":3,"file":"useLastChanged.mjs","sources":["../../../../src/hooks/useLastChanged/useLastChanged.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/** The use last changed options type */\nexport interface UseLastChangedOptions {\n initialValue?: number;\n}\n\n/**\n * @name useLastChanged\n * @description - Hook for records the timestamp of the last change\n * @category Time\n *\n * @param {any} source The source of the last change\n * @param {number | null} [options.initialValue=null] The initial value\n * @returns {number | null} Return timestamp of the last change\n *\n * @example\n * const lastChanged = useLastChanged(source);\n */\nexport const useLastChanged = (source: any, options?: UseLastChangedOptions): number | null => {\n const [lastChanged, setLastChanged] = useState(options?.initialValue ?? null);\n\n useDidUpdate(() => setLastChanged(Date.now()), [source]);\n\n return lastChanged;\n};\n"],"names":["useLastChanged","source","options","lastChanged","setLastChanged","useState","useDidUpdate"],"mappings":";;AAqBO,MAAMA,IAAiB,CAACC,GAAaC,MAAmD;AAC7F,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAASH,GAAS,gBAAgB,IAAI;AAE5E,SAAAI,EAAa,MAAMF,EAAe,KAAK,IAAA,CAAK,GAAG,CAACH,CAAM,CAAC,GAEhDE;AACT;"}