@siberiacancode/reactuse 0.3.14 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
  3. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  4. package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
  5. package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
  6. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
  7. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
  8. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
  9. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  10. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
  11. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
  12. package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
  13. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  14. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
  15. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
  16. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
  17. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  18. package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
  19. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  20. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
  21. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
  22. package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
  23. package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
  24. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
  25. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
  26. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
  27. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
  29. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  30. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
  31. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  32. package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
  33. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  34. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
  35. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  36. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
  37. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
  38. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
  39. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  40. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
  41. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  42. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
  43. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  44. package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
  45. package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
  46. package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
  47. package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
  48. package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
  49. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  50. package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
  51. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  52. package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
  53. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  54. package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
  55. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  56. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
  57. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  58. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
  59. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  60. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
  61. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
  62. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
  63. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
  64. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
  65. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  66. package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
  67. package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
  68. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
  69. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  70. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
  71. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  72. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
  73. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  74. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
  75. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  76. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
  77. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  78. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
  79. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  80. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
  81. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  82. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
  83. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  84. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
  85. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  86. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
  87. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  88. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
  89. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  90. package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
  91. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  92. package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
  93. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  94. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
  95. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  96. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
  97. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  98. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
  99. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  100. package/dist/cjs/hooks/useField/useField.cjs +2 -2
  101. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  102. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
  103. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  104. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
  105. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
  106. package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
  107. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  108. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
  109. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
  110. package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
  111. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  112. package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
  113. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  114. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
  115. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  116. package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
  117. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  118. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
  119. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  120. package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
  121. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  122. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
  123. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  124. package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
  125. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  126. package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
  127. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  128. package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
  129. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  130. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
  131. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  132. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
  133. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  134. package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
  135. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  136. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
  137. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  138. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
  139. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
  140. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
  141. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  142. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
  143. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  144. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
  145. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  146. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
  147. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  148. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
  149. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  150. package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
  151. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  152. package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
  153. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  154. package/dist/cjs/hooks/useList/useList.cjs +2 -2
  155. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  156. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
  157. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  158. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
  159. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  160. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
  161. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
  162. package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
  163. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  164. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
  165. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  166. package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
  167. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  168. package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
  169. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  170. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
  171. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
  172. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
  173. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  174. package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
  175. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  176. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
  177. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
  178. package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
  179. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  180. package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
  181. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  182. package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
  183. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  184. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
  185. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  186. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
  187. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  188. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
  189. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
  190. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
  191. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  192. package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
  193. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  194. package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
  195. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  196. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
  197. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  198. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
  199. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  200. package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
  201. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  202. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
  203. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  204. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
  205. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  206. package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
  207. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  208. package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
  209. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  210. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
  211. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  212. package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
  213. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  214. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
  215. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
  216. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
  217. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  218. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
  219. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  220. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
  221. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  222. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
  223. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  224. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
  225. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
  226. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
  227. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  228. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
  229. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  230. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
  231. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  232. package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
  233. package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
  234. package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
  235. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  236. package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
  237. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  238. package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
  239. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  240. package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
  241. package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
  242. package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
  243. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  244. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
  245. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  246. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
  247. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  248. package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
  249. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  250. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
  251. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  252. package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
  253. package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
  254. package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
  255. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  256. package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
  257. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  258. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
  259. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  260. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
  261. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  262. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
  263. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
  264. package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
  265. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  266. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
  267. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
  268. package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
  269. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  270. package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
  271. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
  272. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
  273. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  274. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
  275. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  276. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
  277. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  278. package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
  279. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  280. package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
  281. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  282. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
  283. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  284. package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
  285. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  286. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
  287. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  288. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
  289. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  290. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
  291. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
  292. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
  293. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  294. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
  295. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
  296. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
  297. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
  298. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
  299. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  300. package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
  301. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  302. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
  303. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  304. package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
  305. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  306. package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
  307. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  308. package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
  309. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  310. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
  311. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  312. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
  313. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  314. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
  315. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  316. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
  317. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
  318. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
  319. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  320. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
  321. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  322. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
  323. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  324. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
  325. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  326. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
  327. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  328. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
  329. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  330. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
  331. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  332. package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
  333. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  334. package/dist/cjs/index.cjs +1 -2
  335. package/dist/cjs/utils/helpers/copy.cjs +2 -2
  336. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  337. package/dist/cjs/utils/helpers/debounce.cjs +2 -2
  338. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  339. package/dist/cjs/utils/helpers/getDate.cjs +2 -2
  340. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  341. package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
  342. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  343. package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
  344. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  345. package/dist/cjs/utils/helpers/throttle.cjs +2 -2
  346. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  347. package/dist/esm/helpers/createContext/createContext.mjs +32 -33
  348. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  349. package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
  350. package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
  351. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
  352. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
  353. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
  354. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  355. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
  356. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
  357. package/dist/esm/helpers/createStore/createStore.mjs +25 -29
  358. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  359. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
  360. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
  361. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
  362. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  363. package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
  364. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  365. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
  366. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
  367. package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
  368. package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
  369. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
  370. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
  371. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
  372. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
  373. package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
  374. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  375. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
  376. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  377. package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
  378. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  379. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
  380. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  381. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
  382. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
  383. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
  384. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  385. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
  386. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  387. package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
  388. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  389. package/dist/esm/hooks/useConst/useConst.mjs +7 -6
  390. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  391. package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
  392. package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
  393. package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
  394. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  395. package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
  396. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  397. package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
  398. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  399. package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
  400. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  401. package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
  402. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  403. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
  404. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  405. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
  406. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
  407. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
  408. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
  409. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
  410. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  411. package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
  412. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  413. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
  414. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  415. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
  416. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  417. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
  418. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  419. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
  420. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  421. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
  422. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  423. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
  424. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  425. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
  426. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  427. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
  428. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  429. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
  430. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  431. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
  432. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  433. package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
  434. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  435. package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
  436. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  437. package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
  438. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  439. package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
  440. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  441. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
  442. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  443. package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
  444. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  445. package/dist/esm/hooks/useField/useField.mjs +61 -67
  446. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  447. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
  448. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  449. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
  450. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
  451. package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
  452. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  453. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
  454. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
  455. package/dist/esm/hooks/useFps/useFps.mjs +18 -22
  456. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  457. package/dist/esm/hooks/useFul/useFul.mjs +8 -7
  458. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  459. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
  460. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  461. package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
  462. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  463. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
  464. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  465. package/dist/esm/hooks/useHash/useHash.mjs +24 -26
  466. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  467. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
  468. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  469. package/dist/esm/hooks/useHover/useHover.mjs +30 -25
  470. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  471. package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
  472. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  473. package/dist/esm/hooks/useImage/useImage.mjs +24 -26
  474. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  475. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
  476. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  477. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
  478. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  479. package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
  480. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  481. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
  482. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  483. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
  484. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
  485. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
  486. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  487. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
  488. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  489. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
  490. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  491. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
  492. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  493. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
  494. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  495. package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
  496. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  497. package/dist/esm/hooks/useLess/useLess.mjs +9 -8
  498. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  499. package/dist/esm/hooks/useList/useList.mjs +22 -22
  500. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  501. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
  502. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
  503. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
  504. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  505. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
  506. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
  507. package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
  508. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  509. package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
  510. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  511. package/dist/esm/hooks/useMap/useMap.mjs +21 -20
  512. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  513. package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
  514. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  515. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
  516. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
  517. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
  518. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  519. package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
  520. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  521. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
  522. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
  523. package/dist/esm/hooks/useMount/useMount.mjs +7 -6
  524. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  525. package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
  526. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  527. package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
  528. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  529. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
  530. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  531. package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
  532. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  533. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
  534. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
  535. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
  536. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  537. package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
  538. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  539. package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
  540. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  541. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
  542. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  543. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
  544. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  545. package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
  546. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  547. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
  548. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  549. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
  550. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  551. package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
  552. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  553. package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
  554. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  555. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
  556. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  557. package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
  558. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  559. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
  560. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
  561. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
  562. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  563. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
  564. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  565. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
  566. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  567. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
  568. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  569. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
  570. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  571. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
  572. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  573. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
  574. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
  575. package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
  576. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  577. package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
  578. package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
  579. package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
  580. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  581. package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
  582. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  583. package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
  584. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  585. package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
  586. package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
  587. package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
  588. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  589. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
  590. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  591. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
  592. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  593. package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
  594. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  595. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
  596. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  597. package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
  598. package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
  599. package/dist/esm/hooks/useScript/useScript.mjs +28 -31
  600. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  601. package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
  602. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  603. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
  604. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  605. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
  606. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  607. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
  608. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
  609. package/dist/esm/hooks/useSet/useSet.mjs +30 -29
  610. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  611. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
  612. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
  613. package/dist/esm/hooks/useShare/useShare.mjs +18 -14
  614. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  615. package/dist/esm/hooks/useSize/useSize.mjs +40 -30
  616. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
  617. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
  618. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  619. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
  620. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  621. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
  622. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  623. package/dist/esm/hooks/useStep/useStep.mjs +27 -28
  624. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  625. package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
  626. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  627. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
  628. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  629. package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
  630. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  631. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
  632. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  633. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
  634. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  635. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
  636. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
  637. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
  638. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  639. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
  640. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
  641. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
  642. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
  643. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
  644. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  645. package/dist/esm/hooks/useTime/useTime.mjs +14 -13
  646. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  647. package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
  648. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  649. package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
  650. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  651. package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
  652. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  653. package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
  654. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  655. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
  656. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  657. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
  658. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  659. package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
  660. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  661. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
  662. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
  663. package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
  664. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  665. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
  666. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  667. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
  668. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  669. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
  670. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  671. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
  672. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  673. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
  674. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  675. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
  676. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  677. package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
  678. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  679. package/dist/esm/index.mjs +173 -394
  680. package/dist/esm/utils/helpers/copy.mjs +18 -18
  681. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  682. package/dist/esm/utils/helpers/debounce.mjs +10 -10
  683. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  684. package/dist/esm/utils/helpers/getDate.mjs +20 -16
  685. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  686. package/dist/esm/utils/helpers/getRetry.mjs +6 -5
  687. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  688. package/dist/esm/utils/helpers/isTarget.mjs +10 -19
  689. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  690. package/dist/esm/utils/helpers/throttle.mjs +20 -20
  691. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  692. package/dist/types/helpers/index.d.ts +1 -0
  693. package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
  694. package/dist/types/hooks/browser.d.ts +2 -0
  695. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  696. package/dist/types/hooks/useField/useField.d.ts +3 -3
  697. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  698. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
  699. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  700. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  701. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  702. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  703. package/package.json +5 -5
  704. package/dist/cjs/_virtual/client.cjs +0 -2
  705. package/dist/cjs/_virtual/client.cjs.map +0 -1
  706. package/dist/cjs/_virtual/client2.cjs +0 -2
  707. package/dist/cjs/_virtual/client2.cjs.map +0 -1
  708. package/dist/cjs/_virtual/index.cjs +0 -2
  709. package/dist/cjs/_virtual/index.cjs.map +0 -1
  710. package/dist/cjs/_virtual/react-dom-client.development.cjs +0 -2
  711. package/dist/cjs/_virtual/react-dom-client.development.cjs.map +0 -1
  712. package/dist/cjs/_virtual/react-dom-client.production.cjs +0 -2
  713. package/dist/cjs/_virtual/react-dom-client.production.cjs.map +0 -1
  714. package/dist/cjs/_virtual/scheduler.development.cjs +0 -2
  715. package/dist/cjs/_virtual/scheduler.development.cjs.map +0 -1
  716. package/dist/cjs/_virtual/scheduler.production.cjs +0 -2
  717. package/dist/cjs/_virtual/scheduler.production.cjs.map +0 -1
  718. package/dist/cjs/index.cjs.map +0 -1
  719. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.cjs +0 -215
  720. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.cjs.map +0 -1
  721. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.cjs +0 -10
  722. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.cjs.map +0 -1
  723. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.cjs +0 -2
  724. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.cjs.map +0 -1
  725. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.cjs +0 -2
  726. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.cjs.map +0 -1
  727. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.cjs +0 -2
  728. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.cjs.map +0 -1
  729. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.cjs +0 -2
  730. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.cjs.map +0 -1
  731. package/dist/esm/_virtual/client.mjs +0 -6
  732. package/dist/esm/_virtual/client.mjs.map +0 -1
  733. package/dist/esm/_virtual/client2.mjs +0 -5
  734. package/dist/esm/_virtual/client2.mjs.map +0 -1
  735. package/dist/esm/_virtual/index.mjs +0 -5
  736. package/dist/esm/_virtual/index.mjs.map +0 -1
  737. package/dist/esm/_virtual/react-dom-client.development.mjs +0 -5
  738. package/dist/esm/_virtual/react-dom-client.development.mjs.map +0 -1
  739. package/dist/esm/_virtual/react-dom-client.production.mjs +0 -5
  740. package/dist/esm/_virtual/react-dom-client.production.mjs.map +0 -1
  741. package/dist/esm/_virtual/scheduler.development.mjs +0 -5
  742. package/dist/esm/_virtual/scheduler.development.mjs.map +0 -1
  743. package/dist/esm/_virtual/scheduler.production.mjs +0 -5
  744. package/dist/esm/_virtual/scheduler.production.mjs.map +0 -1
  745. package/dist/esm/index.mjs.map +0 -1
  746. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.mjs +0 -17019
  747. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.mjs.map +0 -1
  748. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.mjs +0 -9745
  749. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.mjs.map +0 -1
  750. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.mjs +0 -24
  751. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.mjs.map +0 -1
  752. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.mjs +0 -228
  753. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.mjs.map +0 -1
  754. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.mjs +0 -225
  755. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.mjs.map +0 -1
  756. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.mjs +0 -11
  757. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),i=(u,n,s)=>{const c=r.useRef(!0),e=r.useRef(null),t=r.useRef(void 0),f=r.useRef(u),o=r.useRef(n);f.current=u,o.current=n,r.useEffect(()=>{if(c.current){c.current=!1;return}return e.current&&(clearTimeout(e.current),e.current=null),e.current=setTimeout(()=>{t.current=f.current()},o.current),()=>{e.current&&clearTimeout(e.current),e.current=null,typeof t.current=="function"&&t.current()}},s)};exports.useDebounceEffect=i;
2
- //# sourceMappingURL=useDebounceEffect.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(t,n,r)=>{let i=(0,e.useRef)(!0),a=(0,e.useRef)(null),o=(0,e.useRef)(void 0),s=(0,e.useRef)(t),c=(0,e.useRef)(n);s.current=t,c.current=n,(0,e.useEffect)(()=>{if(i.current){i.current=!1;return}return a.current&&=(clearTimeout(a.current),null),a.current=setTimeout(()=>{o.current=s.current()},c.current),()=>{a.current&&clearTimeout(a.current),a.current=null,typeof o.current==`function`&&o.current()}},r)};exports.useDebounceEffect=t;
2
+ //# sourceMappingURL=useDebounceEffect.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounceEffect.cjs","sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useDebounceEffect","effect","delay","deps","mountedRef","useRef","timeoutRef","cleanupRef","effectRef","delayRef","useEffect"],"mappings":"yGAiBaA,EAAoB,CAACC,EAAwBC,EAAeC,IAA0B,CACjG,MAAMC,EAAaC,EAAAA,OAAO,EAAI,EACxBC,EAAaD,EAAAA,OAA6C,IAAI,EAC9DE,EAAaF,EAAAA,OAAmC,MAAS,EACzDG,EAAYH,EAAAA,OAAOJ,CAAM,EACzBQ,EAAWJ,EAAAA,OAAOH,CAAK,EAE7BM,EAAU,QAAUP,EACpBQ,EAAS,QAAUP,EAEnBQ,EAAAA,UAAU,IAAM,CACd,GAAIN,EAAW,QAAS,CACtBA,EAAW,QAAU,GACrB,MAAA,CAGF,OAAIE,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBA,EAAW,QAAU,WAAW,IAAM,CACpCC,EAAW,QAAUC,EAAU,QAAA,CAAQ,EACtCC,EAAS,OAAO,EAEZ,IAAM,CACPH,EAAW,SAAS,aAAaA,EAAW,OAAO,EACvDA,EAAW,QAAU,KACjB,OAAOC,EAAW,SAAY,cAAuB,QAAA,CAAQ,CACnE,EACCJ,CAAI,CACT"}
1
+ {"version":3,"file":"useDebounceEffect.cjs","names":[],"sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"mappings":"uEAiBA,IAAa,GAAqB,EAAwB,EAAe,IAA0B,CACjG,IAAM,GAAA,EAAA,EAAA,QAAoB,GAAK,CACzB,GAAA,EAAA,EAAA,QAA0D,KAAK,CAC/D,GAAA,EAAA,EAAA,QAAgD,IAAA,GAAU,CAC1D,GAAA,EAAA,EAAA,QAAmB,EAAO,CAC1B,GAAA,EAAA,EAAA,QAAkB,EAAM,CAE9B,EAAU,QAAU,EACpB,EAAS,QAAU,GAEnB,EAAA,EAAA,eAAgB,CACd,GAAI,EAAW,QAAS,CACtB,EAAW,QAAU,GACrB,OAYF,MATA,CAEE,EAAW,WADX,aAAa,EAAW,QAAQ,CACX,MAGvB,EAAW,QAAU,eAAiB,CACpC,EAAW,QAAU,EAAU,SAAS,EACvC,EAAS,QAAQ,KAEP,CACP,EAAW,SAAS,aAAa,EAAW,QAAQ,CACxD,EAAW,QAAU,KACjB,OAAO,EAAW,SAAY,YAAY,EAAW,SAAS,GAEnE,EAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),s=require("../useDebounceCallback/useDebounceCallback.cjs"),a=(e,t)=>{const[u,c]=n.useState(e),o=s.useDebounceCallback(c,t);return[u,o]};exports.useDebounceState=a;
2
- //# sourceMappingURL=useDebounceState.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useDebounceCallback/useDebounceCallback.cjs`);let t=require(`react`);var n=(n,r)=>{let[i,a]=(0,t.useState)(n);return[i,e.useDebounceCallback(a,r)]};exports.useDebounceState=n;
2
+ //# sourceMappingURL=useDebounceState.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounceState.cjs","sources":["../../../../src/hooks/useDebounceState/useDebounceState.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDebounceCallback } from '../useDebounceCallback/useDebounceCallback';\n\n/**\n * @name useDebounceState\n * @description - Hook that creates a debounced state\n * @category Utilities\n * @usage high\n\n * @template Value The type of the value\n * @param {Value} value The value to be debounced\n * @param {number} delay The delay in milliseconds\n * @returns {[Value, (value: Value) => void]} The debounced state\n *\n * @example\n * const [debouncedValue, setDebouncedValue] = useDebounceState(value, 500);\n */\nexport const useDebounceState = <Value>(initialValue: Value, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState(initialValue);\n const debouncedSetState = useDebounceCallback(setDebouncedValue, delay);\n\n return [debouncedValue, debouncedSetState] as const;\n};\n"],"names":["useDebounceState","initialValue","delay","debouncedValue","setDebouncedValue","useState","debouncedSetState","useDebounceCallback"],"mappings":"qKAkBaA,EAAmB,CAAQC,EAAqBC,IAAkB,CAC7E,KAAM,CAACC,EAAgBC,CAAiB,EAAIC,EAAAA,SAASJ,CAAY,EAC3DK,EAAoBC,EAAAA,oBAAoBH,EAAmBF,CAAK,EAEtE,MAAO,CAACC,EAAgBG,CAAiB,CAC3C"}
1
+ {"version":3,"file":"useDebounceState.cjs","names":[],"sources":["../../../../src/hooks/useDebounceState/useDebounceState.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDebounceCallback } from '../useDebounceCallback/useDebounceCallback';\n\n/**\n * @name useDebounceState\n * @description - Hook that creates a debounced state\n * @category Utilities\n * @usage high\n\n * @template Value The type of the value\n * @param {Value} value The value to be debounced\n * @param {number} delay The delay in milliseconds\n * @returns {[Value, (value: Value) => void]} The debounced state\n *\n * @example\n * const [debouncedValue, setDebouncedValue] = useDebounceState(value, 500);\n */\nexport const useDebounceState = <Value>(initialValue: Value, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState(initialValue);\n const debouncedSetState = useDebounceCallback(setDebouncedValue, delay);\n\n return [debouncedValue, debouncedSetState] as const;\n};\n"],"mappings":"yIAkBA,IAAa,GAA2B,EAAqB,IAAkB,CAC7E,GAAM,CAAC,EAAgB,IAAA,EAAA,EAAA,UAA8B,EAAa,CAGlE,MAAO,CAAC,EAFkB,EAAA,oBAAoB,EAAmB,EAAM,CAE7B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),s=require("../useDebounceCallback/useDebounceCallback.cjs"),b=(e,c)=>{const t=u.useRef(e),[n,r]=u.useState(e),o=s.useDebounceCallback(r,c);return u.useEffect(()=>{t.current!==e&&(o(e),t.current=e)},[e]),n};exports.useDebounceValue=b;
2
- //# sourceMappingURL=useDebounceValue.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useDebounceCallback/useDebounceCallback.cjs`);let t=require(`react`);var n=(n,r)=>{let i=(0,t.useRef)(n),[a,o]=(0,t.useState)(n),s=e.useDebounceCallback(o,r);return(0,t.useEffect)(()=>{i.current!==n&&(s(n),i.current=n)},[n]),a};exports.useDebounceValue=n;
2
+ //# sourceMappingURL=useDebounceValue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounceValue.cjs","sources":["../../../../src/hooks/useDebounceValue/useDebounceValue.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useDebounceCallback } from '../useDebounceCallback/useDebounceCallback';\n\n/**\n * @name useDebounceValue\n * @description - Hook that creates a debounced value\n * @category Utilities\n * @usage high\n\n * @template Value The type of the value\n * @param {Value} value The value to be debounced\n * @param {number} delay The delay in milliseconds\n * @returns {Value} The debounced value\n *\n * @example\n * const debouncedValue = useDebounceValue(value, 500);\n */\nexport const useDebounceValue = <Value>(value: Value, delay: number) => {\n const previousValueRef = useRef(value);\n const [debouncedValue, setDebounceValue] = useState(value);\n\n const debouncedSetState = useDebounceCallback(setDebounceValue, delay);\n\n useEffect(() => {\n if (previousValueRef.current === value) return;\n debouncedSetState(value);\n previousValueRef.current = value;\n }, [value]);\n\n return debouncedValue;\n};\n"],"names":["useDebounceValue","value","delay","previousValueRef","useRef","debouncedValue","setDebounceValue","useState","debouncedSetState","useDebounceCallback","useEffect"],"mappings":"qKAkBaA,EAAmB,CAAQC,EAAcC,IAAkB,CACtE,MAAMC,EAAmBC,EAAAA,OAAOH,CAAK,EAC/B,CAACI,EAAgBC,CAAgB,EAAIC,EAAAA,SAASN,CAAK,EAEnDO,EAAoBC,EAAAA,oBAAoBH,EAAkBJ,CAAK,EAErEQ,OAAAA,EAAAA,UAAU,IAAM,CACVP,EAAiB,UAAYF,IACjCO,EAAkBP,CAAK,EACvBE,EAAiB,QAAUF,EAAA,EAC1B,CAACA,CAAK,CAAC,EAEHI,CACT"}
1
+ {"version":3,"file":"useDebounceValue.cjs","names":[],"sources":["../../../../src/hooks/useDebounceValue/useDebounceValue.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { useDebounceCallback } from '../useDebounceCallback/useDebounceCallback';\n\n/**\n * @name useDebounceValue\n * @description - Hook that creates a debounced value\n * @category Utilities\n * @usage high\n\n * @template Value The type of the value\n * @param {Value} value The value to be debounced\n * @param {number} delay The delay in milliseconds\n * @returns {Value} The debounced value\n *\n * @example\n * const debouncedValue = useDebounceValue(value, 500);\n */\nexport const useDebounceValue = <Value>(value: Value, delay: number) => {\n const previousValueRef = useRef(value);\n const [debouncedValue, setDebounceValue] = useState(value);\n\n const debouncedSetState = useDebounceCallback(setDebounceValue, delay);\n\n useEffect(() => {\n if (previousValueRef.current === value) return;\n debouncedSetState(value);\n previousValueRef.current = value;\n }, [value]);\n\n return debouncedValue;\n};\n"],"mappings":"yIAkBA,IAAa,GAA2B,EAAc,IAAkB,CACtE,IAAM,GAAA,EAAA,EAAA,QAA0B,EAAM,CAChC,CAAC,EAAgB,IAAA,EAAA,EAAA,UAA6B,EAAM,CAEpD,EAAoB,EAAA,oBAAoB,EAAkB,EAAM,CAQtE,OANA,EAAA,EAAA,eAAgB,CACV,EAAiB,UAAY,IACjC,EAAkB,EAAM,CACxB,EAAiB,QAAU,IAC1B,CAAC,EAAM,CAAC,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),s=(t,u)=>{const[e,r]=l.useState(t);return[e??u,r]};exports.useDefault=s;
2
- //# sourceMappingURL=useDefault.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(t,n)=>{let[r,i]=(0,e.useState)(t);return[r??n,i]};exports.useDefault=t;
2
+ //# sourceMappingURL=useDefault.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDefault.cjs","sources":["../../../../src/hooks/useDefault/useDefault.ts"],"sourcesContent":["import { useState } from 'react';\n\n/**\n * @name useDefault\n * @description - Hook that returns the default value\n * @category State\n * @usage medium\n\n * @template Value The type of the value\n * @param {Value} initialValue The initial value\n * @param {Value} defaultValue The default value\n * @returns {[Value, (value: Value) => void]} An array containing the current value and a function to set the value\n *\n * @example\n * const [value, setValue] = useDefault(initialValue, defaultValue);\n */\nexport const useDefault = <Value>(initialValue: (() => Value) | Value, defaultValue: Value) => {\n const [value, setValue] = useState<Value | null | undefined>(initialValue);\n return [value === undefined || value === null ? defaultValue : value, setValue] as const;\n};\n"],"names":["useDefault","initialValue","defaultValue","value","setValue","useState"],"mappings":"yGAgBaA,EAAa,CAAQC,EAAqCC,IAAwB,CAC7F,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAmCJ,CAAY,EACzE,MAAO,CAAwBE,GAAiBD,EAAsBE,CAAQ,CAChF"}
1
+ {"version":3,"file":"useDefault.cjs","names":[],"sources":["../../../../src/hooks/useDefault/useDefault.ts"],"sourcesContent":["import { useState } from 'react';\n\n/**\n * @name useDefault\n * @description - Hook that returns the default value\n * @category State\n * @usage medium\n\n * @template Value The type of the value\n * @param {Value} initialValue The initial value\n * @param {Value} defaultValue The default value\n * @returns {[Value, (value: Value) => void]} An array containing the current value and a function to set the value\n *\n * @example\n * const [value, setValue] = useDefault(initialValue, defaultValue);\n */\nexport const useDefault = <Value>(initialValue: (() => Value) | Value, defaultValue: Value) => {\n const [value, setValue] = useState<Value | null | undefined>(initialValue);\n return [value === undefined || value === null ? defaultValue : value, setValue] as const;\n};\n"],"mappings":"uEAgBA,IAAa,GAAqB,EAAqC,IAAwB,CAC7F,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,UAA+C,EAAa,CAC1E,MAAO,CAAC,GAAwC,EAAsB,EAAS"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),d=require("../../utils/helpers/throttle.cjs"),s=((...e)=>{const o=typeof e[0]=="number"?e[0]:e[0]?.delay??1e3,i=typeof e[0]=="function"?e[0]:e[0]?.onChange,c=e[0]?.enabled??!0,[n,u]=l.useState({interval:0,rotationRate:{alpha:null,beta:null,gamma:null},acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null}}),r=l.useRef(i);return r.current=i,l.useEffect(()=>{if(!c)return;const a=d.throttle(t=>{r.current?.(t),u({interval:t.interval,rotationRate:{...n.rotationRate,...t.rotationRate},acceleration:{...n.acceleration,...t.acceleration},accelerationIncludingGravity:{...n.accelerationIncludingGravity,...t.accelerationIncludingGravity}})},o);return window.addEventListener("devicemotion",a),()=>{window.removeEventListener("devicemotion",a)}},[o,c]),n});exports.useDeviceMotion=s;
2
- //# sourceMappingURL=useDeviceMotion.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/throttle.cjs`);let t=require(`react`);var n=((...n)=>{let r=typeof n[0]==`number`?n[0]:n[0]?.delay??1e3,i=typeof n[0]==`function`?n[0]:n[0]?.onChange,a=n[0]?.enabled??!0,[o,s]=(0,t.useState)({interval:0,rotationRate:{alpha:null,beta:null,gamma:null},acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null}}),c=(0,t.useRef)(i);return c.current=i,(0,t.useEffect)(()=>{if(!a)return;let t=e.throttle(e=>{c.current?.(e),s({interval:e.interval,rotationRate:{...o.rotationRate,...e.rotationRate},acceleration:{...o.acceleration,...e.acceleration},accelerationIncludingGravity:{...o.accelerationIncludingGravity,...e.accelerationIncludingGravity}})},r);return window.addEventListener(`devicemotion`,t),()=>{window.removeEventListener(`devicemotion`,t)}},[r,a]),o});exports.useDeviceMotion=n;
2
+ //# sourceMappingURL=useDeviceMotion.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeviceMotion.cjs","sources":["../../../../src/hooks/useDeviceMotion/useDeviceMotion.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\nexport interface UseDeviceMotionReturn {\n acceleration: DeviceMotionEventAcceleration;\n accelerationIncludingGravity: DeviceMotionEventAcceleration;\n interval: DeviceMotionEvent['interval'];\n rotationRate: DeviceMotionEventRotationRate;\n}\n\nexport interface UseDeviceMotionOptions {\n /** The delay in milliseconds */\n delay?: number;\n /** Whether to enable the hook */\n enabled?: boolean;\n /** The callback function to be invoked */\n onChange?: (event: DeviceMotionEvent) => void;\n}\n\nexport interface UseDeviceMotion {\n (callback?: (event: DeviceMotionEvent) => void, delay?: number): UseDeviceMotionReturn;\n\n (options?: UseDeviceMotionOptions): UseDeviceMotionReturn;\n}\n\n/**\n * @name useDeviceMotion\n * @description - Hook that work with device motion\n * @category Sensors\n * @usage low\n *\n * @browserapi DeviceMotionEvent https://developer.mozilla.org/en-US/docs/Web/API/Window/DeviceMotionEvent\n *\n * @overload\n * @param {number} [delay=1000] The delay in milliseconds\n * @param {(event: DeviceMotionEvent) => void} [callback] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion(500, (event) => console.log(event));\n *\n * @overload\n * @param {(event: DeviceMotionEvent) => void} [callback] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion((event) => console.log(event));\n *\n * @overload\n * @param {UseDeviceMotionOptions} [options] Configuration options\n * @param {number} [options.delay] The delay in milliseconds\n * @param {boolean} [options.enabled] Whether to enable the hook\n * @param {(event: DeviceMotionEvent) => void} [options.onChange] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion();\n */\nexport const useDeviceMotion = ((...params: any[]) => {\n const delay = typeof params[0] === 'number' ? params[0] : (params[0]?.delay ?? 1000);\n const callback = typeof params[0] === 'function' ? params[0] : params[0]?.onChange;\n const enabled = params[0]?.enabled ?? true;\n\n const [value, setValue] = useState<UseDeviceMotionReturn>({\n interval: 0,\n rotationRate: { alpha: null, beta: null, gamma: null },\n acceleration: { x: null, y: null, z: null },\n accelerationIncludingGravity: { x: null, y: null, z: null }\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled) return;\n\n const onDeviceMotion = throttle<[DeviceMotionEvent]>((event) => {\n internalCallbackRef.current?.(event);\n\n setValue({\n interval: event.interval,\n rotationRate: {\n ...value.rotationRate,\n ...event.rotationRate\n },\n acceleration: {\n ...value.acceleration,\n ...event.acceleration\n },\n accelerationIncludingGravity: {\n ...value.accelerationIncludingGravity,\n ...event.accelerationIncludingGravity\n }\n });\n }, delay);\n\n window.addEventListener('devicemotion', onDeviceMotion);\n\n return () => {\n window.removeEventListener('devicemotion', onDeviceMotion);\n };\n }, [delay, enabled]);\n\n return value;\n}) as UseDeviceMotion;\n"],"names":["useDeviceMotion","params","delay","callback","enabled","value","setValue","useState","internalCallbackRef","useRef","useEffect","onDeviceMotion","throttle","event"],"mappings":"uJA2DaA,GAAmB,IAAIC,IAAkB,CACpD,MAAMC,EAAQ,OAAOD,EAAO,CAAC,GAAM,SAAWA,EAAO,CAAC,EAAKA,EAAO,CAAC,GAAG,OAAS,IACzEE,EAAW,OAAOF,EAAO,CAAC,GAAM,WAAaA,EAAO,CAAC,EAAIA,EAAO,CAAC,GAAG,SACpEG,EAAUH,EAAO,CAAC,GAAG,SAAW,GAEhC,CAACI,EAAOC,CAAQ,EAAIC,WAAgC,CACxD,SAAU,EACV,aAAc,CAAE,MAAO,KAAM,KAAM,KAAM,MAAO,IAAA,EAChD,aAAc,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,IAAA,EACrC,6BAA8B,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,IAAA,CAAK,CAC3D,EACKC,EAAsBC,EAAAA,OAAON,CAAQ,EAC3C,OAAAK,EAAoB,QAAUL,EAE9BO,EAAAA,UAAU,IAAM,CACd,GAAI,CAACN,EAAS,OAEd,MAAMO,EAAiBC,WAA+BC,GAAU,CAC9DL,EAAoB,UAAUK,CAAK,EAEnCP,EAAS,CACP,SAAUO,EAAM,SAChB,aAAc,CACZ,GAAGR,EAAM,aACT,GAAGQ,EAAM,YAAA,EAEX,aAAc,CACZ,GAAGR,EAAM,aACT,GAAGQ,EAAM,YAAA,EAEX,6BAA8B,CAC5B,GAAGR,EAAM,6BACT,GAAGQ,EAAM,4BAAA,CACX,CACD,CAAA,EACAX,CAAK,EAER,cAAO,iBAAiB,eAAgBS,CAAc,EAE/C,IAAM,CACX,OAAO,oBAAoB,eAAgBA,CAAc,CAAA,CAC3D,EACC,CAACT,EAAOE,CAAO,CAAC,EAEZC,CACT"}
1
+ {"version":3,"file":"useDeviceMotion.cjs","names":[],"sources":["../../../../src/hooks/useDeviceMotion/useDeviceMotion.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\nexport interface UseDeviceMotionReturn {\n acceleration: DeviceMotionEventAcceleration;\n accelerationIncludingGravity: DeviceMotionEventAcceleration;\n interval: DeviceMotionEvent['interval'];\n rotationRate: DeviceMotionEventRotationRate;\n}\n\nexport interface UseDeviceMotionOptions {\n /** The delay in milliseconds */\n delay?: number;\n /** Whether to enable the hook */\n enabled?: boolean;\n /** The callback function to be invoked */\n onChange?: (event: DeviceMotionEvent) => void;\n}\n\nexport interface UseDeviceMotion {\n (callback?: (event: DeviceMotionEvent) => void, delay?: number): UseDeviceMotionReturn;\n\n (options?: UseDeviceMotionOptions): UseDeviceMotionReturn;\n}\n\n/**\n * @name useDeviceMotion\n * @description - Hook that work with device motion\n * @category Sensors\n * @usage low\n *\n * @browserapi DeviceMotionEvent https://developer.mozilla.org/en-US/docs/Web/API/Window/DeviceMotionEvent\n *\n * @overload\n * @param {number} [delay=1000] The delay in milliseconds\n * @param {(event: DeviceMotionEvent) => void} [callback] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion(500, (event) => console.log(event));\n *\n * @overload\n * @param {(event: DeviceMotionEvent) => void} [callback] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion((event) => console.log(event));\n *\n * @overload\n * @param {UseDeviceMotionOptions} [options] Configuration options\n * @param {number} [options.delay] The delay in milliseconds\n * @param {boolean} [options.enabled] Whether to enable the hook\n * @param {(event: DeviceMotionEvent) => void} [options.onChange] The callback function to be invoked\n * @returns {UseDeviceMotionReturn} The device motion data and interval\n *\n * @example\n * const { interval, rotationRate, acceleration, accelerationIncludingGravity } = useDeviceMotion();\n */\nexport const useDeviceMotion = ((...params: any[]) => {\n const delay = typeof params[0] === 'number' ? params[0] : (params[0]?.delay ?? 1000);\n const callback = typeof params[0] === 'function' ? params[0] : params[0]?.onChange;\n const enabled = params[0]?.enabled ?? true;\n\n const [value, setValue] = useState<UseDeviceMotionReturn>({\n interval: 0,\n rotationRate: { alpha: null, beta: null, gamma: null },\n acceleration: { x: null, y: null, z: null },\n accelerationIncludingGravity: { x: null, y: null, z: null }\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled) return;\n\n const onDeviceMotion = throttle<[DeviceMotionEvent]>((event) => {\n internalCallbackRef.current?.(event);\n\n setValue({\n interval: event.interval,\n rotationRate: {\n ...value.rotationRate,\n ...event.rotationRate\n },\n acceleration: {\n ...value.acceleration,\n ...event.acceleration\n },\n accelerationIncludingGravity: {\n ...value.accelerationIncludingGravity,\n ...event.accelerationIncludingGravity\n }\n });\n }, delay);\n\n window.addEventListener('devicemotion', onDeviceMotion);\n\n return () => {\n window.removeEventListener('devicemotion', onDeviceMotion);\n };\n }, [delay, enabled]);\n\n return value;\n}) as UseDeviceMotion;\n"],"mappings":"2HA2DA,IAAa,IAAoB,GAAG,IAAkB,CACpD,IAAM,EAAQ,OAAO,EAAO,IAAO,SAAW,EAAO,GAAM,EAAO,IAAI,OAAS,IACzE,EAAW,OAAO,EAAO,IAAO,WAAa,EAAO,GAAK,EAAO,IAAI,SACpE,EAAU,EAAO,IAAI,SAAW,GAEhC,CAAC,EAAO,IAAA,EAAA,EAAA,UAA4C,CACxD,SAAU,EACV,aAAc,CAAE,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,CACtD,aAAc,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,CAC3C,6BAA8B,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,CAC5D,CAAC,CACI,GAAA,EAAA,EAAA,QAA6B,EAAS,CAiC5C,MAhCA,GAAoB,QAAU,GAE9B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAS,OAEd,IAAM,EAAiB,EAAA,SAA+B,GAAU,CAC9D,EAAoB,UAAU,EAAM,CAEpC,EAAS,CACP,SAAU,EAAM,SAChB,aAAc,CACZ,GAAG,EAAM,aACT,GAAG,EAAM,aACV,CACD,aAAc,CACZ,GAAG,EAAM,aACT,GAAG,EAAM,aACV,CACD,6BAA8B,CAC5B,GAAG,EAAM,6BACT,GAAG,EAAM,6BACV,CACF,CAAC,EACD,EAAM,CAIT,OAFA,OAAO,iBAAiB,eAAgB,EAAe,KAE1C,CACX,OAAO,oBAAoB,eAAgB,EAAe,GAE3D,CAAC,EAAO,EAAQ,CAAC,CAEb"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),r=()=>{const t=typeof window<"u"&&"DeviceOrientationEvent"in window&&!!window.DeviceOrientationEvent,[a,o]=i.useState({alpha:null,beta:null,gamma:null,absolute:!1});return i.useEffect(()=>{if(!t)return;const n=e=>o({alpha:e.alpha,beta:e.beta,gamma:e.gamma,absolute:e.absolute});return window.addEventListener("deviceorientation",n),()=>{window.removeEventListener("deviceorientation",n)}},[]),{supported:t,value:a}};exports.useDeviceOrientation=r;
2
- //# sourceMappingURL=useDeviceOrientation.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{let t=typeof window<`u`&&`DeviceOrientationEvent`in window&&!!window.DeviceOrientationEvent,[n,r]=(0,e.useState)({alpha:null,beta:null,gamma:null,absolute:!1});return(0,e.useEffect)(()=>{if(!t)return;let e=e=>r({alpha:e.alpha,beta:e.beta,gamma:e.gamma,absolute:e.absolute});return window.addEventListener(`deviceorientation`,e),()=>{window.removeEventListener(`deviceorientation`,e)}},[]),{supported:t,value:n}};exports.useDeviceOrientation=t;
2
+ //# sourceMappingURL=useDeviceOrientation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeviceOrientation.cjs","sources":["../../../../src/hooks/useDeviceOrientation/useDeviceOrientation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/* The use device orientation value type */\nexport interface UseDeviceOrientationValue {\n /** The current absolute value */\n absolute: boolean;\n /** A number representing the motion of the device around the z axis, express in degrees with values ranging from 0 to 360 */\n alpha: number | null;\n /** A number representing the motion of the device around the x axis, express in degrees with values ranging from -180 to 180 */\n beta: number | null;\n /** A number representing the motion of the device around the y axis, express in degrees with values ranging from -90 to 90 */\n gamma: number | null;\n}\n\n/* The use device orientation return type */\nexport interface UseDeviceOrientationReturn {\n /** Whether the device orientation is supported */\n supported: boolean;\n /** The current device orientation value */\n value: UseDeviceOrientationValue;\n}\n\n/**\n * @name useDeviceOrientation\n * @description - Hook that provides the current device orientation\n * @category Sensors\n * @usage low\n *\n * @browserapi DeviceOrientationEvent https://developer.mozilla.org/en-US/docs/Web/API/Window/DeviceOrientationEvent\n *\n * @returns {UseDeviceOrientationReturn} The current device orientation\n *\n * @example\n * const { supported, value } = useDeviceOrientation();\n */\nexport const useDeviceOrientation = (): UseDeviceOrientationReturn => {\n const supported =\n typeof window !== 'undefined' &&\n 'DeviceOrientationEvent' in window &&\n !!window.DeviceOrientationEvent;\n\n const [value, setValue] = useState<UseDeviceOrientationValue>({\n alpha: null,\n beta: null,\n gamma: null,\n absolute: false\n });\n\n useEffect(() => {\n if (!supported) return;\n\n const onDeviceOrientation = (event: DeviceOrientationEvent) =>\n setValue({\n alpha: event.alpha,\n beta: event.beta,\n gamma: event.gamma,\n absolute: event.absolute\n });\n\n window.addEventListener('deviceorientation', onDeviceOrientation);\n return () => {\n window.removeEventListener('deviceorientation', onDeviceOrientation);\n };\n }, []);\n\n return {\n supported,\n value\n };\n};\n"],"names":["useDeviceOrientation","supported","value","setValue","useState","useEffect","onDeviceOrientation","event"],"mappings":"yGAmCaA,EAAuB,IAAkC,CACpE,MAAMC,EACJ,OAAO,OAAW,KAClB,2BAA4B,QAC5B,CAAC,CAAC,OAAO,uBAEL,CAACC,EAAOC,CAAQ,EAAIC,WAAoC,CAC5D,MAAO,KACP,KAAM,KACN,MAAO,KACP,SAAU,EAAA,CACX,EAEDC,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAEhB,MAAMK,EAAuBC,GAC3BJ,EAAS,CACP,MAAOI,EAAM,MACb,KAAMA,EAAM,KACZ,MAAOA,EAAM,MACb,SAAUA,EAAM,QAAA,CACjB,EAEH,cAAO,iBAAiB,oBAAqBD,CAAmB,EACzD,IAAM,CACX,OAAO,oBAAoB,oBAAqBA,CAAmB,CAAA,CACrE,EACC,EAAE,EAEE,CACL,UAAAL,EACA,MAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useDeviceOrientation.cjs","names":[],"sources":["../../../../src/hooks/useDeviceOrientation/useDeviceOrientation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/* The use device orientation value type */\nexport interface UseDeviceOrientationValue {\n /** The current absolute value */\n absolute: boolean;\n /** A number representing the motion of the device around the z axis, express in degrees with values ranging from 0 to 360 */\n alpha: number | null;\n /** A number representing the motion of the device around the x axis, express in degrees with values ranging from -180 to 180 */\n beta: number | null;\n /** A number representing the motion of the device around the y axis, express in degrees with values ranging from -90 to 90 */\n gamma: number | null;\n}\n\n/* The use device orientation return type */\nexport interface UseDeviceOrientationReturn {\n /** Whether the device orientation is supported */\n supported: boolean;\n /** The current device orientation value */\n value: UseDeviceOrientationValue;\n}\n\n/**\n * @name useDeviceOrientation\n * @description - Hook that provides the current device orientation\n * @category Sensors\n * @usage low\n *\n * @browserapi DeviceOrientationEvent https://developer.mozilla.org/en-US/docs/Web/API/Window/DeviceOrientationEvent\n *\n * @returns {UseDeviceOrientationReturn} The current device orientation\n *\n * @example\n * const { supported, value } = useDeviceOrientation();\n */\nexport const useDeviceOrientation = (): UseDeviceOrientationReturn => {\n const supported =\n typeof window !== 'undefined' &&\n 'DeviceOrientationEvent' in window &&\n !!window.DeviceOrientationEvent;\n\n const [value, setValue] = useState<UseDeviceOrientationValue>({\n alpha: null,\n beta: null,\n gamma: null,\n absolute: false\n });\n\n useEffect(() => {\n if (!supported) return;\n\n const onDeviceOrientation = (event: DeviceOrientationEvent) =>\n setValue({\n alpha: event.alpha,\n beta: event.beta,\n gamma: event.gamma,\n absolute: event.absolute\n });\n\n window.addEventListener('deviceorientation', onDeviceOrientation);\n return () => {\n window.removeEventListener('deviceorientation', onDeviceOrientation);\n };\n }, []);\n\n return {\n supported,\n value\n };\n};\n"],"mappings":"uEAmCA,IAAa,MAAyD,CACpE,IAAM,EACJ,OAAO,OAAW,KAClB,2BAA4B,QAC5B,CAAC,CAAC,OAAO,uBAEL,CAAC,EAAO,IAAA,EAAA,EAAA,UAAgD,CAC5D,MAAO,KACP,KAAM,KACN,MAAO,KACP,SAAU,GACX,CAAC,CAmBF,OAjBA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAW,OAEhB,IAAM,EAAuB,GAC3B,EAAS,CACP,MAAO,EAAM,MACb,KAAM,EAAM,KACZ,MAAO,EAAM,MACb,SAAU,EAAM,SACjB,CAAC,CAGJ,OADA,OAAO,iBAAiB,oBAAqB,EAAoB,KACpD,CACX,OAAO,oBAAoB,oBAAqB,EAAoB,GAErE,EAAE,CAAC,CAEC,CACL,YACA,QACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),r=()=>{const e=typeof window<"u"&&typeof window.matchMedia=="function"&&typeof window.devicePixelRatio=="number",[i,d]=n.useState(e?window.devicePixelRatio:1);return n.useEffect(()=>{if(!e)return;const t=()=>d(window.devicePixelRatio),o=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);return o.addEventListener("change",t),()=>{o.removeEventListener("change",t)}},[i]),{supported:e,ratio:i}};exports.useDevicePixelRatio=r;
2
- //# sourceMappingURL=useDevicePixelRatio.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{let t=typeof window<`u`&&typeof window.matchMedia==`function`&&typeof window.devicePixelRatio==`number`,[n,r]=(0,e.useState)(t?window.devicePixelRatio:1);return(0,e.useEffect)(()=>{if(!t)return;let e=()=>r(window.devicePixelRatio),n=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);return n.addEventListener(`change`,e),()=>{n.removeEventListener(`change`,e)}},[n]),{supported:t,ratio:n}};exports.useDevicePixelRatio=t;
2
+ //# sourceMappingURL=useDevicePixelRatio.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDevicePixelRatio.cjs","sources":["../../../../src/hooks/useDevicePixelRatio/useDevicePixelRatio.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** The use device pixel ratio return type */\nexport interface UseDevicePixelRatioReturn {\n /** The ratio of the resolution in physical pixels to the resolution in CSS pixels */\n ratio: number;\n /** Whether the device pixel ratio is supported*/\n supported: boolean;\n}\n\n/**\n * @name useDevicePixelRatio\n * @description - Hook that returns the device's pixel ratio\n * @category Utilities\n * @usage low\n *\n * @browserapi window.devicePixelRatio https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio\n *\n * @returns {UseDevicePixelRatioReturn} The ratio and supported flag\n *\n * @example\n * const { supported, ratio } = useDevicePixelRatio();\n */\nexport const useDevicePixelRatio = (): UseDevicePixelRatioReturn => {\n const supported =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n typeof window.devicePixelRatio === 'number';\n\n const [ratio, setRatio] = useState(supported ? window.devicePixelRatio : 1);\n\n useEffect(() => {\n if (!supported) return;\n\n const onChange = () => setRatio(window.devicePixelRatio);\n\n const media = window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);\n media.addEventListener('change', onChange);\n return () => {\n media.removeEventListener('change', onChange);\n };\n }, [ratio]);\n\n return { supported, ratio };\n};\n"],"names":["useDevicePixelRatio","supported","ratio","setRatio","useState","useEffect","onChange","media"],"mappings":"yGAuBaA,EAAsB,IAAiC,CAClE,MAAMC,EACJ,OAAO,OAAW,KAClB,OAAO,OAAO,YAAe,YAC7B,OAAO,OAAO,kBAAqB,SAE/B,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAASH,EAAY,OAAO,iBAAmB,CAAC,EAE1EI,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAEhB,MAAMK,EAAW,IAAMH,EAAS,OAAO,gBAAgB,EAEjDI,EAAQ,OAAO,WAAW,gBAAgB,OAAO,gBAAgB,OAAO,EAC9E,OAAAA,EAAM,iBAAiB,SAAUD,CAAQ,EAClC,IAAM,CACXC,EAAM,oBAAoB,SAAUD,CAAQ,CAAA,CAC9C,EACC,CAACJ,CAAK,CAAC,EAEH,CAAE,UAAAD,EAAW,MAAAC,CAAA,CACtB"}
1
+ {"version":3,"file":"useDevicePixelRatio.cjs","names":[],"sources":["../../../../src/hooks/useDevicePixelRatio/useDevicePixelRatio.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/** The use device pixel ratio return type */\nexport interface UseDevicePixelRatioReturn {\n /** The ratio of the resolution in physical pixels to the resolution in CSS pixels */\n ratio: number;\n /** Whether the device pixel ratio is supported*/\n supported: boolean;\n}\n\n/**\n * @name useDevicePixelRatio\n * @description - Hook that returns the device's pixel ratio\n * @category Utilities\n * @usage low\n *\n * @browserapi window.devicePixelRatio https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio\n *\n * @returns {UseDevicePixelRatioReturn} The ratio and supported flag\n *\n * @example\n * const { supported, ratio } = useDevicePixelRatio();\n */\nexport const useDevicePixelRatio = (): UseDevicePixelRatioReturn => {\n const supported =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n typeof window.devicePixelRatio === 'number';\n\n const [ratio, setRatio] = useState(supported ? window.devicePixelRatio : 1);\n\n useEffect(() => {\n if (!supported) return;\n\n const onChange = () => setRatio(window.devicePixelRatio);\n\n const media = window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);\n media.addEventListener('change', onChange);\n return () => {\n media.removeEventListener('change', onChange);\n };\n }, [ratio]);\n\n return { supported, ratio };\n};\n"],"mappings":"uEAuBA,IAAa,MAAuD,CAClE,IAAM,EACJ,OAAO,OAAW,KAClB,OAAO,OAAO,YAAe,YAC7B,OAAO,OAAO,kBAAqB,SAE/B,CAAC,EAAO,IAAA,EAAA,EAAA,UAAqB,EAAY,OAAO,iBAAmB,EAAE,CAc3E,OAZA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAW,OAEhB,IAAM,MAAiB,EAAS,OAAO,iBAAiB,CAElD,EAAQ,OAAO,WAAW,gBAAgB,OAAO,iBAAiB,OAAO,CAE/E,OADA,EAAM,iBAAiB,SAAU,EAAS,KAC7B,CACX,EAAM,oBAAoB,SAAU,EAAS,GAE9C,CAAC,EAAM,CAAC,CAEJ,CAAE,YAAW,QAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),t=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),s=(r,u)=>{const e=o.useRef(!1);t.useIsomorphicLayoutEffect(()=>()=>{e.current=!1},[]),t.useIsomorphicLayoutEffect(()=>{if(e.current)return r();e.current=!0},u)};exports.useDidUpdate=s;
2
- //# sourceMappingURL=useDidUpdate.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs`);let t=require(`react`);var n=(n,r)=>{let i=(0,t.useRef)(!1);e.useIsomorphicLayoutEffect(()=>()=>{i.current=!1},[]),e.useIsomorphicLayoutEffect(()=>{if(i.current)return n();i.current=!0},r)};exports.useDidUpdate=n;
2
+ //# sourceMappingURL=useDidUpdate.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mountedRef","useRef","useIsomorphicLayoutEffect"],"mappings":"iLAkBaA,EAAe,CAACC,EAAwBC,IAA0B,CAC7E,MAAMC,EAAaC,EAAAA,OAAO,EAAK,EAE/BC,EAAAA,0BACE,IAAM,IAAM,CACVF,EAAW,QAAU,EAAA,EAEvB,CAAA,CAAC,EAGHE,EAAAA,0BAA0B,IAAM,CAC9B,GAAIF,EAAW,QACb,OAAOF,EAAA,EAGTE,EAAW,QAAU,EACd,EACND,CAAI,CACT"}
1
+ {"version":3,"file":"useDidUpdate.cjs","names":[],"sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"mappings":"qJAkBA,IAAa,GAAgB,EAAwB,IAA0B,CAC7E,IAAM,GAAA,EAAA,EAAA,QAAoB,GAAM,CAEhC,EAAA,kCACc,CACV,EAAW,QAAU,IAEvB,EAAE,CACH,CAED,EAAA,8BAAgC,CAC9B,GAAI,EAAW,QACb,OAAO,GAAQ,CAGjB,EAAW,QAAU,IAEpB,EAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),l=(u=!1,t)=>{const[r,s]=c.useState(u),n=()=>s(e=>e||(t?.onOpen?.(),!0)),o=()=>s(e=>e&&(t?.onClose?.(),!1));return{opened:r,open:n,close:o,toggle:(e=!r)=>e?n():o()}};exports.useDisclosure=l;
2
- //# sourceMappingURL=useDisclosure.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(t=!1,n)=>{let[r,i]=(0,e.useState)(t),a=()=>i(e=>e||(n?.onOpen?.(),!0)),o=()=>i(e=>e&&(n?.onClose?.(),!1));return{opened:r,open:a,close:o,toggle:(e=!r)=>e?a():o()}};exports.useDisclosure=t;
2
+ //# sourceMappingURL=useDisclosure.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDisclosure.cjs","sources":["../../../../src/hooks/useDisclosure/useDisclosure.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use disclosure options type */\nexport interface UseDisclosureOptions {\n /** The callback function to be invoked on close */\n onClose?: () => void;\n /** The callback function to be invoked on open */\n onOpen?: () => void;\n}\n\n/** The use disclosure return type */\nexport interface UseDisclosureReturn {\n /** The opened value */\n opened: boolean;\n /** Function to close the modal */\n close: () => void;\n /** Function to open the modal */\n open: () => void;\n /** Function to toggle the modal */\n toggle: () => void;\n}\n\n/**\n * @name useDisclosure\n * @description - Hook that allows you to open and close a modal\n * @category State\n * @usage necessary\n\n * @param {boolean} [initialValue=false] The initial value of the component\n * @param {() => void} [options.onOpen] The callback function to be invoked on open\n * @param {() => void} [options.onClose] The callback function to be invoked on close\n * @returns {UseDisclosureReturn} An object with the opened, open, close, and toggle properties\n *\n * @example\n * const { opened, open, close, toggle } = useDisclosure();\n */\nexport const useDisclosure = (\n initialValue = false,\n options?: UseDisclosureOptions\n): UseDisclosureReturn => {\n const [opened, setOpened] = useState(initialValue);\n\n const open = () =>\n setOpened((opened) => {\n if (!opened) {\n options?.onOpen?.();\n return true;\n }\n return opened;\n });\n\n const close = () =>\n setOpened((opened) => {\n if (opened) {\n options?.onClose?.();\n return false;\n }\n return opened;\n });\n\n const toggle = (value = !opened) => (value ? open() : close());\n\n return { opened, open, close, toggle };\n};\n"],"names":["useDisclosure","initialValue","options","opened","setOpened","useState","open","close","value"],"mappings":"yGAoCaA,EAAgB,CAC3BC,EAAe,GACfC,IACwB,CACxB,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAASJ,CAAY,EAE3CK,EAAO,IACXF,EAAWD,GACJA,IACHD,GAAS,SAAA,EACF,GAGV,EAEGK,EAAQ,IACZH,EAAWD,GACLA,IACFD,GAAS,UAAA,EACF,GAGV,EAIH,MAAO,CAAE,OAAAC,EAAQ,KAAAG,EAAM,MAAAC,EAAO,OAFf,CAACC,EAAQ,CAACL,IAAYK,EAAQF,EAAA,EAASC,EAAA,CAExB,CAChC"}
1
+ {"version":3,"file":"useDisclosure.cjs","names":[],"sources":["../../../../src/hooks/useDisclosure/useDisclosure.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use disclosure options type */\nexport interface UseDisclosureOptions {\n /** The callback function to be invoked on close */\n onClose?: () => void;\n /** The callback function to be invoked on open */\n onOpen?: () => void;\n}\n\n/** The use disclosure return type */\nexport interface UseDisclosureReturn {\n /** The opened value */\n opened: boolean;\n /** Function to close the modal */\n close: () => void;\n /** Function to open the modal */\n open: () => void;\n /** Function to toggle the modal */\n toggle: () => void;\n}\n\n/**\n * @name useDisclosure\n * @description - Hook that allows you to open and close a modal\n * @category State\n * @usage necessary\n\n * @param {boolean} [initialValue=false] The initial value of the component\n * @param {() => void} [options.onOpen] The callback function to be invoked on open\n * @param {() => void} [options.onClose] The callback function to be invoked on close\n * @returns {UseDisclosureReturn} An object with the opened, open, close, and toggle properties\n *\n * @example\n * const { opened, open, close, toggle } = useDisclosure();\n */\nexport const useDisclosure = (\n initialValue = false,\n options?: UseDisclosureOptions\n): UseDisclosureReturn => {\n const [opened, setOpened] = useState(initialValue);\n\n const open = () =>\n setOpened((opened) => {\n if (!opened) {\n options?.onOpen?.();\n return true;\n }\n return opened;\n });\n\n const close = () =>\n setOpened((opened) => {\n if (opened) {\n options?.onClose?.();\n return false;\n }\n return opened;\n });\n\n const toggle = (value = !opened) => (value ? open() : close());\n\n return { opened, open, close, toggle };\n};\n"],"mappings":"uEAoCA,IAAa,GACX,EAAe,GACf,IACwB,CACxB,GAAM,CAAC,EAAQ,IAAA,EAAA,EAAA,UAAsB,EAAa,CAE5C,MACJ,EAAW,GACJ,IACH,GAAS,UAAU,CACZ,IAGT,CAEE,MACJ,EAAW,GACL,IACF,GAAS,WAAW,CACb,IAGT,CAIJ,MAAO,CAAE,SAAQ,OAAM,QAAO,QAFd,EAAQ,CAAC,IAAY,EAAQ,GAAM,CAAG,GAAO,CAEvB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),y=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),p=((...n)=>{const i=typeof navigator<"u"&&"mediaDevices"in navigator&&!!navigator.mediaDevices&&"getDisplayMedia"in navigator.mediaDevices,t=d.isTarget(n[0])?n[0]:void 0,o=n[1]?n[1]:n[0],v=o?.immediately??!1,[f,g]=c.useState(!1),s=c.useRef(null),r=c.useRef(null),a=y.useRefState(),u=()=>{!r.current||!i||!s.current||(g(!1),s.current.srcObject=null,r.current.getTracks().forEach(e=>e.stop()),r.current=null)},l=async()=>{if(!i||!s.current)return;const e=await navigator.mediaDevices.getDisplayMedia({video:o?.video,audio:o?.audio});return g(!0),r.current=e,s.current.srcObject=e,e.getTracks().forEach(m=>m.onended=u),e};return c.useEffect(()=>{if(!i||!t&&!a.state)return;const e=t?d.isTarget.getElement(t):a.current;if(e&&(s.current=e,!!v))return l(),()=>{u()}},[t&&d.isTarget.getRawElement(t),a.state]),t?{stream:r.current,sharing:f,supported:i,start:l,stop:u}:{stream:r.current,sharing:f,supported:i,start:l,stop:u,ref:a}});exports.useDisplayMedia=p;
2
- //# sourceMappingURL=useDisplayMedia.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=typeof navigator<`u`&&`mediaDevices`in navigator&&!!navigator.mediaDevices&&`getDisplayMedia`in navigator.mediaDevices,a=e.isTarget(r[0])?r[0]:void 0,o=r[1]?r[1]:r[0],s=o?.immediately??!1,[c,l]=(0,n.useState)(!1),u=(0,n.useRef)(null),d=(0,n.useRef)(null),f=t.useRefState(),p=()=>{!d.current||!i||!u.current||(l(!1),u.current.srcObject=null,d.current.getTracks().forEach(e=>e.stop()),d.current=null)},m=async()=>{if(!i||!u.current)return;let e=await navigator.mediaDevices.getDisplayMedia({video:o?.video,audio:o?.audio});return l(!0),d.current=e,u.current.srcObject=e,e.getTracks().forEach(e=>e.onended=p),e};return(0,n.useEffect)(()=>{if(!i||!a&&!f.state)return;let t=a?e.isTarget.getElement(a):f.current;if(t&&(u.current=t,s))return m(),()=>{p()}},[a&&e.isTarget.getRawElement(a),f.state]),a?{stream:d.current,sharing:c,supported:i,start:m,stop:p}:{stream:d.current,sharing:c,supported:i,start:m,stop:p,ref:f}});exports.useDisplayMedia=r;
2
+ //# sourceMappingURL=useDisplayMedia.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDisplayMedia.cjs","sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n * @usage low\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const elementRef = useRef<HTMLVideoElement>(null);\n const streamRef = useRef<MediaStream>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported || !elementRef.current) return;\n\n setSharing(false);\n elementRef.current.srcObject = null;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n };\n\n const start = async () => {\n if (!supported || !elementRef.current) return;\n\n const displayMedia = await navigator.mediaDevices.getDisplayMedia({\n video: options?.video,\n audio: options?.audio\n });\n\n setSharing(true);\n streamRef.current = displayMedia;\n elementRef.current.srcObject = displayMedia;\n\n displayMedia.getTracks().forEach((track) => (track.onended = stop));\n return displayMedia;\n };\n\n useEffect(() => {\n if (!supported || (!target && !internalRef.state)) return;\n\n const element = (\n target ? isTarget.getElement(target) : internalRef.current\n ) as HTMLVideoElement;\n\n if (!element) return;\n\n elementRef.current = element;\n\n if (!immediately) return;\n\n start();\n\n return () => {\n stop();\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target)\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop\n };\n\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop,\n ref: internalRef\n };\n}) as UseDisplayMedia;\n"],"names":["useDisplayMedia","params","supported","target","isTarget","options","immediately","sharing","setSharing","useState","elementRef","useRef","streamRef","internalRef","useRefState","stop","track","start","displayMedia","useEffect","element"],"mappings":"mMAuEaA,GAAmB,IAAIC,IAAkB,CACpD,MAAMC,EACJ,OAAO,UAAc,KACrB,iBAAkB,WAClB,CAAC,CAAC,UAAU,cACZ,oBAAqB,UAAU,aAC3BC,EAAUC,EAAAA,SAASH,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CI,EAAWJ,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAC3CK,EAAcD,GAAS,aAAe,GAEtC,CAACE,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EAEtCC,EAAaC,EAAAA,OAAyB,IAAI,EAC1CC,EAAYD,EAAAA,OAAoB,IAAI,EACpCE,EAAcC,EAAAA,YAAA,EAEdC,EAAO,IAAM,CACb,CAACH,EAAU,SAAW,CAACV,GAAa,CAACQ,EAAW,UAEpDF,EAAW,EAAK,EAChBE,EAAW,QAAQ,UAAY,KAC/BE,EAAU,QAAQ,YAAY,QAASI,GAAUA,EAAM,MAAM,EAC7DJ,EAAU,QAAU,KAAA,EAGhBK,EAAQ,SAAY,CACxB,GAAI,CAACf,GAAa,CAACQ,EAAW,QAAS,OAEvC,MAAMQ,EAAe,MAAM,UAAU,aAAa,gBAAgB,CAChE,MAAOb,GAAS,MAChB,MAAOA,GAAS,KAAA,CACjB,EAED,OAAAG,EAAW,EAAI,EACfI,EAAU,QAAUM,EACpBR,EAAW,QAAQ,UAAYQ,EAE/BA,EAAa,YAAY,QAASF,GAAWA,EAAM,QAAUD,CAAK,EAC3DG,CAAA,EAuBT,OApBAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACjB,GAAc,CAACC,GAAU,CAACU,EAAY,MAAQ,OAEnD,MAAMO,EACJjB,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIU,EAAY,QAGrD,GAAKO,IAELV,EAAW,QAAUU,EAEjB,EAACd,GAEL,OAAAW,EAAA,EAEO,IAAM,CACXF,EAAA,CAAK,CACP,EACC,CAACZ,GAAUC,WAAS,cAAcD,CAAM,EAAGU,EAAY,KAAK,CAAC,EAE5DV,EACK,CACL,OAAQS,EAAU,QAClB,QAAAL,EACA,UAAAL,EACA,MAAAe,EACA,KAAAF,CAAA,EAGG,CACL,OAAQH,EAAU,QAClB,QAAAL,EACA,UAAAL,EACA,MAAAe,EACA,KAAAF,EACA,IAAKF,CAAA,CAET"}
1
+ {"version":3,"file":"useDisplayMedia.cjs","names":[],"sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n * @usage low\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const elementRef = useRef<HTMLVideoElement>(null);\n const streamRef = useRef<MediaStream>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported || !elementRef.current) return;\n\n setSharing(false);\n elementRef.current.srcObject = null;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n };\n\n const start = async () => {\n if (!supported || !elementRef.current) return;\n\n const displayMedia = await navigator.mediaDevices.getDisplayMedia({\n video: options?.video,\n audio: options?.audio\n });\n\n setSharing(true);\n streamRef.current = displayMedia;\n elementRef.current.srcObject = displayMedia;\n\n displayMedia.getTracks().forEach((track) => (track.onended = stop));\n return displayMedia;\n };\n\n useEffect(() => {\n if (!supported || (!target && !internalRef.state)) return;\n\n const element = (\n target ? isTarget.getElement(target) : internalRef.current\n ) as HTMLVideoElement;\n\n if (!element) return;\n\n elementRef.current = element;\n\n if (!immediately) return;\n\n start();\n\n return () => {\n stop();\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target)\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop\n };\n\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop,\n ref: internalRef\n };\n}) as UseDisplayMedia;\n"],"mappings":"uKAuEA,IAAa,IAAoB,GAAG,IAAkB,CACpD,IAAM,EACJ,OAAO,UAAc,KACrB,iBAAkB,WAClB,CAAC,CAAC,UAAU,cACZ,oBAAqB,UAAU,aAC3B,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAW,EAAO,GAAK,EAAO,GAAK,EAAO,GAC1C,EAAc,GAAS,aAAe,GAEtC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CAEvC,GAAA,EAAA,EAAA,QAAsC,KAAK,CAC3C,GAAA,EAAA,EAAA,QAAgC,KAAK,CACrC,EAAc,EAAA,aAAsB,CAEpC,MAAa,CACb,CAAC,EAAU,SAAW,CAAC,GAAa,CAAC,EAAW,UAEpD,EAAW,GAAM,CACjB,EAAW,QAAQ,UAAY,KAC/B,EAAU,QAAQ,WAAW,CAAC,QAAS,GAAU,EAAM,MAAM,CAAC,CAC9D,EAAU,QAAU,OAGhB,EAAQ,SAAY,CACxB,GAAI,CAAC,GAAa,CAAC,EAAW,QAAS,OAEvC,IAAM,EAAe,MAAM,UAAU,aAAa,gBAAgB,CAChE,MAAO,GAAS,MAChB,MAAO,GAAS,MACjB,CAAC,CAOF,OALA,EAAW,GAAK,CAChB,EAAU,QAAU,EACpB,EAAW,QAAQ,UAAY,EAE/B,EAAa,WAAW,CAAC,QAAS,GAAW,EAAM,QAAU,EAAM,CAC5D,GAgCT,OA7BA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAc,CAAC,GAAU,CAAC,EAAY,MAAQ,OAEnD,IAAM,EACJ,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAGhD,OAEL,EAAW,QAAU,EAEhB,GAIL,OAFA,GAAO,KAEM,CACX,GAAM,GAEP,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,EACK,CACL,OAAQ,EAAU,QAClB,UACA,YACA,QACA,OACD,CAEI,CACL,OAAQ,EAAU,QAClB,UACA,YACA,QACA,OACA,IAAK,EACN"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../useEventListener/useEventListener.cjs"),s=require("../../utils/helpers/isTarget.cjs"),u=(e,t,n)=>r.useEventListener(s.isTarget.wrap(document),e,t,n);exports.useDocumentEvent=u;
2
- //# sourceMappingURL=useDocumentEvent.cjs.map
1
+ const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useEventListener/useEventListener.cjs`);var n=(n,r,i)=>t.useEventListener(e.isTarget.wrap(document),n,r,i);exports.useDocumentEvent=n;
2
+ //# sourceMappingURL=useDocumentEvent.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentEvent.cjs","sources":["../../../../src/hooks/useDocumentEvent/useDocumentEvent.ts"],"sourcesContent":["import { isTarget } from '@/utils/helpers';\n\nimport type { UseEventListenerOptions } from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/**\n * @name useDocumentEvent\n * @description - Hook attaches an event listener to the document object for the specified event\n * @category Browser\n * @usage low\n\n * @template Event Key of document event map.\n * @param {Event} event The event to listen for.\n * @param {(event: DocumentEventMap[Event]) => void} listener The callback function to be executed when the event is triggered\n * @param {UseEventListenerOptions} [options] The options for the event listener\n * @returns {void}\n *\n * @example\n * useDocumentEvent('click', () => console.log('clicked'));\n */\nexport const useDocumentEvent = <Event extends keyof DocumentEventMap>(\n event: Event,\n listener: (this: Document, event: DocumentEventMap[Event]) => any,\n options?: UseEventListenerOptions\n) => useEventListener(isTarget.wrap(document), event, listener, options);\n"],"names":["useDocumentEvent","event","listener","options","useEventListener","isTarget"],"mappings":"0LAqBaA,EAAmB,CAC9BC,EACAC,EACAC,IACGC,EAAAA,iBAAiBC,WAAS,KAAK,QAAQ,EAAGJ,EAAOC,EAAUC,CAAO"}
1
+ {"version":3,"file":"useDocumentEvent.cjs","names":[],"sources":["../../../../src/hooks/useDocumentEvent/useDocumentEvent.ts"],"sourcesContent":["import { isTarget } from '@/utils/helpers';\n\nimport type { UseEventListenerOptions } from '../useEventListener/useEventListener';\n\nimport { useEventListener } from '../useEventListener/useEventListener';\n\n/**\n * @name useDocumentEvent\n * @description - Hook attaches an event listener to the document object for the specified event\n * @category Browser\n * @usage low\n\n * @template Event Key of document event map.\n * @param {Event} event The event to listen for.\n * @param {(event: DocumentEventMap[Event]) => void} listener The callback function to be executed when the event is triggered\n * @param {UseEventListenerOptions} [options] The options for the event listener\n * @returns {void}\n *\n * @example\n * useDocumentEvent('click', () => console.log('clicked'));\n */\nexport const useDocumentEvent = <Event extends keyof DocumentEventMap>(\n event: Event,\n listener: (this: Document, event: DocumentEventMap[Event]) => any,\n options?: UseEventListenerOptions\n) => useEventListener(isTarget.wrap(document), event, listener, options);\n"],"mappings":"0GAqBA,IAAa,GACX,EACA,EACA,IACG,EAAA,iBAAiB,EAAA,SAAS,KAAK,SAAS,CAAE,EAAO,EAAU,EAAQ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");function l(o,c){const i=t.useRef(document.title),[u,s]=t.useState(o??document.title),r=n=>{const e=n.trim();e.length>0&&(document.title=e)};return t.useEffect(()=>{typeof u=="string"&&r(u)},[u]),t.useEffect(()=>{const n=new MutationObserver(()=>{s(e=>document&&document.title!==e?document.title:e)});return n.observe(document.head.querySelector("title"),{childList:!0}),()=>{n.disconnect()}},[]),t.useEffect(()=>{if(c?.restoreOnUnmount)return()=>{document.title=i.current}},[]),{value:u,set:r}}exports.useDocumentTitle=l;
2
- //# sourceMappingURL=useDocumentTitle.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);function t(t,n){let r=(0,e.useRef)(document.title),[i,a]=(0,e.useState)(t??document.title),o=e=>{let t=e.trim();t.length>0&&(document.title=t)};return(0,e.useEffect)(()=>{typeof i==`string`&&o(i)},[i]),(0,e.useEffect)(()=>{let e=new MutationObserver(()=>{a(e=>document&&document.title!==e?document.title:e)});return e.observe(document.head.querySelector(`title`),{childList:!0}),()=>{e.disconnect()}},[]),(0,e.useEffect)(()=>{if(n?.restoreOnUnmount)return()=>{document.title=r.current}},[]),{value:i,set:o}}exports.useDocumentTitle=t;
2
+ //# sourceMappingURL=useDocumentTitle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentTitle.cjs","sources":["../../../../src/hooks/useDocumentTitle/useDocumentTitle.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use document title options type */\nexport interface UseDocumentTitleOptions {\n /** Restore the previous title on unmount */\n restoreOnUnmount?: boolean;\n}\n\n/** The use document title return type */\nexport interface UseDocumentTitleReturn {\n /** The current title */\n value: string;\n /** Function to update the title */\n set: (title: string) => void;\n}\n\n/**\n * @name useDocumentTitle\n * @description - Hook that manages the document title and allows updating it\n * @category Browser\n * @usage low\n\n * @browserapi document.title https://developer.mozilla.org/en-US/docs/Web/API/Document/title\n *\n * @param {string} [initialValue] The initial title. If not provided, the current document title will be used\n * @param {boolean} [options.restoreOnUnmount] Restore the previous title on unmount\n * @returns {UseDocumentTitleReturn} An array containing the current title and a function to update the title\n *\n * @example\n * const { value, set } = useDocumentTitle();\n */\nexport function useDocumentTitle(\n initialValue?: string,\n options?: UseDocumentTitleOptions\n): UseDocumentTitleReturn {\n const prevValueRef = useRef(document.title);\n const [value, setValue] = useState(initialValue ?? document.title);\n\n const set = (value: string) => {\n const updatedValue = value.trim();\n if (updatedValue.length > 0) document.title = updatedValue;\n };\n\n useEffect(() => {\n if (typeof value !== 'string') return;\n set(value);\n }, [value]);\n\n useEffect(() => {\n const observer = new MutationObserver(() => {\n setValue((prevValue) => {\n if (document && document.title !== prevValue) {\n return document.title;\n }\n return prevValue;\n });\n });\n\n observer.observe(document.head.querySelector('title')!, {\n childList: true\n });\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (options?.restoreOnUnmount) {\n return () => {\n document.title = prevValueRef.current;\n };\n }\n }, []);\n\n return { value, set };\n}\n"],"names":["useDocumentTitle","initialValue","options","prevValueRef","useRef","value","setValue","useState","set","updatedValue","useEffect","observer","prevValue"],"mappings":"yGA+BO,SAASA,EACdC,EACAC,EACwB,CACxB,MAAMC,EAAeC,EAAAA,OAAO,SAAS,KAAK,EACpC,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAASN,GAAgB,SAAS,KAAK,EAE3DO,EAAOH,GAAkB,CAC7B,MAAMI,EAAeJ,EAAM,KAAA,EACvBI,EAAa,OAAS,IAAG,SAAS,MAAQA,EAAA,EAGhDC,OAAAA,EAAAA,UAAU,IAAM,CACV,OAAOL,GAAU,UACrBG,EAAIH,CAAK,CAAA,EACR,CAACA,CAAK,CAAC,EAEVK,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAW,IAAI,iBAAiB,IAAM,CAC1CL,EAAUM,GACJ,UAAY,SAAS,QAAUA,EAC1B,SAAS,MAEXA,CACR,CAAA,CACF,EAED,OAAAD,EAAS,QAAQ,SAAS,KAAK,cAAc,OAAO,EAAI,CACtD,UAAW,EAAA,CACZ,EAEM,IAAM,CACXA,EAAS,WAAA,CAAW,CACtB,EACC,EAAE,EAELD,EAAAA,UAAU,IAAM,CACd,GAAIR,GAAS,iBACX,MAAO,IAAM,CACX,SAAS,MAAQC,EAAa,OAAA,CAElC,EACC,EAAE,EAEE,CAAE,MAAAE,EAAO,IAAAG,CAAA,CAClB"}
1
+ {"version":3,"file":"useDocumentTitle.cjs","names":[],"sources":["../../../../src/hooks/useDocumentTitle/useDocumentTitle.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use document title options type */\nexport interface UseDocumentTitleOptions {\n /** Restore the previous title on unmount */\n restoreOnUnmount?: boolean;\n}\n\n/** The use document title return type */\nexport interface UseDocumentTitleReturn {\n /** The current title */\n value: string;\n /** Function to update the title */\n set: (title: string) => void;\n}\n\n/**\n * @name useDocumentTitle\n * @description - Hook that manages the document title and allows updating it\n * @category Browser\n * @usage low\n\n * @browserapi document.title https://developer.mozilla.org/en-US/docs/Web/API/Document/title\n *\n * @param {string} [initialValue] The initial title. If not provided, the current document title will be used\n * @param {boolean} [options.restoreOnUnmount] Restore the previous title on unmount\n * @returns {UseDocumentTitleReturn} An array containing the current title and a function to update the title\n *\n * @example\n * const { value, set } = useDocumentTitle();\n */\nexport function useDocumentTitle(\n initialValue?: string,\n options?: UseDocumentTitleOptions\n): UseDocumentTitleReturn {\n const prevValueRef = useRef(document.title);\n const [value, setValue] = useState(initialValue ?? document.title);\n\n const set = (value: string) => {\n const updatedValue = value.trim();\n if (updatedValue.length > 0) document.title = updatedValue;\n };\n\n useEffect(() => {\n if (typeof value !== 'string') return;\n set(value);\n }, [value]);\n\n useEffect(() => {\n const observer = new MutationObserver(() => {\n setValue((prevValue) => {\n if (document && document.title !== prevValue) {\n return document.title;\n }\n return prevValue;\n });\n });\n\n observer.observe(document.head.querySelector('title')!, {\n childList: true\n });\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (options?.restoreOnUnmount) {\n return () => {\n document.title = prevValueRef.current;\n };\n }\n }, []);\n\n return { value, set };\n}\n"],"mappings":"uEA+BA,SAAgB,EACd,EACA,EACwB,CACxB,IAAM,GAAA,EAAA,EAAA,QAAsB,SAAS,MAAM,CACrC,CAAC,EAAO,IAAA,EAAA,EAAA,UAAqB,GAAgB,SAAS,MAAM,CAE5D,EAAO,GAAkB,CAC7B,IAAM,EAAe,EAAM,MAAM,CAC7B,EAAa,OAAS,IAAG,SAAS,MAAQ,IAmChD,OAhCA,EAAA,EAAA,eAAgB,CACV,OAAO,GAAU,UACrB,EAAI,EAAM,EACT,CAAC,EAAM,CAAC,EAEX,EAAA,EAAA,eAAgB,CACd,IAAM,EAAW,IAAI,qBAAuB,CAC1C,EAAU,GACJ,UAAY,SAAS,QAAU,EAC1B,SAAS,MAEX,EACP,EACF,CAMF,OAJA,EAAS,QAAQ,SAAS,KAAK,cAAc,QAAQ,CAAG,CACtD,UAAW,GACZ,CAAC,KAEW,CACX,EAAS,YAAY,GAEtB,EAAE,CAAC,EAEN,EAAA,EAAA,eAAgB,CACd,GAAI,GAAS,iBACX,UAAa,CACX,SAAS,MAAQ,EAAa,UAGjC,EAAE,CAAC,CAEC,CAAE,QAAO,MAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),i=()=>document.visibilityState,n=()=>"hidden",s=e=>(document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}),o=()=>t.useSyncExternalStore(s,i,n);exports.useDocumentVisibility=o;
2
- //# sourceMappingURL=useDocumentVisibility.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>document.visibilityState,n=()=>`hidden`,r=e=>(document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}),i=()=>(0,e.useSyncExternalStore)(r,t,n);exports.useDocumentVisibility=i;
2
+ //# sourceMappingURL=useDocumentVisibility.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentVisibility.cjs","sources":["../../../../src/hooks/useDocumentVisibility/useDocumentVisibility.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nconst getSnapshot = () => document.visibilityState;\nconst getServerSnapshot = () => 'hidden' as const;\nconst subscribe = (callback: () => void) => {\n document.addEventListener('visibilitychange', callback);\n return () => {\n document.removeEventListener('visibilitychange', callback);\n };\n};\n\n/**\n * @name useDocumentVisibility\n * @description – Hook that provides the current visibility state of the document\n * @category Browser\n * @usage low\n\n * @returns {DocumentVisibilityState} The current visibility state of the document, which can be 'visible' or 'hidden'\n *\n * @example\n * const visibilityState = useDocumentVisibility();\n */\nexport const useDocumentVisibility = () =>\n useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"names":["getSnapshot","getServerSnapshot","subscribe","callback","useDocumentVisibility","useSyncExternalStore"],"mappings":"yGAEMA,EAAc,IAAM,SAAS,gBAC7BC,EAAoB,IAAM,SAC1BC,EAAaC,IACjB,SAAS,iBAAiB,mBAAoBA,CAAQ,EAC/C,IAAM,CACX,SAAS,oBAAoB,mBAAoBA,CAAQ,CAAA,GAehDC,EAAwB,IACnCC,EAAAA,qBAAqBH,EAAWF,EAAaC,CAAiB"}
1
+ {"version":3,"file":"useDocumentVisibility.cjs","names":[],"sources":["../../../../src/hooks/useDocumentVisibility/useDocumentVisibility.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nconst getSnapshot = () => document.visibilityState;\nconst getServerSnapshot = () => 'hidden' as const;\nconst subscribe = (callback: () => void) => {\n document.addEventListener('visibilitychange', callback);\n return () => {\n document.removeEventListener('visibilitychange', callback);\n };\n};\n\n/**\n * @name useDocumentVisibility\n * @description – Hook that provides the current visibility state of the document\n * @category Browser\n * @usage low\n\n * @returns {DocumentVisibilityState} The current visibility state of the document, which can be 'visible' or 'hidden'\n *\n * @example\n * const visibilityState = useDocumentVisibility();\n */\nexport const useDocumentVisibility = () =>\n useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"mappings":"uEAEA,IAAM,MAAoB,SAAS,gBAC7B,MAA0B,SAC1B,EAAa,IACjB,SAAS,iBAAiB,mBAAoB,EAAS,KAC1C,CACX,SAAS,oBAAoB,mBAAoB,EAAS,GAejD,OAAA,EAAA,EAAA,sBACU,EAAW,EAAa,EAAkB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),d=require("../useRefState/useRefState.cjs"),l=require("../../utils/helpers/isTarget.cjs"),E=300,g=((...t)=>{const e=l.isTarget(t[0])?t[0]:void 0,f=e?t[1]:t[0],a=e?t[2]:t[1],u=c.useRef(void 0),r=c.useRef(0),o=d.useRefState(),R=c.useRef(f);R.current=f;const i=c.useRef(a);if(i.current=a,c.useEffect(()=>{if(!e&&!o.state)return;const n=e?l.isTarget.getElement(e):o.current;if(!n)return;const s=T=>{r.current+=1,r.current===1&&(u.current=setTimeout(()=>{i.current?.onSingleClick&&i.current.onSingleClick(T),r.current=0},i.current?.threshold??E)),r.current===2&&(clearTimeout(u.current),R.current(T),r.current=0)};return n.addEventListener("mousedown",s),n.addEventListener("touchstart",s),()=>{n.removeEventListener("mousedown",s),n.removeEventListener("touchstart",s),u.current&&clearTimeout(u.current)}},[e&&l.isTarget.getRawElement(e),o.state]),!e)return{ref:o}});exports.DEFAULT_THRESHOLD_TIME=E;exports.useDoubleClick=g;
2
- //# sourceMappingURL=useDoubleClick.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=300,i=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?r[1]:r[0],o=i?r[2]:r[1],s=(0,n.useRef)(void 0),c=(0,n.useRef)(0),l=t.useRefState(),u=(0,n.useRef)(a);u.current=a;let d=(0,n.useRef)(o);if(d.current=o,(0,n.useEffect)(()=>{if(!i&&!l.state)return;let t=i?e.isTarget.getElement(i):l.current;if(!t)return;let n=e=>{c.current+=1,c.current===1&&(s.current=setTimeout(()=>{d.current?.onSingleClick&&d.current.onSingleClick(e),c.current=0},d.current?.threshold??300)),c.current===2&&(clearTimeout(s.current),u.current(e),c.current=0)};return t.addEventListener(`mousedown`,n),t.addEventListener(`touchstart`,n),()=>{t.removeEventListener(`mousedown`,n),t.removeEventListener(`touchstart`,n),s.current&&clearTimeout(s.current)}},[i&&e.isTarget.getRawElement(i),l.state]),!i)return{ref:l}});exports.DEFAULT_THRESHOLD_TIME=r,exports.useDoubleClick=i;
2
+ //# sourceMappingURL=useDoubleClick.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDoubleClick.cjs","sources":["../../../../src/hooks/useDoubleClick/useDoubleClick.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type DoubleClickEvents = MouseEvent | TouchEvent;\n\n/** The use double click options type */\nexport interface UseDoubleClickOptions {\n /** The threshold time in milliseconds between clicks */\n threshold?: number;\n /** The callback function to be invoked on single click */\n onSingleClick?: (event: DoubleClickEvents) => void;\n}\n\nexport interface UseDoubleClick {\n (\n target: HookTarget,\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions\n ): void;\n\n <Target extends Element>(\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions,\n target?: never\n ): { ref: StateRef<Target> };\n}\n\nexport const DEFAULT_THRESHOLD_TIME = 300;\n\n/**\n * @name useDoubleClick\n * @description - Hook that defines the logic when double clicking an element\n * @category Elements\n * @usage medium\n\n * @overload\n * @param {HookTarget} target The target element to be double clicked\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {void} The double clicking state\n *\n * @example\n * useDoubleClick(ref, () => console.log('double clicked'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {{ ref: StateRef<Target> }} The double clicking state\n *\n * @example\n * const { ref } = useDoubleClick(() => console.log('double clicked'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useDoubleClick.html}\n */\nexport const useDoubleClick = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: DoubleClickEvents) => void;\n const options = (target ? params[2] : params[1]) as UseDoubleClickOptions | undefined;\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const clickCountRef = useRef(0);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const onClick = (event: DoubleClickEvents) => {\n clickCountRef.current += 1;\n\n if (clickCountRef.current === 1) {\n timeoutIdRef.current = setTimeout(() => {\n if (internalOptionsRef.current?.onSingleClick)\n internalOptionsRef.current.onSingleClick(event);\n clickCountRef.current = 0;\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n }\n\n if (clickCountRef.current === 2) {\n clearTimeout(timeoutIdRef.current);\n internalCallbackRef.current(event);\n clickCountRef.current = 0;\n }\n };\n\n element.addEventListener('mousedown', onClick as EventListener);\n element.addEventListener('touchstart', onClick as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onClick as EventListener);\n element.removeEventListener('touchstart', onClick as EventListener);\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return;\n return {\n ref: internalRef\n };\n}) as UseDoubleClick;\n"],"names":["DEFAULT_THRESHOLD_TIME","useDoubleClick","params","target","isTarget","callback","options","timeoutIdRef","useRef","clickCountRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","onClick","event"],"mappings":"mMAkCaA,EAAyB,IA4BzBC,GAAkB,IAAIC,IAAuB,CACxD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAYF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCI,EAAWH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExCK,EAAeC,EAAAA,OAAsC,MAAS,EAC9DC,EAAgBD,EAAAA,OAAO,CAAC,EACxBE,EAAcC,EAAAA,YAAA,EAEdC,EAAsBJ,EAAAA,OAAOH,CAAQ,EAC3CO,EAAoB,QAAUP,EAC9B,MAAMQ,EAAqBL,EAAAA,OAAOF,CAAO,EAqCzC,GApCAO,EAAmB,QAAUP,EAE7BQ,EAAAA,UAAU,IAAM,CACd,GAAI,CAACX,GAAU,CAACO,EAAY,MAAO,OAEnC,MAAMK,EAAUZ,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIO,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMC,EAAWC,GAA6B,CAC5CR,EAAc,SAAW,EAErBA,EAAc,UAAY,IAC5BF,EAAa,QAAU,WAAW,IAAM,CAClCM,EAAmB,SAAS,eAC9BA,EAAmB,QAAQ,cAAcI,CAAK,EAChDR,EAAc,QAAU,CAAA,EACvBI,EAAmB,SAAS,WAAab,CAAsB,GAGhES,EAAc,UAAY,IAC5B,aAAaF,EAAa,OAAO,EACjCK,EAAoB,QAAQK,CAAK,EACjCR,EAAc,QAAU,EAC1B,EAGF,OAAAM,EAAQ,iBAAiB,YAAaC,CAAwB,EAC9DD,EAAQ,iBAAiB,aAAcC,CAAwB,EAExD,IAAM,CACXD,EAAQ,oBAAoB,YAAaC,CAAwB,EACjED,EAAQ,oBAAoB,aAAcC,CAAwB,EAC9DT,EAAa,SAAS,aAAaA,EAAa,OAAO,CAAA,CAC7D,EACC,CAACJ,GAAUC,WAAS,cAAcD,CAAM,EAAGO,EAAY,KAAK,CAAC,EAE5D,CAAAP,EACJ,MAAO,CACL,IAAKO,CAAA,CAET"}
1
+ {"version":3,"file":"useDoubleClick.cjs","names":[],"sources":["../../../../src/hooks/useDoubleClick/useDoubleClick.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type DoubleClickEvents = MouseEvent | TouchEvent;\n\n/** The use double click options type */\nexport interface UseDoubleClickOptions {\n /** The threshold time in milliseconds between clicks */\n threshold?: number;\n /** The callback function to be invoked on single click */\n onSingleClick?: (event: DoubleClickEvents) => void;\n}\n\nexport interface UseDoubleClick {\n (\n target: HookTarget,\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions\n ): void;\n\n <Target extends Element>(\n callback: (event: DoubleClickEvents) => void,\n options?: UseDoubleClickOptions,\n target?: never\n ): { ref: StateRef<Target> };\n}\n\nexport const DEFAULT_THRESHOLD_TIME = 300;\n\n/**\n * @name useDoubleClick\n * @description - Hook that defines the logic when double clicking an element\n * @category Elements\n * @usage medium\n\n * @overload\n * @param {HookTarget} target The target element to be double clicked\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {void} The double clicking state\n *\n * @example\n * useDoubleClick(ref, () => console.log('double clicked'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: DoubleClickEvents) => void} callback The callback function to be invoked on double click\n * @param {UseDoubleClickOptions} [options] The options for the double click\n * @returns {{ ref: StateRef<Target> }} The double clicking state\n *\n * @example\n * const { ref } = useDoubleClick(() => console.log('double clicked'));\n *\n * @see {@link https://siberiacancode.github.io/reactuse/functions/hooks/useDoubleClick.html}\n */\nexport const useDoubleClick = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: DoubleClickEvents) => void;\n const options = (target ? params[2] : params[1]) as UseDoubleClickOptions | undefined;\n\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const clickCountRef = useRef(0);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const onClick = (event: DoubleClickEvents) => {\n clickCountRef.current += 1;\n\n if (clickCountRef.current === 1) {\n timeoutIdRef.current = setTimeout(() => {\n if (internalOptionsRef.current?.onSingleClick)\n internalOptionsRef.current.onSingleClick(event);\n clickCountRef.current = 0;\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n }\n\n if (clickCountRef.current === 2) {\n clearTimeout(timeoutIdRef.current);\n internalCallbackRef.current(event);\n clickCountRef.current = 0;\n }\n };\n\n element.addEventListener('mousedown', onClick as EventListener);\n element.addEventListener('touchstart', onClick as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onClick as EventListener);\n element.removeEventListener('touchstart', onClick as EventListener);\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return;\n return {\n ref: internalRef\n };\n}) as UseDoubleClick;\n"],"mappings":"uKAkCA,IAAa,EAAyB,IA4BzB,IAAmB,GAAG,IAAuB,CACxD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,GAAA,EAAA,EAAA,QAAqD,IAAA,GAAU,CAC/D,GAAA,EAAA,EAAA,QAAuB,EAAE,CACzB,EAAc,EAAA,aAAsB,CAEpC,GAAA,EAAA,EAAA,QAA6B,EAAS,CAC5C,EAAoB,QAAU,EAC9B,IAAM,GAAA,EAAA,EAAA,QAA4B,EAAQ,CAC1C,KAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OAEnC,IAAM,EAAU,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACnE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,GAA6B,CAC5C,EAAc,SAAW,EAErB,EAAc,UAAY,IAC5B,EAAa,QAAU,eAAiB,CAClC,EAAmB,SAAS,eAC9B,EAAmB,QAAQ,cAAc,EAAM,CACjD,EAAc,QAAU,GACvB,EAAmB,SAAS,WAAA,IAAoC,EAGjE,EAAc,UAAY,IAC5B,aAAa,EAAa,QAAQ,CAClC,EAAoB,QAAQ,EAAM,CAClC,EAAc,QAAU,IAO5B,OAHA,EAAQ,iBAAiB,YAAa,EAAyB,CAC/D,EAAQ,iBAAiB,aAAc,EAAyB,KAEnD,CACX,EAAQ,oBAAoB,YAAa,EAAyB,CAClE,EAAQ,oBAAoB,aAAc,EAAyB,CAC/D,EAAa,SAAS,aAAa,EAAa,QAAQ,GAE7D,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,GACJ,MAAO,CACL,IAAK,EACN"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),m=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),D=((...n)=>{const o=d.isTarget(n[0])?n[0]:void 0,s=o?typeof n[1]=="object"?n[1]:{onDrop:n[1]}:typeof n[0]=="object"?n[0]:{onDrop:n[0]},a=m.useRefState(),u=l.useRef(0),[g,E]=l.useState(null),[p,c]=l.useState(!1),i=s.dataTypes,T=e=>{if(!e.dataTransfer)return null;const t=Array.from(e.dataTransfer.files);return s.multiple?t:t.length?[t[0]]:null},v=e=>i?typeof i=="function"?i(e):i.length?e.length?e.every(t=>i.some(r=>t.includes(r))):!1:!0:!0,L=e=>{const t=Array.from(e).map(f=>f.type),r=v(t),y=s.multiple||e.length<=1;return r&&y};return l.useEffect(()=>{if(!o&&!a.state)return;const e=o?d.isTarget.getElement(o):a.current;if(!e)return;const t=r=>{if(!r.dataTransfer)return;if(!L(r.dataTransfer.items)){r.dataTransfer.dropEffect="none";return}r.preventDefault(),r.dataTransfer.dropEffect="copy";const f=T(r);if(r.type==="drop"){u.current=0,c(!1),E(f),s.onDrop?.(f,r);return}if(r.type==="dragenter"){u.current+=1,c(!0),s.onEnter?.(r);return}if(r.type==="dragleave"){if(u.current-=1,u.current!==0)return;c(!1),s.onLeave?.(r);return}r.type==="dragover"&&s.onOver?.(r)};return e.addEventListener("dragenter",t),e.addEventListener("dragover",t),e.addEventListener("dragleave",t),e.addEventListener("drop",t),()=>{e.removeEventListener("dragenter",t),e.removeEventListener("dragover",t),e.removeEventListener("dragleave",t),e.removeEventListener("drop",t)}},[o&&d.isTarget.getRawElement(o),a.state]),o?{overed:p,files:g}:{ref:a,overed:p,files:g}});exports.useDropZone=D;
2
- //# sourceMappingURL=useDropZone.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?typeof r[1]==`object`?r[1]:{onDrop:r[1]}:typeof r[0]==`object`?r[0]:{onDrop:r[0]},o=t.useRefState(),s=(0,n.useRef)(0),[c,l]=(0,n.useState)(null),[u,d]=(0,n.useState)(!1),f=a.dataTypes,p=e=>{if(!e.dataTransfer)return null;let t=Array.from(e.dataTransfer.files);return a.multiple?t:t.length?[t[0]]:null},m=e=>f?typeof f==`function`?f(e):f.length?e.length?e.every(e=>f.some(t=>e.includes(t))):!1:!0:!0,h=e=>{let t=m(Array.from(e).map(e=>e.type)),n=a.multiple||e.length<=1;return t&&n};return(0,n.useEffect)(()=>{if(!i&&!o.state)return;let t=i?e.isTarget.getElement(i):o.current;if(!t)return;let n=e=>{if(!e.dataTransfer)return;if(!h(e.dataTransfer.items)){e.dataTransfer.dropEffect=`none`;return}e.preventDefault(),e.dataTransfer.dropEffect=`copy`;let t=p(e);if(e.type===`drop`){s.current=0,d(!1),l(t),a.onDrop?.(t,e);return}if(e.type===`dragenter`){s.current+=1,d(!0),a.onEnter?.(e);return}if(e.type===`dragleave`){if(--s.current,s.current!==0)return;d(!1),a.onLeave?.(e);return}e.type===`dragover`&&a.onOver?.(e)};return t.addEventListener(`dragenter`,n),t.addEventListener(`dragover`,n),t.addEventListener(`dragleave`,n),t.addEventListener(`drop`,n),()=>{t.removeEventListener(`dragenter`,n),t.removeEventListener(`dragover`,n),t.removeEventListener(`dragleave`,n),t.removeEventListener(`drop`,n)}},[i&&e.isTarget.getRawElement(i),o.state]),i?{overed:u,files:c}:{ref:o,overed:u,files:c}});exports.useDropZone=r;
2
+ //# sourceMappingURL=useDropZone.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropZone.cjs","sources":["../../../../src/hooks/useDropZone/useDropZone.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type DropZoneDataTypes = ((types: string[]) => boolean) | string[];\n\nexport interface UseDropZoneOptions {\n /** The data types for drop zone */\n dataTypes?: DropZoneDataTypes;\n /** The multiple mode for drop zone */\n multiple?: boolean;\n /** The on drop callback */\n onDrop?: (files: File[] | null, event: DragEvent) => void;\n /** The on enter callback */\n onEnter?: (event: DragEvent) => void;\n /** The on leave callback */\n onLeave?: (event: DragEvent) => void;\n /** The on over callback */\n onOver?: (event: DragEvent) => void;\n}\n\nexport interface UseDropZoneReturn {\n /** The files that was dropped in drop zone */\n files: File[] | null;\n /** The over drop zone status */\n overed: boolean;\n}\n\nexport interface UseDropZone {\n (\n target: HookTarget,\n callback?: (files: File[] | null, event: DragEvent) => void\n ): UseDropZoneReturn;\n\n <Target extends Element>(\n callback?: (files: File[] | null, event: DragEvent) => void,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n\n (target: HookTarget, options?: UseDropZoneOptions): UseDropZoneReturn;\n\n <Target extends Element>(\n options?: UseDropZoneOptions,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useDropZone\n * @description - Hook that provides drop zone functionality\n * @category Elements\n * @usage medium\n\n * @overload\n * @template Target The target element\n * @param {Target} target The target element drop zone's\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {UseDropZoneReturn} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, options);\n *\n * @overload\n * @param {Target} target The target element drop zone's\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {UseDropZoneReturn} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, () => console.log('callback'));\n *\n * @overload\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {UseDropZoneReturn & { ref: StateRef<Target> }} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(options);\n *\n * @overload\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {UseDropZoneReturn & { ref: StateRef<Target> }} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(() => console.log('callback'));\n */\nexport const useDropZone = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onDrop: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onDrop: params[0] }\n ) as UseDropZoneOptions;\n\n const internalRef = useRefState<Element>();\n\n const counterRef = useRef(0);\n const [files, setFiles] = useState<File[] | null>(null);\n const [overed, setOvered] = useState(false);\n\n const dataTypes = options.dataTypes;\n\n const getFiles = (event: DragEvent) => {\n if (!event.dataTransfer) return null;\n const list = Array.from(event.dataTransfer.files);\n if (options.multiple) return list;\n if (!list.length) return null;\n return [list[0]];\n };\n\n const checkDataTypes = (types: string[]) => {\n if (!dataTypes) return true;\n if (typeof dataTypes === 'function') return dataTypes(types);\n if (!dataTypes.length) return true;\n if (!types.length) return false;\n\n return types.every((type) => dataTypes.some((dataType) => type.includes(dataType)));\n };\n\n const checkValidity = (items: DataTransferItemList) => {\n const types = Array.from(items).map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = options.multiple || items.length <= 1;\n\n return dataTypesValid && multipleFilesValid;\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n\n if (!element) return;\n\n const onEvent = (event: DragEvent) => {\n if (!event.dataTransfer) return;\n\n const isValid = checkValidity(event.dataTransfer.items);\n if (!isValid) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n\n const currentFiles = getFiles(event);\n\n if (event.type === 'drop') {\n counterRef.current = 0;\n setOvered(false);\n setFiles(currentFiles);\n options.onDrop?.(currentFiles, event);\n return;\n }\n\n if (event.type === 'dragenter') {\n counterRef.current += 1;\n setOvered(true);\n options.onEnter?.(event);\n return;\n }\n\n if (event.type === 'dragleave') {\n counterRef.current -= 1;\n if (counterRef.current !== 0) return;\n setOvered(false);\n options.onLeave?.(event);\n return;\n }\n\n if (event.type === 'dragover') options.onOver?.(event);\n };\n\n element.addEventListener('dragenter', onEvent as EventListener);\n element.addEventListener('dragover', onEvent as EventListener);\n element.addEventListener('dragleave', onEvent as EventListener);\n element.addEventListener('drop', onEvent as EventListener);\n\n return () => {\n element.removeEventListener('dragenter', onEvent as EventListener);\n element.removeEventListener('dragover', onEvent as EventListener);\n element.removeEventListener('dragleave', onEvent as EventListener);\n element.removeEventListener('drop', onEvent as EventListener);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { overed, files };\n return { ref: internalRef, overed, files };\n}) as UseDropZone;\n"],"names":["useDropZone","params","target","isTarget","options","internalRef","useRefState","counterRef","useRef","files","setFiles","useState","overed","setOvered","dataTypes","getFiles","event","list","checkDataTypes","types","type","dataType","checkValidity","items","item","dataTypesValid","multipleFilesValid","useEffect","element","onEvent","currentFiles"],"mappings":"mMAwGaA,GAAe,IAAIC,IAAkB,CAChD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,OAAQA,EAAO,CAAC,CAAA,EACpB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,OAAQA,EAAO,CAAC,CAAA,EAGpBI,EAAcC,EAAAA,YAAA,EAEdC,EAAaC,EAAAA,OAAO,CAAC,EACrB,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAwB,IAAI,EAChD,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAS,EAAK,EAEpCG,EAAYV,EAAQ,UAEpBW,EAAYC,GAAqB,CACrC,GAAI,CAACA,EAAM,aAAc,OAAO,KAChC,MAAMC,EAAO,MAAM,KAAKD,EAAM,aAAa,KAAK,EAChD,OAAIZ,EAAQ,SAAiBa,EACxBA,EAAK,OACH,CAACA,EAAK,CAAC,CAAC,EADU,IACV,EAGXC,EAAkBC,GACjBL,EACD,OAAOA,GAAc,WAAmBA,EAAUK,CAAK,EACtDL,EAAU,OACVK,EAAM,OAEJA,EAAM,MAAOC,GAASN,EAAU,KAAMO,GAAaD,EAAK,SAASC,CAAQ,CAAC,CAAC,EAFxD,GADI,GAFP,GAQnBC,EAAiBC,GAAgC,CACrD,MAAMJ,EAAQ,MAAM,KAAKI,CAAK,EAAE,IAAKC,GAASA,EAAK,IAAI,EACjDC,EAAiBP,EAAeC,CAAK,EACrCO,EAAqBtB,EAAQ,UAAYmB,EAAM,QAAU,EAE/D,OAAOE,GAAkBC,CAAA,EA+D3B,OA5DAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACzB,GAAU,CAACG,EAAY,MAAO,OAEnC,MAAMuB,EAAU1B,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIG,EAAY,QAEnE,GAAI,CAACuB,EAAS,OAEd,MAAMC,EAAWb,GAAqB,CACpC,GAAI,CAACA,EAAM,aAAc,OAGzB,GAAI,CADYM,EAAcN,EAAM,aAAa,KAAK,EACxC,CACZA,EAAM,aAAa,WAAa,OAChC,MAAA,CAGFA,EAAM,eAAA,EACNA,EAAM,aAAa,WAAa,OAEhC,MAAMc,EAAef,EAASC,CAAK,EAEnC,GAAIA,EAAM,OAAS,OAAQ,CACzBT,EAAW,QAAU,EACrBM,EAAU,EAAK,EACfH,EAASoB,CAAY,EACrB1B,EAAQ,SAAS0B,EAAcd,CAAK,EACpC,MAAA,CAGF,GAAIA,EAAM,OAAS,YAAa,CAC9BT,EAAW,SAAW,EACtBM,EAAU,EAAI,EACdT,EAAQ,UAAUY,CAAK,EACvB,MAAA,CAGF,GAAIA,EAAM,OAAS,YAAa,CAE9B,GADAT,EAAW,SAAW,EAClBA,EAAW,UAAY,EAAG,OAC9BM,EAAU,EAAK,EACfT,EAAQ,UAAUY,CAAK,EACvB,MAAA,CAGEA,EAAM,OAAS,YAAYZ,EAAQ,SAASY,CAAK,CAAA,EAGvD,OAAAY,EAAQ,iBAAiB,YAAaC,CAAwB,EAC9DD,EAAQ,iBAAiB,WAAYC,CAAwB,EAC7DD,EAAQ,iBAAiB,YAAaC,CAAwB,EAC9DD,EAAQ,iBAAiB,OAAQC,CAAwB,EAElD,IAAM,CACXD,EAAQ,oBAAoB,YAAaC,CAAwB,EACjED,EAAQ,oBAAoB,WAAYC,CAAwB,EAChED,EAAQ,oBAAoB,YAAaC,CAAwB,EACjED,EAAQ,oBAAoB,OAAQC,CAAwB,CAAA,CAC9D,EACC,CAAC3B,GAAUC,WAAS,cAAcD,CAAM,EAAGG,EAAY,KAAK,CAAC,EAE5DH,EAAe,CAAE,OAAAU,EAAQ,MAAAH,CAAA,EACtB,CAAE,IAAKJ,EAAa,OAAAO,EAAQ,MAAAH,CAAA,CACrC"}
1
+ {"version":3,"file":"useDropZone.cjs","names":[],"sources":["../../../../src/hooks/useDropZone/useDropZone.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type DropZoneDataTypes = ((types: string[]) => boolean) | string[];\n\nexport interface UseDropZoneOptions {\n /** The data types for drop zone */\n dataTypes?: DropZoneDataTypes;\n /** The multiple mode for drop zone */\n multiple?: boolean;\n /** The on drop callback */\n onDrop?: (files: File[] | null, event: DragEvent) => void;\n /** The on enter callback */\n onEnter?: (event: DragEvent) => void;\n /** The on leave callback */\n onLeave?: (event: DragEvent) => void;\n /** The on over callback */\n onOver?: (event: DragEvent) => void;\n}\n\nexport interface UseDropZoneReturn {\n /** The files that was dropped in drop zone */\n files: File[] | null;\n /** The over drop zone status */\n overed: boolean;\n}\n\nexport interface UseDropZone {\n (\n target: HookTarget,\n callback?: (files: File[] | null, event: DragEvent) => void\n ): UseDropZoneReturn;\n\n <Target extends Element>(\n callback?: (files: File[] | null, event: DragEvent) => void,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n\n (target: HookTarget, options?: UseDropZoneOptions): UseDropZoneReturn;\n\n <Target extends Element>(\n options?: UseDropZoneOptions,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useDropZone\n * @description - Hook that provides drop zone functionality\n * @category Elements\n * @usage medium\n\n * @overload\n * @template Target The target element\n * @param {Target} target The target element drop zone's\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {UseDropZoneReturn} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, options);\n *\n * @overload\n * @param {Target} target The target element drop zone's\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {UseDropZoneReturn} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, () => console.log('callback'));\n *\n * @overload\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {UseDropZoneReturn & { ref: StateRef<Target> }} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(options);\n *\n * @overload\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {UseDropZoneReturn & { ref: StateRef<Target> }} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(() => console.log('callback'));\n */\nexport const useDropZone = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onDrop: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onDrop: params[0] }\n ) as UseDropZoneOptions;\n\n const internalRef = useRefState<Element>();\n\n const counterRef = useRef(0);\n const [files, setFiles] = useState<File[] | null>(null);\n const [overed, setOvered] = useState(false);\n\n const dataTypes = options.dataTypes;\n\n const getFiles = (event: DragEvent) => {\n if (!event.dataTransfer) return null;\n const list = Array.from(event.dataTransfer.files);\n if (options.multiple) return list;\n if (!list.length) return null;\n return [list[0]];\n };\n\n const checkDataTypes = (types: string[]) => {\n if (!dataTypes) return true;\n if (typeof dataTypes === 'function') return dataTypes(types);\n if (!dataTypes.length) return true;\n if (!types.length) return false;\n\n return types.every((type) => dataTypes.some((dataType) => type.includes(dataType)));\n };\n\n const checkValidity = (items: DataTransferItemList) => {\n const types = Array.from(items).map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = options.multiple || items.length <= 1;\n\n return dataTypesValid && multipleFilesValid;\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n\n if (!element) return;\n\n const onEvent = (event: DragEvent) => {\n if (!event.dataTransfer) return;\n\n const isValid = checkValidity(event.dataTransfer.items);\n if (!isValid) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n\n const currentFiles = getFiles(event);\n\n if (event.type === 'drop') {\n counterRef.current = 0;\n setOvered(false);\n setFiles(currentFiles);\n options.onDrop?.(currentFiles, event);\n return;\n }\n\n if (event.type === 'dragenter') {\n counterRef.current += 1;\n setOvered(true);\n options.onEnter?.(event);\n return;\n }\n\n if (event.type === 'dragleave') {\n counterRef.current -= 1;\n if (counterRef.current !== 0) return;\n setOvered(false);\n options.onLeave?.(event);\n return;\n }\n\n if (event.type === 'dragover') options.onOver?.(event);\n };\n\n element.addEventListener('dragenter', onEvent as EventListener);\n element.addEventListener('dragover', onEvent as EventListener);\n element.addEventListener('dragleave', onEvent as EventListener);\n element.addEventListener('drop', onEvent as EventListener);\n\n return () => {\n element.removeEventListener('dragenter', onEvent as EventListener);\n element.removeEventListener('dragover', onEvent as EventListener);\n element.removeEventListener('dragleave', onEvent as EventListener);\n element.removeEventListener('drop', onEvent as EventListener);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { overed, files };\n return { ref: internalRef, overed, files };\n}) as UseDropZone;\n"],"mappings":"uKAwGA,IAAa,IAAgB,GAAG,IAAkB,CAChD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAE5C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,OAAQ,EAAO,GAAI,CACvB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,OAAQ,EAAO,GAAI,CAGvB,EAAc,EAAA,aAAsB,CAEpC,GAAA,EAAA,EAAA,QAAoB,EAAE,CACtB,CAAC,EAAO,IAAA,EAAA,EAAA,UAAoC,KAAK,CACjD,CAAC,EAAQ,IAAA,EAAA,EAAA,UAAsB,GAAM,CAErC,EAAY,EAAQ,UAEpB,EAAY,GAAqB,CACrC,GAAI,CAAC,EAAM,aAAc,OAAO,KAChC,IAAM,EAAO,MAAM,KAAK,EAAM,aAAa,MAAM,CAGjD,OAFI,EAAQ,SAAiB,EACxB,EAAK,OACH,CAAC,EAAK,GAAG,CADS,MAIrB,EAAkB,GACjB,EACD,OAAO,GAAc,WAAmB,EAAU,EAAM,CACvD,EAAU,OACV,EAAM,OAEJ,EAAM,MAAO,GAAS,EAAU,KAAM,GAAa,EAAK,SAAS,EAAS,CAAC,CAAC,CAFzD,GADI,GAFP,GAQnB,EAAiB,GAAgC,CAErD,IAAM,EAAiB,EADT,MAAM,KAAK,EAAM,CAAC,IAAK,GAAS,EAAK,KAAK,CACZ,CACtC,EAAqB,EAAQ,UAAY,EAAM,QAAU,EAE/D,OAAO,GAAkB,GAgE3B,OA7DA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OAEnC,IAAM,EAAU,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAEnE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,GAAqB,CACpC,GAAI,CAAC,EAAM,aAAc,OAGzB,GAAI,CADY,EAAc,EAAM,aAAa,MAAM,CACzC,CACZ,EAAM,aAAa,WAAa,OAChC,OAGF,EAAM,gBAAgB,CACtB,EAAM,aAAa,WAAa,OAEhC,IAAM,EAAe,EAAS,EAAM,CAEpC,GAAI,EAAM,OAAS,OAAQ,CACzB,EAAW,QAAU,EACrB,EAAU,GAAM,CAChB,EAAS,EAAa,CACtB,EAAQ,SAAS,EAAc,EAAM,CACrC,OAGF,GAAI,EAAM,OAAS,YAAa,CAC9B,EAAW,SAAW,EACtB,EAAU,GAAK,CACf,EAAQ,UAAU,EAAM,CACxB,OAGF,GAAI,EAAM,OAAS,YAAa,CAE9B,GADA,IAAW,QACP,EAAW,UAAY,EAAG,OAC9B,EAAU,GAAM,CAChB,EAAQ,UAAU,EAAM,CACxB,OAGE,EAAM,OAAS,YAAY,EAAQ,SAAS,EAAM,EAQxD,OALA,EAAQ,iBAAiB,YAAa,EAAyB,CAC/D,EAAQ,iBAAiB,WAAY,EAAyB,CAC9D,EAAQ,iBAAiB,YAAa,EAAyB,CAC/D,EAAQ,iBAAiB,OAAQ,EAAyB,KAE7C,CACX,EAAQ,oBAAoB,YAAa,EAAyB,CAClE,EAAQ,oBAAoB,WAAY,EAAyB,CACjE,EAAQ,oBAAoB,YAAa,EAAyB,CAClE,EAAQ,oBAAoB,OAAQ,EAAyB,GAE9D,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,EAAe,CAAE,SAAQ,QAAO,CAC7B,CAAE,IAAK,EAAa,SAAQ,QAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),s=e=>{const r=t.useRef(e);return r.current=e,t.useCallback((...n)=>{const u=r.current;return u(...n)},[])};exports.useEvent=s;
2
- //# sourceMappingURL=useEvent.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>{let n=(0,e.useRef)(t);return n.current=t,(0,e.useCallback)((...e)=>{let t=n.current;return t(...e)},[])};exports.useEvent=t;
2
+ //# sourceMappingURL=useEvent.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEvent.cjs","sources":["../../../../src/hooks/useEvent/useEvent.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\n/**\n * @name useEvent\n * @description - Hook that creates an event and returns a stable reference of it\n * @category Utilities\n * @usage high\n\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @returns {(...args: Params) => Return} The callback\n *\n * @example\n * const onClick = useEvent(() => console.log('clicked'));\n */\nexport const useEvent = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return\n): ((...args: Params) => Return) => {\n const internalCallbackRef = useRef<typeof callback>(callback);\n internalCallbackRef.current = callback;\n\n return useCallback((...args) => {\n const fn = internalCallbackRef.current;\n return fn(...args);\n }, []);\n};\n"],"names":["useEvent","callback","internalCallbackRef","useRef","useCallback","args","fn"],"mappings":"yGAgBaA,EACXC,GACkC,CAClC,MAAMC,EAAsBC,EAAAA,OAAwBF,CAAQ,EAC5D,OAAAC,EAAoB,QAAUD,EAEvBG,EAAAA,YAAY,IAAIC,IAAS,CAC9B,MAAMC,EAAKJ,EAAoB,QAC/B,OAAOI,EAAG,GAAGD,CAAI,CAAA,EAChB,EAAE,CACP"}
1
+ {"version":3,"file":"useEvent.cjs","names":[],"sources":["../../../../src/hooks/useEvent/useEvent.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\n/**\n * @name useEvent\n * @description - Hook that creates an event and returns a stable reference of it\n * @category Utilities\n * @usage high\n\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @returns {(...args: Params) => Return} The callback\n *\n * @example\n * const onClick = useEvent(() => console.log('clicked'));\n */\nexport const useEvent = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return\n): ((...args: Params) => Return) => {\n const internalCallbackRef = useRef<typeof callback>(callback);\n internalCallbackRef.current = callback;\n\n return useCallback((...args) => {\n const fn = internalCallbackRef.current;\n return fn(...args);\n }, []);\n};\n"],"mappings":"uEAgBA,IAAa,EACX,GACkC,CAClC,IAAM,GAAA,EAAA,EAAA,QAA8C,EAAS,CAG7D,MAFA,GAAoB,QAAU,GAE9B,EAAA,EAAA,cAAoB,GAAG,IAAS,CAC9B,IAAM,EAAK,EAAoB,QAC/B,OAAO,EAAG,GAAG,EAAK,EACjB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),R=require("../useRefState/useRefState.cjs"),o=require("../../utils/helpers/isTarget.cjs"),E=((...e)=>{const t=o.isTarget(e[0])?e[0]:void 0,r=t?e[1]:e[0],u=t?e[2]:e[1],n=t?e[3]:e[2],c=n?.enabled??!0,s=R.useRefState(),l=i.useRef(u);l.current=u;const d=i.useRef(n);if(d.current=n,i.useEffect(()=>{if(!c)return;const f=(t?o.isTarget.getElement(t):s.current)??window,g=v=>l.current(v);return f.addEventListener(r,g,n),()=>{f.removeEventListener(r,g,n)}},[t&&o.isTarget.getRawElement(t),s.state,r,c]),!t)return s});exports.useEventListener=E;
2
- //# sourceMappingURL=useEventListener.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?r[1]:r[0],o=i?r[2]:r[1],s=i?r[3]:r[2],c=s?.enabled??!0,l=t.useRefState(),u=(0,n.useRef)(o);u.current=o;let d=(0,n.useRef)(s);if(d.current=s,(0,n.useEffect)(()=>{if(!c)return;let t=(i?e.isTarget.getElement(i):l.current)??window,n=e=>u.current(e);return t.addEventListener(a,n,s),()=>{t.removeEventListener(a,n,s)}},[i&&e.isTarget.getRawElement(i),l.state,a,c]),!i)return l});exports.useEventListener=r;
2
+ //# sourceMappingURL=useEventListener.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEventListener.cjs","sources":["../../../../src/hooks/useEventListener/useEventListener.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use event listener options */\nexport type UseEventListenerOptions = {\n enabled?: boolean;\n} & AddEventListenerOptions;\n\n/** The use event listener return type */\nexport type UseEventListenerReturn<Target extends Element> = StateRef<Target>;\n\nexport interface UseEventListener {\n <Event extends keyof WindowEventMap = keyof WindowEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Window, event: WindowEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Event extends keyof DocumentEventMap = keyof DocumentEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Document, event: DocumentEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Event extends keyof HTMLElementEventMap = keyof HTMLElementEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Element, event: HTMLElementEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends Element, Event extends keyof HTMLElementEventMap = keyof HTMLElementEventMap>(\n event: Event,\n listener: (this: Target, event: HTMLElementEventMap[Event]) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): UseEventListenerReturn<Target>;\n\n <\n Target extends Element,\n Event extends keyof MediaQueryListEventMap = keyof MediaQueryListEventMap\n >(\n event: Event,\n listener: (this: Target, event: MediaQueryListEventMap[Event]) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): UseEventListenerReturn<Target>;\n}\n\n/**\n * @name useEventListener\n * @description - Hook that attaches an event listener to the specified target\n * @category Browser\n * @usage necessary\n\n * @overload\n * @template Event Key of window event map\n * @param {Window} target The window object to attach the event listener to\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Window, event: WindowEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {void}\n *\n * @example\n * useEventListener(window, 'click', () => console.log('click'));\n *\n * @overload\n * @template Event Key of window event map\n * @param {Document} target The window object to attach the event listener to\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Document, event: DocumentEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {void}\n *\n * @example\n * useEventListener(document, 'click', () => console.log('click'));\n *\n * @overload\n * @template Event Key of window event map\n * @template Target The target element\n * @param {HookTarget} target The target element to attach the event listener to\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Target, event: HTMLElementEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {void}\n *\n * @example\n * useEventListener(ref, 'click', () => console.log('click'));\n *\n * @overload\n * @template Event Key of window event map\n * @template Target The target element\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Target, event: HTMLElementEventMap[Event] | MediaQueryListEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {UseEventListenerReturn<Target>} A reference to the target element\n *\n * @example\n * const ref = useEventListener('click', () => console.log('click'));\n */\nexport const useEventListener = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const event = (target ? params[1] : params[0]) as string;\n const listener = (target ? params[2] : params[1]) as (...arg: any[]) => undefined | void;\n const options = (target ? params[3] : params[2]) as UseEventListenerOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n\n const internalRef = useRefState();\n const internalListenerRef = useRef(listener);\n internalListenerRef.current = listener;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!enabled) return;\n\n const element =\n ((target ? isTarget.getElement(target) : internalRef.current) as Element) ?? window;\n\n const listener = (event: Event) => internalListenerRef.current(event);\n\n element.addEventListener(event, listener, options);\n return () => {\n element.removeEventListener(event, listener, options);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, event, enabled]);\n\n if (target) return;\n return internalRef;\n}) as UseEventListener;\n"],"names":["useEventListener","params","target","isTarget","event","listener","options","enabled","internalRef","useRefState","internalListenerRef","useRef","internalOptionsRef","useEffect","element"],"mappings":"mMA6GaA,GAAoB,IAAIC,IAAkB,CACrD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAASF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACtCI,EAAYH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCK,EAAWJ,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExCM,EAAUD,GAAS,SAAW,GAE9BE,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAON,CAAQ,EAC3CK,EAAoB,QAAUL,EAC9B,MAAMO,EAAqBD,EAAAA,OAAOL,CAAO,EAiBzC,GAhBAM,EAAmB,QAAUN,EAE7BO,EAAAA,UAAU,IAAM,CACd,GAAI,CAACN,EAAS,OAEd,MAAMO,GACFZ,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIM,EAAY,UAAwB,OAEzEH,EAAYD,GAAiBM,EAAoB,QAAQN,CAAK,EAEpE,OAAAU,EAAQ,iBAAiBV,EAAOC,EAAUC,CAAO,EAC1C,IAAM,CACXQ,EAAQ,oBAAoBV,EAAOC,EAAUC,CAAO,CAAA,CACtD,EACC,CAACJ,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EAAGM,EAAY,MAAOJ,EAAOG,CAAO,CAAC,EAE5E,CAAAL,EACJ,OAAOM,CACT"}
1
+ {"version":3,"file":"useEventListener.cjs","names":[],"sources":["../../../../src/hooks/useEventListener/useEventListener.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use event listener options */\nexport type UseEventListenerOptions = {\n enabled?: boolean;\n} & AddEventListenerOptions;\n\n/** The use event listener return type */\nexport type UseEventListenerReturn<Target extends Element> = StateRef<Target>;\n\nexport interface UseEventListener {\n <Event extends keyof WindowEventMap = keyof WindowEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Window, event: WindowEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Event extends keyof DocumentEventMap = keyof DocumentEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Document, event: DocumentEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Event extends keyof HTMLElementEventMap = keyof HTMLElementEventMap>(\n target: HookTarget,\n event: Event,\n listener: (this: Element, event: HTMLElementEventMap[Event]) => void,\n options?: UseEventListenerOptions\n ): void;\n\n <Target extends Element, Event extends keyof HTMLElementEventMap = keyof HTMLElementEventMap>(\n event: Event,\n listener: (this: Target, event: HTMLElementEventMap[Event]) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): UseEventListenerReturn<Target>;\n\n <\n Target extends Element,\n Event extends keyof MediaQueryListEventMap = keyof MediaQueryListEventMap\n >(\n event: Event,\n listener: (this: Target, event: MediaQueryListEventMap[Event]) => void,\n options?: UseEventListenerOptions,\n target?: never\n ): UseEventListenerReturn<Target>;\n}\n\n/**\n * @name useEventListener\n * @description - Hook that attaches an event listener to the specified target\n * @category Browser\n * @usage necessary\n *\n * @overload\n * @template Event Key of window event map\n * @template Target The target element\n * @param {HookTarget} target The target element to attach the event listener to\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Target, event: HTMLElementEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {void}\n *\n * @example\n * useEventListener(ref, 'click', () => console.log('click'));\n *\n * @overload\n * @template Event Key of window event map\n * @template Target The target element\n * @param {Event | Event[]} event An array of event types to listen for\n * @param {(this: Target, event: HTMLElementEventMap[Event] | MediaQueryListEventMap[Event]) => void} handler The event handler function\n * @param {UseEventListenerOptions} [options] Options for the event listener\n * @returns {UseEventListenerReturn<Target>} A reference to the target element\n *\n * @example\n * const ref = useEventListener('click', () => console.log('click'));\n */\nexport const useEventListener = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const event = (target ? params[1] : params[0]) as string;\n const listener = (target ? params[2] : params[1]) as (...arg: any[]) => undefined | void;\n const options = (target ? params[3] : params[2]) as UseEventListenerOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n\n const internalRef = useRefState();\n const internalListenerRef = useRef(listener);\n internalListenerRef.current = listener;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!enabled) return;\n\n const element =\n ((target ? isTarget.getElement(target) : internalRef.current) as Element) ?? window;\n\n const listener = (event: Event) => internalListenerRef.current(event);\n\n element.addEventListener(event, listener, options);\n return () => {\n element.removeEventListener(event, listener, options);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, event, enabled]);\n\n if (target) return;\n return internalRef;\n}) as UseEventListener;\n"],"mappings":"uKAuFA,IAAa,IAAqB,GAAG,IAAkB,CACrD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAS,EAAS,EAAO,GAAK,EAAO,GACrC,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,EAAU,GAAS,SAAW,GAE9B,EAAc,EAAA,aAAa,CAC3B,GAAA,EAAA,EAAA,QAA6B,EAAS,CAC5C,EAAoB,QAAU,EAC9B,IAAM,GAAA,EAAA,EAAA,QAA4B,EAAQ,CAC1C,KAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAS,OAEd,IAAM,GACF,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,UAAwB,OAEzE,EAAY,GAAiB,EAAoB,QAAQ,EAAM,CAGrE,OADA,EAAQ,iBAAiB,EAAO,EAAU,EAAQ,KACrC,CACX,EAAQ,oBAAoB,EAAO,EAAU,EAAQ,GAEtD,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAO,EAAO,EAAQ,CAAC,CAE7E,GACJ,OAAO"}