@siberiacancode/reactuse 0.3.15 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
  3. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  4. package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
  5. package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
  6. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
  7. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
  8. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
  9. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  10. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
  11. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
  12. package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
  13. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  14. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
  15. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
  16. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
  17. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  18. package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
  19. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  20. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
  21. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
  22. package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
  23. package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
  24. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
  25. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
  26. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
  27. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
  29. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  30. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
  31. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  32. package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
  33. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  34. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
  35. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  36. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
  37. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
  38. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
  39. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  40. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
  41. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  42. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
  43. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  44. package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
  45. package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
  46. package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
  47. package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
  48. package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
  49. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  50. package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
  51. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  52. package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
  53. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  54. package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
  55. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  56. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
  57. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  58. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
  59. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  60. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
  61. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
  62. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
  63. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
  64. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
  65. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  66. package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
  67. package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
  68. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
  69. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  70. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
  71. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  72. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
  73. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  74. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
  75. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  76. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
  77. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  78. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
  79. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  80. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
  81. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  82. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
  83. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  84. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
  85. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  86. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
  87. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  88. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
  89. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  90. package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
  91. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  92. package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
  93. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  94. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
  95. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  96. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
  97. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  98. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
  99. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  100. package/dist/cjs/hooks/useField/useField.cjs +2 -2
  101. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  102. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
  103. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  104. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
  105. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
  106. package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
  107. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  108. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
  109. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
  110. package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
  111. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  112. package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
  113. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  114. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
  115. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  116. package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
  117. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  118. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
  119. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  120. package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
  121. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  122. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
  123. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  124. package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
  125. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  126. package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
  127. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  128. package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
  129. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  130. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
  131. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  132. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
  133. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  134. package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
  135. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  136. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
  137. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  138. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
  139. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
  140. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
  141. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  142. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
  143. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  144. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
  145. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  146. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
  147. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  148. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
  149. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  150. package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
  151. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  152. package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
  153. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  154. package/dist/cjs/hooks/useList/useList.cjs +2 -2
  155. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  156. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
  157. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  158. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
  159. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  160. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
  161. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
  162. package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
  163. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  164. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
  165. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  166. package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
  167. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  168. package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
  169. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  170. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
  171. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
  172. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
  173. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  174. package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
  175. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  176. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
  177. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
  178. package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
  179. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  180. package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
  181. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  182. package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
  183. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  184. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
  185. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  186. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
  187. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  188. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
  189. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
  190. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
  191. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  192. package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
  193. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  194. package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
  195. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  196. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
  197. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  198. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
  199. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  200. package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
  201. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  202. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
  203. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  204. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
  205. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  206. package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
  207. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  208. package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
  209. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  210. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
  211. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  212. package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
  213. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  214. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
  215. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
  216. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
  217. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  218. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
  219. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  220. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
  221. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  222. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
  223. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  224. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
  225. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
  226. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
  227. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  228. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
  229. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  230. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
  231. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  232. package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
  233. package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
  234. package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
  235. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  236. package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
  237. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  238. package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
  239. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  240. package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
  241. package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
  242. package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
  243. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  244. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
  245. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  246. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
  247. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  248. package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
  249. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  250. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
  251. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  252. package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
  253. package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
  254. package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
  255. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  256. package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
  257. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  258. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
  259. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  260. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
  261. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  262. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
  263. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
  264. package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
  265. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  266. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
  267. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
  268. package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
  269. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  270. package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
  271. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
  272. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
  273. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  274. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
  275. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  276. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
  277. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  278. package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
  279. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  280. package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
  281. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  282. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
  283. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  284. package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
  285. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  286. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
  287. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  288. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
  289. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  290. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
  291. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
  292. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
  293. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  294. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
  295. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
  296. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
  297. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
  298. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
  299. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  300. package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
  301. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  302. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
  303. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  304. package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
  305. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  306. package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
  307. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  308. package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
  309. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  310. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
  311. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  312. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
  313. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  314. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
  315. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  316. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
  317. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
  318. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
  319. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  320. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
  321. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  322. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
  323. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  324. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
  325. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  326. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
  327. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  328. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
  329. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  330. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
  331. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  332. package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
  333. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  334. package/dist/cjs/index.cjs +1 -2
  335. package/dist/cjs/utils/helpers/copy.cjs +2 -2
  336. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  337. package/dist/cjs/utils/helpers/debounce.cjs +2 -2
  338. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  339. package/dist/cjs/utils/helpers/getDate.cjs +2 -2
  340. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  341. package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
  342. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  343. package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
  344. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  345. package/dist/cjs/utils/helpers/throttle.cjs +2 -2
  346. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  347. package/dist/esm/helpers/createContext/createContext.mjs +32 -33
  348. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  349. package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
  350. package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
  351. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
  352. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
  353. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
  354. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  355. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
  356. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
  357. package/dist/esm/helpers/createStore/createStore.mjs +25 -29
  358. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  359. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
  360. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
  361. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
  362. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  363. package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
  364. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  365. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
  366. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
  367. package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
  368. package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
  369. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
  370. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
  371. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
  372. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
  373. package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
  374. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  375. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
  376. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  377. package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
  378. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  379. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
  380. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  381. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
  382. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
  383. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
  384. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  385. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
  386. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  387. package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
  388. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  389. package/dist/esm/hooks/useConst/useConst.mjs +7 -6
  390. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  391. package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
  392. package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
  393. package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
  394. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  395. package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
  396. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  397. package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
  398. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  399. package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
  400. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  401. package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
  402. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  403. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
  404. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  405. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
  406. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
  407. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
  408. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
  409. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
  410. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  411. package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
  412. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  413. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
  414. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  415. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
  416. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  417. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
  418. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  419. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
  420. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  421. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
  422. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  423. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
  424. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  425. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
  426. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  427. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
  428. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  429. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
  430. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  431. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
  432. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  433. package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
  434. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  435. package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
  436. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  437. package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
  438. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  439. package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
  440. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  441. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
  442. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  443. package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
  444. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  445. package/dist/esm/hooks/useField/useField.mjs +61 -67
  446. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  447. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
  448. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  449. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
  450. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
  451. package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
  452. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  453. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
  454. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
  455. package/dist/esm/hooks/useFps/useFps.mjs +18 -22
  456. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  457. package/dist/esm/hooks/useFul/useFul.mjs +8 -7
  458. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  459. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
  460. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  461. package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
  462. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  463. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
  464. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  465. package/dist/esm/hooks/useHash/useHash.mjs +24 -26
  466. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  467. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
  468. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  469. package/dist/esm/hooks/useHover/useHover.mjs +30 -25
  470. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  471. package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
  472. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  473. package/dist/esm/hooks/useImage/useImage.mjs +24 -26
  474. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  475. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
  476. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  477. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
  478. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  479. package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
  480. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  481. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
  482. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  483. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
  484. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
  485. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
  486. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  487. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
  488. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  489. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
  490. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  491. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
  492. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  493. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
  494. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  495. package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
  496. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  497. package/dist/esm/hooks/useLess/useLess.mjs +9 -8
  498. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  499. package/dist/esm/hooks/useList/useList.mjs +22 -22
  500. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  501. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
  502. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
  503. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
  504. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  505. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
  506. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
  507. package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
  508. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  509. package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
  510. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  511. package/dist/esm/hooks/useMap/useMap.mjs +21 -20
  512. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  513. package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
  514. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  515. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
  516. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
  517. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
  518. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  519. package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
  520. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  521. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
  522. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
  523. package/dist/esm/hooks/useMount/useMount.mjs +7 -6
  524. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  525. package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
  526. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  527. package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
  528. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  529. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
  530. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  531. package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
  532. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  533. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
  534. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
  535. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
  536. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  537. package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
  538. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  539. package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
  540. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  541. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
  542. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  543. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
  544. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  545. package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
  546. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  547. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
  548. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  549. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
  550. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  551. package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
  552. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  553. package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
  554. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  555. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
  556. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  557. package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
  558. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  559. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
  560. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
  561. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
  562. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  563. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
  564. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  565. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
  566. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  567. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
  568. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  569. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
  570. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  571. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
  572. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  573. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
  574. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
  575. package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
  576. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  577. package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
  578. package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
  579. package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
  580. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  581. package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
  582. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  583. package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
  584. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  585. package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
  586. package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
  587. package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
  588. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  589. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
  590. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  591. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
  592. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  593. package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
  594. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  595. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
  596. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  597. package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
  598. package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
  599. package/dist/esm/hooks/useScript/useScript.mjs +28 -31
  600. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  601. package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
  602. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  603. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
  604. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  605. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
  606. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  607. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
  608. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
  609. package/dist/esm/hooks/useSet/useSet.mjs +30 -29
  610. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  611. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
  612. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
  613. package/dist/esm/hooks/useShare/useShare.mjs +18 -14
  614. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  615. package/dist/esm/hooks/useSize/useSize.mjs +40 -30
  616. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
  617. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
  618. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  619. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
  620. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  621. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
  622. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  623. package/dist/esm/hooks/useStep/useStep.mjs +27 -28
  624. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  625. package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
  626. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  627. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
  628. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  629. package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
  630. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  631. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
  632. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  633. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
  634. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  635. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
  636. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
  637. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
  638. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  639. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
  640. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
  641. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
  642. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
  643. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
  644. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  645. package/dist/esm/hooks/useTime/useTime.mjs +14 -13
  646. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  647. package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
  648. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  649. package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
  650. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  651. package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
  652. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  653. package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
  654. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  655. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
  656. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  657. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
  658. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  659. package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
  660. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  661. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
  662. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
  663. package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
  664. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  665. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
  666. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  667. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
  668. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  669. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
  670. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  671. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
  672. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  673. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
  674. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  675. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
  676. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  677. package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
  678. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  679. package/dist/esm/index.mjs +173 -394
  680. package/dist/esm/utils/helpers/copy.mjs +18 -18
  681. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  682. package/dist/esm/utils/helpers/debounce.mjs +10 -10
  683. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  684. package/dist/esm/utils/helpers/getDate.mjs +20 -16
  685. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  686. package/dist/esm/utils/helpers/getRetry.mjs +6 -5
  687. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  688. package/dist/esm/utils/helpers/isTarget.mjs +10 -19
  689. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  690. package/dist/esm/utils/helpers/throttle.mjs +20 -20
  691. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  692. package/dist/types/helpers/index.d.ts +1 -0
  693. package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
  694. package/dist/types/hooks/browser.d.ts +2 -0
  695. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  696. package/dist/types/hooks/useField/useField.d.ts +2 -2
  697. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  698. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
  699. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  700. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  701. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  702. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  703. package/package.json +5 -5
  704. package/dist/cjs/index.cjs.map +0 -1
  705. package/dist/esm/index.mjs.map +0 -1
@@ -1,69 +1,68 @@
1
- import { useRef as J, useState as r, useEffect as K } from "react";
2
- import { useRefState as N } from "../useRefState/useRefState.mjs";
3
- import { isTarget as i } from "../../utils/helpers/isTarget.mjs";
4
- const O = (n) => {
5
- let s = [];
6
- for (let a = 0; a < n.length; ++a)
7
- s = [...s, [n.start(a), n.end(a)]];
8
- return s;
9
- }, re = ((...n) => {
10
- const s = i(n[0]) ? n[0] : void 0, a = s ? typeof n[1] == "object" ? n[1] : { src: n[1] } : typeof n[0] == "object" ? n[0] : { src: n[0] }, c = N(), t = J(null), [u, o] = r(!1), [d, l] = r(0), [j, m] = r(0), [D, v] = r(!1), [W, B] = r(!1), [U, q] = r([]), [z, f] = r(!1), [F, g] = r(!1), [G, E] = r(1), [H, L] = r(!1), [I, y] = r(1);
11
- K(() => {
12
- const e = s ? i.getElement(s) : c.current;
13
- if (!e) return;
14
- t.current = e, e.src = a.src, a.type && e.setAttribute("type", a.type), a.media && e.setAttribute("media", a.media), l(e.duration), m(e.currentTime), o(!1), g(e.ended), L(e.muted), y(e.volume), E(e.playbackRate);
15
- const h = () => {
16
- o(!0), f(!1);
17
- }, b = () => o(!1), R = () => B(!0), S = () => f(!0), T = () => v(!0), P = () => v(!1), M = () => {
18
- o(!1), g(!0);
19
- }, w = () => l(e.duration), V = () => m(e.currentTime), x = () => {
20
- L(e.muted), y(e.volume);
21
- }, A = () => E(e.playbackRate), C = () => q(O(e.buffered));
22
- return e.addEventListener("playing", h), e.addEventListener("pause", b), e.addEventListener("waiting", R), e.addEventListener("progress", C), e.addEventListener("stalled", S), e.addEventListener("seeking", T), e.addEventListener("seeked", P), e.addEventListener("ended", M), e.addEventListener("loadedmetadata", w), e.addEventListener("timeupdate", V), e.addEventListener("volumechange", x), e.addEventListener("ratechange", A), () => {
23
- e.removeEventListener("playing", h), e.removeEventListener("pause", b), e.removeEventListener("waiting", R), e.removeEventListener("progress", C), e.removeEventListener("stalled", S), e.removeEventListener("seeking", T), e.removeEventListener("seeked", P), e.removeEventListener("ended", M), e.removeEventListener("loadedmetadata", w), e.removeEventListener("timeupdate", V), e.removeEventListener("volumechange", x), e.removeEventListener("ratechange", A);
24
- };
25
- }, [s && i.getRawElement(s), c.state]);
26
- const p = async () => {
27
- const e = t.current;
28
- e && await e.play();
29
- }, k = () => {
30
- t.current && t.current.pause();
31
- };
32
- return {
33
- playing: u,
34
- duration: d,
35
- currentTime: j,
36
- seeking: D,
37
- waiting: W,
38
- buffered: U,
39
- stalled: z,
40
- ended: F,
41
- playbackRate: G,
42
- muted: H,
43
- volume: I,
44
- play: p,
45
- pause: k,
46
- toggle: async (e = !u) => e ? p() : k(),
47
- seek: (e) => {
48
- t.current && (t.current.currentTime = Math.min(Math.max(e, 0), d));
49
- },
50
- changeVolume: (e) => {
51
- t.current && (t.current.volume = Math.min(Math.max(e, 0), 1));
52
- },
53
- mute: () => {
54
- t.current && (t.current.muted = !0);
55
- },
56
- unmute: () => {
57
- t.current && (t.current.muted = !1);
58
- },
59
- changePlaybackRate: (e) => {
60
- t.current && (t.current.playbackRate = e);
61
- },
62
- ...!s && { ref: c }
63
- };
1
+ import { isTarget as e } from "../../utils/helpers/isTarget.mjs";
2
+ import { useRefState as t } from "../useRefState/useRefState.mjs";
3
+ import { useEffect as n, useRef as r, useState as i } from "react";
4
+ //#region src/hooks/useMediaControls/useMediaControls.ts
5
+ var a = (e) => {
6
+ let t = [];
7
+ for (let n = 0; n < e.length; ++n) t = [...t, [e.start(n), e.end(n)]];
8
+ return t;
9
+ }, o = ((...o) => {
10
+ let s = e(o[0]) ? o[0] : void 0, c = s ? typeof o[1] == "object" ? o[1] : { src: o[1] } : typeof o[0] == "object" ? o[0] : { src: o[0] }, l = t(), u = r(null), [d, f] = i(!1), [p, m] = i(0), [h, g] = i(0), [_, v] = i(!1), [y, b] = i(!1), [x, S] = i([]), [C, w] = i(!1), [T, E] = i(!1), [D, O] = i(1), [k, A] = i(!1), [j, M] = i(1);
11
+ n(() => {
12
+ let t = s ? e.getElement(s) : l.current;
13
+ if (!t) return;
14
+ u.current = t, t.src = c.src, c.type && t.setAttribute("type", c.type), c.media && t.setAttribute("media", c.media), m(t.duration), g(t.currentTime), f(!1), E(t.ended), A(t.muted), M(t.volume), O(t.playbackRate);
15
+ let n = () => {
16
+ f(!0), w(!1);
17
+ }, r = () => f(!1), i = () => b(!0), o = () => w(!0), d = () => v(!0), p = () => v(!1), h = () => {
18
+ f(!1), E(!0);
19
+ }, _ = () => m(t.duration), y = () => g(t.currentTime), x = () => {
20
+ A(t.muted), M(t.volume);
21
+ }, C = () => O(t.playbackRate), T = () => S(a(t.buffered));
22
+ return t.addEventListener("playing", n), t.addEventListener("pause", r), t.addEventListener("waiting", i), t.addEventListener("progress", T), t.addEventListener("stalled", o), t.addEventListener("seeking", d), t.addEventListener("seeked", p), t.addEventListener("ended", h), t.addEventListener("loadedmetadata", _), t.addEventListener("timeupdate", y), t.addEventListener("volumechange", x), t.addEventListener("ratechange", C), () => {
23
+ t.removeEventListener("playing", n), t.removeEventListener("pause", r), t.removeEventListener("waiting", i), t.removeEventListener("progress", T), t.removeEventListener("stalled", o), t.removeEventListener("seeking", d), t.removeEventListener("seeked", p), t.removeEventListener("ended", h), t.removeEventListener("loadedmetadata", _), t.removeEventListener("timeupdate", y), t.removeEventListener("volumechange", x), t.removeEventListener("ratechange", C);
24
+ };
25
+ }, [s && e.getRawElement(s), l.state]);
26
+ let N = async () => {
27
+ let e = u.current;
28
+ e && await e.play();
29
+ }, P = () => {
30
+ u.current && u.current.pause();
31
+ };
32
+ return {
33
+ playing: d,
34
+ duration: p,
35
+ currentTime: h,
36
+ seeking: _,
37
+ waiting: y,
38
+ buffered: x,
39
+ stalled: C,
40
+ ended: T,
41
+ playbackRate: D,
42
+ muted: k,
43
+ volume: j,
44
+ play: N,
45
+ pause: P,
46
+ toggle: async (e = !d) => e ? N() : P(),
47
+ seek: (e) => {
48
+ u.current && (u.current.currentTime = Math.min(Math.max(e, 0), p));
49
+ },
50
+ changeVolume: (e) => {
51
+ u.current && (u.current.volume = Math.min(Math.max(e, 0), 1));
52
+ },
53
+ mute: () => {
54
+ u.current && (u.current.muted = !0);
55
+ },
56
+ unmute: () => {
57
+ u.current && (u.current.muted = !1);
58
+ },
59
+ changePlaybackRate: (e) => {
60
+ u.current && (u.current.playbackRate = e);
61
+ },
62
+ ...!s && { ref: l }
63
+ };
64
64
  });
65
- export {
66
- O as timeRangeToArray,
67
- re as useMediaControls
68
- };
69
- //# sourceMappingURL=useMediaControls.mjs.map
65
+ //#endregion
66
+ export { a as timeRangeToArray, o as useMediaControls };
67
+
68
+ //# sourceMappingURL=useMediaControls.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaControls.mjs","sources":["../../../../src/hooks/useMediaControls/useMediaControls.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 const timeRangeToArray = (timeRanges: TimeRanges) => {\n let ranges: [number, number][] = [];\n\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\n return ranges;\n};\n\n/** The media source configuration type */\nexport interface UseMediaSource {\n /** The media attribute of the media */\n media?: string;\n /** The source URL of the media */\n src: string;\n /** The MIME type of the media */\n type?: string;\n}\n\n/** The media controls return type */\nexport interface UseMediaControlsReturn {\n /** Whether the media is currently buffering */\n buffered: [number, number][];\n /** The current playback position in seconds */\n currentTime: number;\n /** The total duration of the media in seconds */\n duration: number;\n /** Whether the media has ended */\n ended: boolean;\n /** Whether the media is currently muted */\n muted: boolean;\n /** The current playback rate (1.0 is normal speed) */\n playbackRate: number;\n /** Whether the media is currently playing */\n playing: boolean;\n /** Whether the media is currently seeking */\n seeking: boolean;\n /** Whether the media is currently stalled */\n stalled: boolean;\n /** The current volume level (0.0 to 1.0) */\n volume: number;\n /** Whether the media is currently waiting */\n waiting: boolean;\n /** Set the playback rate */\n changePlaybackRate: (rate: number) => void;\n /** Set the volume level (0.0 to 1.0) */\n changeVolume: (volume: number) => void;\n /** Set the muted state */\n mute: () => void;\n /** Pause the media */\n pause: () => void;\n /** Start playing the media */\n play: () => Promise<void>;\n /** Seek to a specific time in seconds */\n seek: (time: number) => void;\n /** Toggle between play and pause */\n toggle: () => Promise<void>;\n /** Set the unmuted state */\n unmute: () => void;\n}\n\nexport interface UseMediaControls {\n (target: HookTarget, src: string): UseMediaControlsReturn;\n\n (target: HookTarget, options: UseMediaSource): UseMediaControlsReturn;\n\n <Target extends HTMLMediaElement>(\n src: string\n ): UseMediaControlsReturn & {\n ref: StateRef<Target>;\n };\n\n <Target extends HTMLMediaElement>(\n options: UseMediaSource\n ): UseMediaControlsReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useMediaControls\n * @description Hook that provides controls for HTML media elements (audio/video)\n * @category Browser\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target media element\n * @param {string} src The source URL of the media\n * @returns {UseMediaControlsReturn} An object containing media controls and state\n *\n * @example\n * const { playing, play, pause } = useMediaControls(videoRef, 'video.mp4');\n *\n * @overload\n * @param {HookTarget} target The target media element\n * @param {UseMediaSource} options The media source configuration\n * @returns {UseMediaControlsReturn} An object containing media controls and state\n *\n * @example\n * const { playing, play, pause } = useMediaControls(audioRef, { src: 'audio.mp3', type: 'audio/mp3' });\n *\n * @overload\n * @template Target The target media element type\n * @param {string} src The source URL of the media\n * @returns {UseMediaControlsReturn & { ref: StateRef<Target> }} An object containing media controls, state and ref\n *\n * @example\n * const { ref, playing, play, pause } = useMediaControls<HTMLVideoElement>('video.mp4');\n *\n * @overload\n * @template Target The target media element type\n * @param {UseMediaSource} options The media source configuration\n * @returns {UseMediaControlsReturn & { ref: StateRef<Target> }} An object containing media controls, state and ref\n *\n * @example\n * const { ref, playing, play, pause } = useMediaControls<HTMLVideoElement>({ src: 'video.mp4', type: 'video/mp4' });\n */\nexport const useMediaControls = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { src: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { src: params[0] }\n ) as UseMediaSource;\n\n const internalRef = useRefState<HTMLMediaElement>();\n const elementRef = useRef<HTMLMediaElement | null>(null);\n\n const [playing, setPlaying] = useState(false);\n const [duration, setDuration] = useState(0);\n const [currentTime, setCurrentTime] = useState(0);\n const [seeking, setSeeking] = useState(false);\n const [waiting, setWaiting] = useState(false);\n const [buffered, setBuffered] = useState<[number, number][]>([]);\n const [stalled, setStalled] = useState(false);\n const [ended, setEnded] = useState(false);\n const [playbackRate, setPlaybackRateState] = useState(1);\n\n const [muted, setMutedState] = useState(false);\n const [volume, setVolumeState] = useState(1);\n\n useEffect(() => {\n const element = (\n target ? isTarget.getElement(target) : internalRef.current\n ) as HTMLMediaElement;\n\n if (!element) return;\n\n elementRef.current = element;\n element.src = options.src;\n\n if (options.type) element.setAttribute('type', options.type);\n if (options.media) element.setAttribute('media', options.media);\n\n setDuration(element.duration);\n setCurrentTime(element.currentTime);\n setPlaying(false);\n setEnded(element.ended);\n setMutedState(element.muted);\n setVolumeState(element.volume);\n setPlaybackRateState(element.playbackRate);\n\n const onPlaying = () => {\n setPlaying(true);\n setStalled(false);\n };\n const onPause = () => setPlaying(false);\n const onWaiting = () => setWaiting(true);\n const onStalled = () => setStalled(true);\n const onSeeking = () => setSeeking(true);\n const onSeeked = () => setSeeking(false);\n const onEnded = () => {\n setPlaying(false);\n setEnded(true);\n };\n const onDurationChange = () => setDuration(element.duration);\n const onTimeUpdate = () => setCurrentTime(element.currentTime);\n const onVolumechange = () => {\n setMutedState(element.muted);\n setVolumeState(element.volume);\n };\n const onRatechange = () => setPlaybackRateState(element.playbackRate);\n const onProgress = () => setBuffered(timeRangeToArray(element.buffered));\n\n element.addEventListener('playing', onPlaying);\n element.addEventListener('pause', onPause);\n element.addEventListener('waiting', onWaiting);\n element.addEventListener('progress', onProgress);\n element.addEventListener('stalled', onStalled);\n element.addEventListener('seeking', onSeeking);\n element.addEventListener('seeked', onSeeked);\n element.addEventListener('ended', onEnded);\n element.addEventListener('loadedmetadata', onDurationChange);\n element.addEventListener('timeupdate', onTimeUpdate);\n element.addEventListener('volumechange', onVolumechange);\n element.addEventListener('ratechange', onRatechange);\n\n return () => {\n element.removeEventListener('playing', onPlaying);\n element.removeEventListener('pause', onPause);\n element.removeEventListener('waiting', onWaiting);\n element.removeEventListener('progress', onProgress);\n element.removeEventListener('stalled', onStalled);\n element.removeEventListener('seeking', onSeeking);\n element.removeEventListener('seeked', onSeeked);\n element.removeEventListener('ended', onEnded);\n element.removeEventListener('loadedmetadata', onDurationChange);\n element.removeEventListener('timeupdate', onTimeUpdate);\n element.removeEventListener('volumechange', onVolumechange);\n element.removeEventListener('ratechange', onRatechange);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n const play = async () => {\n const element = elementRef.current;\n if (!element) return;\n\n await element.play();\n };\n\n const pause = () => {\n if (!elementRef.current) return;\n elementRef.current.pause();\n };\n\n const toggle = async (value = !playing) => {\n if (value) return play();\n return pause();\n };\n\n const seek = (time: number) => {\n if (!elementRef.current) return;\n elementRef.current.currentTime = Math.min(Math.max(time, 0), duration);\n };\n\n const changeVolume = (value: number) => {\n if (!elementRef.current) return;\n elementRef.current.volume = Math.min(Math.max(value, 0), 1);\n };\n\n const mute = () => {\n if (!elementRef.current) return;\n elementRef.current.muted = true;\n };\n\n const unmute = () => {\n if (!elementRef.current) return;\n elementRef.current.muted = false;\n };\n\n const changePlaybackRate = (value: number) => {\n if (!elementRef.current) return;\n elementRef.current.playbackRate = value;\n };\n\n return {\n playing,\n duration,\n currentTime,\n seeking,\n waiting,\n buffered,\n stalled,\n ended,\n playbackRate,\n muted,\n volume,\n\n play,\n pause,\n toggle,\n seek,\n changeVolume,\n mute,\n unmute,\n changePlaybackRate,\n\n ...(!target && { ref: internalRef })\n };\n}) as UseMediaControls;\n"],"names":["timeRangeToArray","timeRanges","ranges","i","useMediaControls","params","target","isTarget","options","internalRef","useRefState","elementRef","useRef","playing","setPlaying","useState","duration","setDuration","currentTime","setCurrentTime","seeking","setSeeking","waiting","setWaiting","buffered","setBuffered","stalled","setStalled","ended","setEnded","playbackRate","setPlaybackRateState","muted","setMutedState","volume","setVolumeState","useEffect","element","onPlaying","onPause","onWaiting","onStalled","onSeeking","onSeeked","onEnded","onDurationChange","onTimeUpdate","onVolumechange","onRatechange","onProgress","play","pause","value","time"],"mappings":"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"}
1
+ {"version":3,"file":"useMediaControls.mjs","names":[],"sources":["../../../../src/hooks/useMediaControls/useMediaControls.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 const timeRangeToArray = (timeRanges: TimeRanges) => {\n let ranges: [number, number][] = [];\n\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\n return ranges;\n};\n\n/** The media source configuration type */\nexport interface UseMediaSource {\n /** The media attribute of the media */\n media?: string;\n /** The source URL of the media */\n src: string;\n /** The MIME type of the media */\n type?: string;\n}\n\n/** The media controls return type */\nexport interface UseMediaControlsReturn {\n /** Whether the media is currently buffering */\n buffered: [number, number][];\n /** The current playback position in seconds */\n currentTime: number;\n /** The total duration of the media in seconds */\n duration: number;\n /** Whether the media has ended */\n ended: boolean;\n /** Whether the media is currently muted */\n muted: boolean;\n /** The current playback rate (1.0 is normal speed) */\n playbackRate: number;\n /** Whether the media is currently playing */\n playing: boolean;\n /** Whether the media is currently seeking */\n seeking: boolean;\n /** Whether the media is currently stalled */\n stalled: boolean;\n /** The current volume level (0.0 to 1.0) */\n volume: number;\n /** Whether the media is currently waiting */\n waiting: boolean;\n /** Set the playback rate */\n changePlaybackRate: (rate: number) => void;\n /** Set the volume level (0.0 to 1.0) */\n changeVolume: (volume: number) => void;\n /** Set the muted state */\n mute: () => void;\n /** Pause the media */\n pause: () => void;\n /** Start playing the media */\n play: () => Promise<void>;\n /** Seek to a specific time in seconds */\n seek: (time: number) => void;\n /** Toggle between play and pause */\n toggle: () => Promise<void>;\n /** Set the unmuted state */\n unmute: () => void;\n}\n\nexport interface UseMediaControls {\n (target: HookTarget, src: string): UseMediaControlsReturn;\n\n (target: HookTarget, options: UseMediaSource): UseMediaControlsReturn;\n\n <Target extends HTMLMediaElement>(\n src: string\n ): UseMediaControlsReturn & {\n ref: StateRef<Target>;\n };\n\n <Target extends HTMLMediaElement>(\n options: UseMediaSource\n ): UseMediaControlsReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useMediaControls\n * @description Hook that provides controls for HTML media elements (audio/video)\n * @category Browser\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target media element\n * @param {string} src The source URL of the media\n * @returns {UseMediaControlsReturn} An object containing media controls and state\n *\n * @example\n * const { playing, play, pause } = useMediaControls(videoRef, 'video.mp4');\n *\n * @overload\n * @param {HookTarget} target The target media element\n * @param {UseMediaSource} options The media source configuration\n * @returns {UseMediaControlsReturn} An object containing media controls and state\n *\n * @example\n * const { playing, play, pause } = useMediaControls(audioRef, { src: 'audio.mp3', type: 'audio/mp3' });\n *\n * @overload\n * @template Target The target media element type\n * @param {string} src The source URL of the media\n * @returns {UseMediaControlsReturn & { ref: StateRef<Target> }} An object containing media controls, state and ref\n *\n * @example\n * const { ref, playing, play, pause } = useMediaControls<HTMLVideoElement>('video.mp4');\n *\n * @overload\n * @template Target The target media element type\n * @param {UseMediaSource} options The media source configuration\n * @returns {UseMediaControlsReturn & { ref: StateRef<Target> }} An object containing media controls, state and ref\n *\n * @example\n * const { ref, playing, play, pause } = useMediaControls<HTMLVideoElement>({ src: 'video.mp4', type: 'video/mp4' });\n */\nexport const useMediaControls = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { src: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { src: params[0] }\n ) as UseMediaSource;\n\n const internalRef = useRefState<HTMLMediaElement>();\n const elementRef = useRef<HTMLMediaElement | null>(null);\n\n const [playing, setPlaying] = useState(false);\n const [duration, setDuration] = useState(0);\n const [currentTime, setCurrentTime] = useState(0);\n const [seeking, setSeeking] = useState(false);\n const [waiting, setWaiting] = useState(false);\n const [buffered, setBuffered] = useState<[number, number][]>([]);\n const [stalled, setStalled] = useState(false);\n const [ended, setEnded] = useState(false);\n const [playbackRate, setPlaybackRateState] = useState(1);\n\n const [muted, setMutedState] = useState(false);\n const [volume, setVolumeState] = useState(1);\n\n useEffect(() => {\n const element = (\n target ? isTarget.getElement(target) : internalRef.current\n ) as HTMLMediaElement;\n\n if (!element) return;\n\n elementRef.current = element;\n element.src = options.src;\n\n if (options.type) element.setAttribute('type', options.type);\n if (options.media) element.setAttribute('media', options.media);\n\n setDuration(element.duration);\n setCurrentTime(element.currentTime);\n setPlaying(false);\n setEnded(element.ended);\n setMutedState(element.muted);\n setVolumeState(element.volume);\n setPlaybackRateState(element.playbackRate);\n\n const onPlaying = () => {\n setPlaying(true);\n setStalled(false);\n };\n const onPause = () => setPlaying(false);\n const onWaiting = () => setWaiting(true);\n const onStalled = () => setStalled(true);\n const onSeeking = () => setSeeking(true);\n const onSeeked = () => setSeeking(false);\n const onEnded = () => {\n setPlaying(false);\n setEnded(true);\n };\n const onDurationChange = () => setDuration(element.duration);\n const onTimeUpdate = () => setCurrentTime(element.currentTime);\n const onVolumechange = () => {\n setMutedState(element.muted);\n setVolumeState(element.volume);\n };\n const onRatechange = () => setPlaybackRateState(element.playbackRate);\n const onProgress = () => setBuffered(timeRangeToArray(element.buffered));\n\n element.addEventListener('playing', onPlaying);\n element.addEventListener('pause', onPause);\n element.addEventListener('waiting', onWaiting);\n element.addEventListener('progress', onProgress);\n element.addEventListener('stalled', onStalled);\n element.addEventListener('seeking', onSeeking);\n element.addEventListener('seeked', onSeeked);\n element.addEventListener('ended', onEnded);\n element.addEventListener('loadedmetadata', onDurationChange);\n element.addEventListener('timeupdate', onTimeUpdate);\n element.addEventListener('volumechange', onVolumechange);\n element.addEventListener('ratechange', onRatechange);\n\n return () => {\n element.removeEventListener('playing', onPlaying);\n element.removeEventListener('pause', onPause);\n element.removeEventListener('waiting', onWaiting);\n element.removeEventListener('progress', onProgress);\n element.removeEventListener('stalled', onStalled);\n element.removeEventListener('seeking', onSeeking);\n element.removeEventListener('seeked', onSeeked);\n element.removeEventListener('ended', onEnded);\n element.removeEventListener('loadedmetadata', onDurationChange);\n element.removeEventListener('timeupdate', onTimeUpdate);\n element.removeEventListener('volumechange', onVolumechange);\n element.removeEventListener('ratechange', onRatechange);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n const play = async () => {\n const element = elementRef.current;\n if (!element) return;\n\n await element.play();\n };\n\n const pause = () => {\n if (!elementRef.current) return;\n elementRef.current.pause();\n };\n\n const toggle = async (value = !playing) => {\n if (value) return play();\n return pause();\n };\n\n const seek = (time: number) => {\n if (!elementRef.current) return;\n elementRef.current.currentTime = Math.min(Math.max(time, 0), duration);\n };\n\n const changeVolume = (value: number) => {\n if (!elementRef.current) return;\n elementRef.current.volume = Math.min(Math.max(value, 0), 1);\n };\n\n const mute = () => {\n if (!elementRef.current) return;\n elementRef.current.muted = true;\n };\n\n const unmute = () => {\n if (!elementRef.current) return;\n elementRef.current.muted = false;\n };\n\n const changePlaybackRate = (value: number) => {\n if (!elementRef.current) return;\n elementRef.current.playbackRate = value;\n };\n\n return {\n playing,\n duration,\n currentTime,\n seeking,\n waiting,\n buffered,\n stalled,\n ended,\n playbackRate,\n muted,\n volume,\n\n play,\n pause,\n toggle,\n seek,\n changeVolume,\n mute,\n unmute,\n changePlaybackRate,\n\n ...(!target && { ref: internalRef })\n };\n}) as UseMediaControls;\n"],"mappings":";;;;AAUA,IAAa,KAAoB,MAA2B;CAC1D,IAAI,IAA6B,EAAE;AAEnC,MAAK,IAAI,IAAI,GAAG,IAAI,EAAW,QAAQ,EAAE,EACvC,KAAS,CAAC,GAAG,GAAQ,CAAC,EAAW,MAAM,EAAE,EAAE,EAAW,IAAI,EAAE,CAAC,CAAC;AAEhE,QAAO;GA6GI,MAAqB,GAAG,MAAkB;CACrD,IAAM,IAAU,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAC5C,IACJ,IACI,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,KAAK,EAAO,IAAI,GACpB,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,KAAK,EAAO,IAAI,EAGpB,IAAc,GAA+B,EAC7C,IAAa,EAAgC,KAAK,EAElD,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAU,KAAe,EAAS,EAAE,EACrC,CAAC,GAAa,KAAkB,EAAS,EAAE,EAC3C,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAU,KAAe,EAA6B,EAAE,CAAC,EAC1D,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAO,KAAY,EAAS,GAAM,EACnC,CAAC,GAAc,KAAwB,EAAS,EAAE,EAElD,CAAC,GAAO,KAAiB,EAAS,GAAM,EACxC,CAAC,GAAQ,KAAkB,EAAS,EAAE;AAE5C,SAAgB;EACd,IAAM,IACJ,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY;AAGrD,MAAI,CAAC,EAAS;AAcd,EAZA,EAAW,UAAU,GACrB,EAAQ,MAAM,EAAQ,KAElB,EAAQ,QAAM,EAAQ,aAAa,QAAQ,EAAQ,KAAK,EACxD,EAAQ,SAAO,EAAQ,aAAa,SAAS,EAAQ,MAAM,EAE/D,EAAY,EAAQ,SAAS,EAC7B,EAAe,EAAQ,YAAY,EACnC,EAAW,GAAM,EACjB,EAAS,EAAQ,MAAM,EACvB,EAAc,EAAQ,MAAM,EAC5B,EAAe,EAAQ,OAAO,EAC9B,EAAqB,EAAQ,aAAa;EAE1C,IAAM,UAAkB;AAEtB,GADA,EAAW,GAAK,EAChB,EAAW,GAAM;KAEb,UAAgB,EAAW,GAAM,EACjC,UAAkB,EAAW,GAAK,EAClC,UAAkB,EAAW,GAAK,EAClC,UAAkB,EAAW,GAAK,EAClC,UAAiB,EAAW,GAAM,EAClC,UAAgB;AAEpB,GADA,EAAW,GAAM,EACjB,EAAS,GAAK;KAEV,UAAyB,EAAY,EAAQ,SAAS,EACtD,UAAqB,EAAe,EAAQ,YAAY,EACxD,UAAuB;AAE3B,GADA,EAAc,EAAQ,MAAM,EAC5B,EAAe,EAAQ,OAAO;KAE1B,UAAqB,EAAqB,EAAQ,aAAa,EAC/D,UAAmB,EAAY,EAAiB,EAAQ,SAAS,CAAC;AAexE,SAbA,EAAQ,iBAAiB,WAAW,EAAU,EAC9C,EAAQ,iBAAiB,SAAS,EAAQ,EAC1C,EAAQ,iBAAiB,WAAW,EAAU,EAC9C,EAAQ,iBAAiB,YAAY,EAAW,EAChD,EAAQ,iBAAiB,WAAW,EAAU,EAC9C,EAAQ,iBAAiB,WAAW,EAAU,EAC9C,EAAQ,iBAAiB,UAAU,EAAS,EAC5C,EAAQ,iBAAiB,SAAS,EAAQ,EAC1C,EAAQ,iBAAiB,kBAAkB,EAAiB,EAC5D,EAAQ,iBAAiB,cAAc,EAAa,EACpD,EAAQ,iBAAiB,gBAAgB,EAAe,EACxD,EAAQ,iBAAiB,cAAc,EAAa,QAEvC;AAYX,GAXA,EAAQ,oBAAoB,WAAW,EAAU,EACjD,EAAQ,oBAAoB,SAAS,EAAQ,EAC7C,EAAQ,oBAAoB,WAAW,EAAU,EACjD,EAAQ,oBAAoB,YAAY,EAAW,EACnD,EAAQ,oBAAoB,WAAW,EAAU,EACjD,EAAQ,oBAAoB,WAAW,EAAU,EACjD,EAAQ,oBAAoB,UAAU,EAAS,EAC/C,EAAQ,oBAAoB,SAAS,EAAQ,EAC7C,EAAQ,oBAAoB,kBAAkB,EAAiB,EAC/D,EAAQ,oBAAoB,cAAc,EAAa,EACvD,EAAQ,oBAAoB,gBAAgB,EAAe,EAC3D,EAAQ,oBAAoB,cAAc,EAAa;;IAExD,CAAC,KAAU,EAAS,cAAc,EAAO,EAAE,EAAY,MAAM,CAAC;CAEjE,IAAM,IAAO,YAAY;EACvB,IAAM,IAAU,EAAW;AACtB,OAEL,MAAM,EAAQ,MAAM;IAGhB,UAAc;AACb,IAAW,WAChB,EAAW,QAAQ,OAAO;;AAiC5B,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA,QA7Ca,OAAO,IAAQ,CAAC,MACzB,IAAc,GAAM,GACjB,GAAO;EA4Cd,OAzCY,MAAiB;AACxB,KAAW,YAChB,EAAW,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,GAAM,EAAE,EAAE,EAAS;;EAwCtE,eArCoB,MAAkB;AACjC,KAAW,YAChB,EAAW,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,GAAO,EAAE,EAAE,EAAE;;EAoC3D,YAjCiB;AACZ,KAAW,YAChB,EAAW,QAAQ,QAAQ;;EAgC3B,cA7BmB;AACd,KAAW,YAChB,EAAW,QAAQ,QAAQ;;EA4B3B,qBAzB0B,MAAkB;AACvC,KAAW,YAChB,EAAW,QAAQ,eAAe;;EAyBlC,GAAI,CAAC,KAAU,EAAE,KAAK,GAAa;EACpC"}
@@ -1,17 +1,12 @@
1
- import { useCallback as a, useSyncExternalStore as o } from "react";
2
- const r = () => !1, h = (e) => {
3
- const s = a(
4
- (t) => {
5
- const n = window.matchMedia(e);
6
- return n.addEventListener("change", t), () => {
7
- n.removeEventListener("change", t);
8
- };
9
- },
10
- [e]
11
- );
12
- return o(s, () => window.matchMedia(e).matches, r);
13
- };
14
- export {
15
- h as useMediaQuery
16
- };
17
- //# sourceMappingURL=useMediaQuery.mjs.map
1
+ import { useCallback as e, useSyncExternalStore as t } from "react";
2
+ //#region src/hooks/useMediaQuery/useMediaQuery.ts
3
+ var n = () => !1, r = (r) => t(e((e) => {
4
+ let t = window.matchMedia(r);
5
+ return t.addEventListener("change", e), () => {
6
+ t.removeEventListener("change", e);
7
+ };
8
+ }, [r]), () => window.matchMedia(r).matches, n);
9
+ //#endregion
10
+ export { r as useMediaQuery };
11
+
12
+ //# sourceMappingURL=useMediaQuery.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.mjs","sources":["../../../../src/hooks/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { useCallback, useSyncExternalStore } from 'react';\r\n\r\nconst getServerSnapshot = () => false;\r\n\r\n/**\r\n * @name useMediaQuery\r\n * @description - Hook that manages a media query\r\n * @category Browser\r\n * @usage medium\r\n *\r\n * @browserapi window.matchMedia https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\r\n *\r\n * @param {string} query The media query string\r\n * @returns {boolean} A boolean indicating if the media query matches\r\n *\r\n * @example\r\n * const matches = useMediaQuery('(max-width: 768px)');\r\n */\r\nexport const useMediaQuery = (query: string) => {\r\n const subscribe = useCallback(\r\n (callback: () => void) => {\r\n const matchMedia = window.matchMedia(query);\r\n\r\n matchMedia.addEventListener('change', callback);\r\n return () => {\r\n matchMedia.removeEventListener('change', callback);\r\n };\r\n },\r\n [query]\r\n );\r\n\r\n const getSnapshot = () => window.matchMedia(query).matches;\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\r\n};\r\n"],"names":["getServerSnapshot","useMediaQuery","query","subscribe","useCallback","callback","matchMedia","useSyncExternalStore"],"mappings":";AAEA,MAAMA,IAAoB,MAAM,IAgBnBC,IAAgB,CAACC,MAAkB;AAC9C,QAAMC,IAAYC;AAAA,IAChB,CAACC,MAAyB;AACxB,YAAMC,IAAa,OAAO,WAAWJ,CAAK;AAE1C,aAAAI,EAAW,iBAAiB,UAAUD,CAAQ,GACvC,MAAM;AACX,QAAAC,EAAW,oBAAoB,UAAUD,CAAQ;AAAA,MAAA;AAAA,IACnD;AAAA,IAEF,CAACH,CAAK;AAAA,EAAA;AAKR,SAAOK,EAAqBJ,GAFR,MAAM,OAAO,WAAWD,CAAK,EAAE,SAECF,CAAiB;AACvE;"}
1
+ {"version":3,"file":"useMediaQuery.mjs","names":[],"sources":["../../../../src/hooks/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { useCallback, useSyncExternalStore } from 'react';\r\n\r\nconst getServerSnapshot = () => false;\r\n\r\n/**\r\n * @name useMediaQuery\r\n * @description - Hook that manages a media query\r\n * @category Browser\r\n * @usage medium\r\n *\r\n * @browserapi window.matchMedia https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\r\n *\r\n * @param {string} query The media query string\r\n * @returns {boolean} A boolean indicating if the media query matches\r\n *\r\n * @example\r\n * const matches = useMediaQuery('(max-width: 768px)');\r\n */\r\nexport const useMediaQuery = (query: string) => {\r\n const subscribe = useCallback(\r\n (callback: () => void) => {\r\n const matchMedia = window.matchMedia(query);\r\n\r\n matchMedia.addEventListener('change', callback);\r\n return () => {\r\n matchMedia.removeEventListener('change', callback);\r\n };\r\n },\r\n [query]\r\n );\r\n\r\n const getSnapshot = () => window.matchMedia(query).matches;\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\r\n};\r\n"],"mappings":";;AAEA,IAAM,UAA0B,IAgBnB,KAAiB,MAerB,EAdW,GACf,MAAyB;CACxB,IAAM,IAAa,OAAO,WAAW,EAAM;AAG3C,QADA,EAAW,iBAAiB,UAAU,EAAS,QAClC;AACX,IAAW,oBAAoB,UAAU,EAAS;;GAGtD,CAAC,EAAM,CACR,QAEyB,OAAO,WAAW,EAAM,CAAC,SAEC,EAAkB"}
@@ -1,19 +1,21 @@
1
- import { useState as n, useEffect as m } from "react";
2
- const p = () => {
3
- const e = typeof performance < "u" && "memory" in performance && !!performance.memory, [r, t] = n(
4
- e ? performance.memory : {
5
- jsHeapSizeLimit: 0,
6
- totalJSHeapSize: 0,
7
- usedJSHeapSize: 0
8
- }
9
- );
10
- return m(() => {
11
- if (!e) return;
12
- const o = setInterval(() => t(performance.memory), 1e3);
13
- return () => clearInterval(o);
14
- }, []), { supported: e, value: r };
1
+ import { useEffect as e, useState as t } from "react";
2
+ //#region src/hooks/useMemory/useMemory.ts
3
+ var n = () => {
4
+ let n = typeof performance < "u" && "memory" in performance && !!performance.memory, [r, i] = t(n ? performance.memory : {
5
+ jsHeapSizeLimit: 0,
6
+ totalJSHeapSize: 0,
7
+ usedJSHeapSize: 0
8
+ });
9
+ return e(() => {
10
+ if (!n) return;
11
+ let e = setInterval(() => i(performance.memory), 1e3);
12
+ return () => clearInterval(e);
13
+ }, []), {
14
+ supported: n,
15
+ value: r
16
+ };
15
17
  };
16
- export {
17
- p as useMemory
18
- };
19
- //# sourceMappingURL=useMemory.mjs.map
18
+ //#endregion
19
+ export { n as useMemory };
20
+
21
+ //# sourceMappingURL=useMemory.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMemory.mjs","sources":["../../../../src/hooks/useMemory/useMemory.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ndeclare global {\n interface Performance {\n memory: {\n readonly jsHeapSizeLimit: number;\n readonly totalJSHeapSize: number;\n readonly usedJSHeapSize: number;\n };\n }\n}\n\n/** The use memory return type */\nexport interface UseMemoryReturn {\n /** The memory supported status */\n supported: boolean;\n /** The current memory usage */\n value: Performance['memory'];\n}\n\n/**\n * @name useMemory\n * @description - Hook that gives you current memory usage\n * @category Browser\n * @usage low\n *\n * @browserapi performance.memory https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory\n *\n * @returns {UseMemoryReturn} An object containing the current memory usage\n *\n * @example\n * const { supported, value } = useMemory();\n */\nexport const useMemory = (): UseMemoryReturn => {\n const supported =\n typeof performance !== 'undefined' && 'memory' in performance && !!performance.memory;\n\n const [value, setValue] = useState<Performance['memory']>(\n supported\n ? performance.memory\n : {\n jsHeapSizeLimit: 0,\n totalJSHeapSize: 0,\n usedJSHeapSize: 0\n }\n );\n\n useEffect(() => {\n if (!supported) return;\n const intervalId = setInterval(() => setValue(performance.memory), 1000);\n return () => clearInterval(intervalId);\n }, []);\n\n return { supported, value };\n};\n"],"names":["useMemory","supported","value","setValue","useState","useEffect","intervalId"],"mappings":";AAiCO,MAAMA,IAAY,MAAuB;AAC9C,QAAMC,IACJ,OAAO,cAAgB,OAAe,YAAY,eAAe,CAAC,CAAC,YAAY,QAE3E,CAACC,GAAOC,CAAQ,IAAIC;AAAA,IACxBH,IACI,YAAY,SACZ;AAAA,MACE,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,IAAA;AAAA,EAClB;AAGN,SAAAI,EAAU,MAAM;AACd,QAAI,CAACJ,EAAW;AAChB,UAAMK,IAAa,YAAY,MAAMH,EAAS,YAAY,MAAM,GAAG,GAAI;AACvE,WAAO,MAAM,cAAcG,CAAU;AAAA,EAAA,GACpC,EAAE,GAEE,EAAE,WAAAL,GAAW,OAAAC,EAAA;AACtB;"}
1
+ {"version":3,"file":"useMemory.mjs","names":[],"sources":["../../../../src/hooks/useMemory/useMemory.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\ndeclare global {\n interface Performance {\n memory: {\n readonly jsHeapSizeLimit: number;\n readonly totalJSHeapSize: number;\n readonly usedJSHeapSize: number;\n };\n }\n}\n\n/** The use memory return type */\nexport interface UseMemoryReturn {\n /** The memory supported status */\n supported: boolean;\n /** The current memory usage */\n value: Performance['memory'];\n}\n\n/**\n * @name useMemory\n * @description - Hook that gives you current memory usage\n * @category Browser\n * @usage low\n *\n * @browserapi performance.memory https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory\n *\n * @returns {UseMemoryReturn} An object containing the current memory usage\n *\n * @example\n * const { supported, value } = useMemory();\n */\nexport const useMemory = (): UseMemoryReturn => {\n const supported =\n typeof performance !== 'undefined' && 'memory' in performance && !!performance.memory;\n\n const [value, setValue] = useState<Performance['memory']>(\n supported\n ? performance.memory\n : {\n jsHeapSizeLimit: 0,\n totalJSHeapSize: 0,\n usedJSHeapSize: 0\n }\n );\n\n useEffect(() => {\n if (!supported) return;\n const intervalId = setInterval(() => setValue(performance.memory), 1000);\n return () => clearInterval(intervalId);\n }, []);\n\n return { supported, value };\n};\n"],"mappings":";;AAiCA,IAAa,UAAmC;CAC9C,IAAM,IACJ,OAAO,cAAgB,OAAe,YAAY,eAAe,CAAC,CAAC,YAAY,QAE3E,CAAC,GAAO,KAAY,EACxB,IACI,YAAY,SACZ;EACE,iBAAiB;EACjB,iBAAiB;EACjB,gBAAgB;EACjB,CACN;AAQD,QANA,QAAgB;AACd,MAAI,CAAC,EAAW;EAChB,IAAM,IAAa,kBAAkB,EAAS,YAAY,OAAO,EAAE,IAAK;AACxE,eAAa,cAAc,EAAW;IACrC,EAAE,CAAC,EAEC;EAAE;EAAW;EAAO"}
@@ -1,25 +1,23 @@
1
- import { useCallback as s } from "react";
2
- const o = (n, t) => {
3
- if (typeof n == "function") return n(t);
4
- typeof n == "object" && n !== null && "current" in n && (n.current = t);
5
- }, i = (...n) => {
6
- const t = /* @__PURE__ */ new Map();
7
- return (u) => {
8
- if (n.forEach((c) => {
9
- const e = o(c, u);
10
- e && t.set(c, e);
11
- }), !!t.size)
12
- return () => {
13
- n.forEach((c) => {
14
- const e = t.get(c);
15
- e && typeof e == "function" ? e() : o(c, null);
16
- }), t.clear();
17
- };
18
- };
19
- }, a = (...n) => s(i(...n), n);
20
- export {
21
- o as assignRef,
22
- i as mergeRefs,
23
- a as useMergedRef
24
- };
25
- //# sourceMappingURL=useMergedRef.mjs.map
1
+ import { useCallback as e } from "react";
2
+ //#region src/hooks/useMergedRef/useMergedRef.ts
3
+ var t = (e, t) => {
4
+ if (typeof e == "function") return e(t);
5
+ typeof e == "object" && e && "current" in e && (e.current = t);
6
+ }, n = (...e) => {
7
+ let n = /* @__PURE__ */ new Map();
8
+ return (r) => {
9
+ if (e.forEach((e) => {
10
+ let i = t(e, r);
11
+ i && n.set(e, i);
12
+ }), n.size) return () => {
13
+ e.forEach((e) => {
14
+ let r = n.get(e);
15
+ r && typeof r == "function" ? r() : t(e, null);
16
+ }), n.clear();
17
+ };
18
+ };
19
+ }, r = (...t) => e(n(...t), t);
20
+ //#endregion
21
+ export { t as assignRef, n as mergeRefs, r as useMergedRef };
22
+
23
+ //# sourceMappingURL=useMergedRef.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedRef.mjs","sources":["../../../../src/hooks/useMergedRef/useMergedRef.ts"],"sourcesContent":["import type { Ref, RefCallback } from 'react';\n\nimport { useCallback } from 'react';\n\nexport const assignRef = <Element>(\n ref: Ref<Element>,\n value: Element\n): ReturnType<RefCallback<Element>> => {\n if (typeof ref === 'function') return ref(value);\n if (typeof ref === 'object' && ref !== null && 'current' in ref) ref.current = value;\n};\n\nexport const mergeRefs = <Element>(...refs: Ref<Element>[]): RefCallback<Element> => {\n const cleanupMap = new Map<Ref<Element>, Exclude<ReturnType<RefCallback<Element>>, void>>();\n\n return (node: Element | null) => {\n refs.forEach((ref) => {\n const cleanup = assignRef(ref, node);\n if (cleanup) cleanupMap.set(ref, cleanup);\n });\n\n if (!cleanupMap.size) return;\n\n return () => {\n refs.forEach((ref) => {\n const cleanup = cleanupMap.get(ref);\n if (cleanup && typeof cleanup === 'function') cleanup();\n else assignRef(ref, null);\n });\n cleanupMap.clear();\n };\n };\n};\n\n/**\n * @name useMergedRef\n * @description - Hook that merges multiple refs into a single ref\n * @category State\n * @usage medium\n *\n * @template Element The element type\n * @param {...Ref<Element>[]} refs The refs to merge\n * @returns {RefCallback<Element>} A memoized ref callback that assigns to all provided refs\n *\n * @example\n * const mergedRef = useMergedRef(firstRef, secondRef);\n */\nexport const useMergedRef = <Element>(...refs: Ref<Element>[]) =>\n useCallback(mergeRefs(...refs), refs);\n"],"names":["assignRef","ref","value","mergeRefs","refs","cleanupMap","node","cleanup","useMergedRef","useCallback"],"mappings":";AAIO,MAAMA,IAAY,CACvBC,GACAC,MACqC;AACrC,MAAI,OAAOD,KAAQ,WAAY,QAAOA,EAAIC,CAAK;AAC/C,EAAI,OAAOD,KAAQ,YAAYA,MAAQ,QAAQ,aAAaA,QAAS,UAAUC;AACjF,GAEaC,IAAY,IAAaC,MAA+C;AACnF,QAAMC,wBAAiB,IAAA;AAEvB,SAAO,CAACC,MAAyB;AAM/B,QALAF,EAAK,QAAQ,CAACH,MAAQ;AACpB,YAAMM,IAAUP,EAAUC,GAAKK,CAAI;AACnC,MAAIC,KAASF,EAAW,IAAIJ,GAAKM,CAAO;AAAA,IAAA,CACzC,GAEG,EAACF,EAAW;AAEhB,aAAO,MAAM;AACX,QAAAD,EAAK,QAAQ,CAACH,MAAQ;AACpB,gBAAMM,IAAUF,EAAW,IAAIJ,CAAG;AAClC,UAAIM,KAAW,OAAOA,KAAY,aAAYA,EAAA,IACzCP,EAAUC,GAAK,IAAI;AAAA,QAAA,CACzB,GACDI,EAAW,MAAA;AAAA,MAAM;AAAA,EACnB;AAEJ,GAeaG,IAAe,IAAaJ,MACvCK,EAAYN,EAAU,GAAGC,CAAI,GAAGA,CAAI;"}
1
+ {"version":3,"file":"useMergedRef.mjs","names":[],"sources":["../../../../src/hooks/useMergedRef/useMergedRef.ts"],"sourcesContent":["import type { Ref, RefCallback } from 'react';\n\nimport { useCallback } from 'react';\n\nexport const assignRef = <Element>(\n ref: Ref<Element>,\n value: Element\n): ReturnType<RefCallback<Element>> => {\n if (typeof ref === 'function') return ref(value);\n if (typeof ref === 'object' && ref !== null && 'current' in ref) ref.current = value;\n};\n\nexport const mergeRefs = <Element>(...refs: Ref<Element>[]): RefCallback<Element> => {\n const cleanupMap = new Map<Ref<Element>, Exclude<ReturnType<RefCallback<Element>>, void>>();\n\n return (node: Element | null) => {\n refs.forEach((ref) => {\n const cleanup = assignRef(ref, node);\n if (cleanup) cleanupMap.set(ref, cleanup);\n });\n\n if (!cleanupMap.size) return;\n\n return () => {\n refs.forEach((ref) => {\n const cleanup = cleanupMap.get(ref);\n if (cleanup && typeof cleanup === 'function') cleanup();\n else assignRef(ref, null);\n });\n cleanupMap.clear();\n };\n };\n};\n\n/**\n * @name useMergedRef\n * @description - Hook that merges multiple refs into a single ref\n * @category State\n * @usage medium\n *\n * @template Element The element type\n * @param {...Ref<Element>[]} refs The refs to merge\n * @returns {RefCallback<Element>} A memoized ref callback that assigns to all provided refs\n *\n * @example\n * const mergedRef = useMergedRef(firstRef, secondRef);\n */\nexport const useMergedRef = <Element>(...refs: Ref<Element>[]) =>\n useCallback(mergeRefs(...refs), refs);\n"],"mappings":";;AAIA,IAAa,KACX,GACA,MACqC;AACrC,KAAI,OAAO,KAAQ,WAAY,QAAO,EAAI,EAAM;AAChD,CAAI,OAAO,KAAQ,YAAY,KAAgB,aAAa,MAAK,EAAI,UAAU;GAGpE,KAAsB,GAAG,MAA+C;CACnF,IAAM,oBAAa,IAAI,KAAoE;AAE3F,SAAQ,MAAyB;AAC/B,QAAK,SAAS,MAAQ;GACpB,IAAM,IAAU,EAAU,GAAK,EAAK;AACpC,GAAI,KAAS,EAAW,IAAI,GAAK,EAAQ;IACzC,EAEG,EAAW,KAEhB,cAAa;AAMX,GALA,EAAK,SAAS,MAAQ;IACpB,IAAM,IAAU,EAAW,IAAI,EAAI;AACnC,IAAI,KAAW,OAAO,KAAY,aAAY,GAAS,GAClD,EAAU,GAAK,KAAK;KACzB,EACF,EAAW,OAAO;;;GAkBX,KAAyB,GAAG,MACvC,EAAY,EAAU,GAAG,EAAK,EAAE,EAAK"}
@@ -1,6 +1,7 @@
1
- import { useEffect as t } from "react";
2
- const f = (o) => t(o, []);
3
- export {
4
- f as useMount
5
- };
6
- //# sourceMappingURL=useMount.mjs.map
1
+ import { useEffect as e } from "react";
2
+ //#region src/hooks/useMount/useMount.ts
3
+ var t = (t) => e(t, []);
4
+ //#endregion
5
+ export { t as useMount };
6
+
7
+ //# sourceMappingURL=useMount.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMount.mjs","sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect } from 'react';\n\n/**\n * @name useMount\n * @description - Hook that executes a callback when the component mounts\n * @category Lifecycle\n * @usage necessary\n *\n * @param {EffectCallback} effect The callback to execute\n *\n * @example\n * useMount(() => console.log('This effect runs on the initial render'));\n */\nexport const useMount = (effect: EffectCallback) => useEffect(effect, []);\n"],"names":["useMount","effect","useEffect"],"mappings":";AAeO,MAAMA,IAAW,CAACC,MAA2BC,EAAUD,GAAQ,CAAA,CAAE;"}
1
+ {"version":3,"file":"useMount.mjs","names":[],"sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect } from 'react';\n\n/**\n * @name useMount\n * @description - Hook that executes a callback when the component mounts\n * @category Lifecycle\n * @usage necessary\n *\n * @param {EffectCallback} effect The callback to execute\n *\n * @example\n * useMount(() => console.log('This effect runs on the initial render'));\n */\nexport const useMount = (effect: EffectCallback) => useEffect(effect, []);\n"],"mappings":";;AAeA,IAAa,KAAY,MAA2B,EAAU,GAAQ,EAAE,CAAC"}
@@ -1,59 +1,62 @@
1
- import { useRef as u, useEffect as x } from "react";
2
- import { useRefState as y } from "../useRefState/useRefState.mjs";
3
- import { useRerender as L } from "../useRerender/useRerender.mjs";
4
- import { isTarget as m } from "../../utils/helpers/isTarget.mjs";
5
- const C = ((...s) => {
6
- const n = m(s[0]) ? s[0] : void 0, a = n ? s[1] : s[0], t = u({
7
- x: 0,
8
- y: 0,
9
- elementX: 0,
10
- elementY: 0,
11
- elementPositionX: 0,
12
- elementPositionY: 0,
13
- clientX: 0,
14
- clientY: 0
15
- }), d = u(a);
16
- d.current = a;
17
- const X = u(!1), g = L(), i = y(), Y = (o, c) => {
18
- t.current = o, d.current?.(o, c), X.current && g();
19
- }, f = () => (X.current = !0, t.current);
20
- return x(() => {
21
- const o = (e) => {
22
- const l = n ? m.getElement(n) : i.current, r = {
23
- x: e.pageX,
24
- y: e.pageY,
25
- clientX: e.clientX,
26
- clientY: e.clientY,
27
- elementX: e.pageX,
28
- elementY: e.pageY,
29
- elementPositionX: 0,
30
- elementPositionY: 0
31
- };
32
- if (l) {
33
- const { left: P, top: R } = l.getBoundingClientRect(), p = P + window.scrollX, w = R + window.scrollY, E = e.pageX - p, h = e.pageY - w;
34
- r.elementX = E, r.elementY = h, r.elementPositionX = p, r.elementPositionY = w;
35
- }
36
- Y(r, e);
37
- }, c = (e) => {
38
- const l = {
39
- ...t.current,
40
- x: t.current.x + window.scrollX - t.current.elementPositionX,
41
- y: t.current.y + window.scrollY - t.current.elementPositionY,
42
- elementPositionX: window.scrollX,
43
- elementPositionY: window.scrollY
44
- };
45
- Y(l, e);
46
- };
47
- return document.addEventListener("scroll", c, { passive: !0 }), document.addEventListener("mousemove", o), () => {
48
- document.removeEventListener("scroll", c), document.removeEventListener("mousemove", o);
49
- };
50
- }, [i.state, n && m.getRawElement(n)]), n ? { snapshot: t.current, watch: f } : {
51
- ref: i,
52
- snapshot: t.current,
53
- watch: f
54
- };
1
+ import { isTarget as e } from "../../utils/helpers/isTarget.mjs";
2
+ import { useRefState as t } from "../useRefState/useRefState.mjs";
3
+ import { useRerender as n } from "../useRerender/useRerender.mjs";
4
+ import { useEffect as r, useRef as i } from "react";
5
+ //#region src/hooks/useMouse/useMouse.ts
6
+ var a = ((...a) => {
7
+ let o = e(a[0]) ? a[0] : void 0, s = o ? a[1] : a[0], c = i({
8
+ x: 0,
9
+ y: 0,
10
+ elementX: 0,
11
+ elementY: 0,
12
+ elementPositionX: 0,
13
+ elementPositionY: 0,
14
+ clientX: 0,
15
+ clientY: 0
16
+ }), l = i(s);
17
+ l.current = s;
18
+ let u = i(!1), d = n(), f = t(), p = (e, t) => {
19
+ c.current = e, l.current?.(e, t), u.current && d();
20
+ }, m = () => (u.current = !0, c.current);
21
+ return r(() => {
22
+ let t = (t) => {
23
+ let n = o ? e.getElement(o) : f.current, r = {
24
+ x: t.pageX,
25
+ y: t.pageY,
26
+ clientX: t.clientX,
27
+ clientY: t.clientY,
28
+ elementX: t.pageX,
29
+ elementY: t.pageY,
30
+ elementPositionX: 0,
31
+ elementPositionY: 0
32
+ };
33
+ if (n) {
34
+ let { left: e, top: i } = n.getBoundingClientRect(), a = e + window.scrollX, o = i + window.scrollY, s = t.pageX - a, c = t.pageY - o;
35
+ r.elementX = s, r.elementY = c, r.elementPositionX = a, r.elementPositionY = o;
36
+ }
37
+ p(r, t);
38
+ }, n = (e) => {
39
+ p({
40
+ ...c.current,
41
+ x: c.current.x + window.scrollX - c.current.elementPositionX,
42
+ y: c.current.y + window.scrollY - c.current.elementPositionY,
43
+ elementPositionX: window.scrollX,
44
+ elementPositionY: window.scrollY
45
+ }, e);
46
+ };
47
+ return document.addEventListener("scroll", n, { passive: !0 }), document.addEventListener("mousemove", t), () => {
48
+ document.removeEventListener("scroll", n), document.removeEventListener("mousemove", t);
49
+ };
50
+ }, [f.state, o && e.getRawElement(o)]), o ? {
51
+ snapshot: c.current,
52
+ watch: m
53
+ } : {
54
+ ref: f,
55
+ snapshot: c.current,
56
+ watch: m
57
+ };
55
58
  });
56
- export {
57
- C as useMouse
58
- };
59
- //# sourceMappingURL=useMouse.mjs.map
59
+ //#endregion
60
+ export { a as useMouse };
61
+
62
+ //# sourceMappingURL=useMouse.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMouse.mjs","sources":["../../../../src/hooks/useMouse/useMouse.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';\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use mouse return type */\nexport interface UseMouseReturn {\n /** The latest mouse value snapshot */\n snapshot: UseMouseValue;\n /** Function to enable subscriptions and rerender on next updates */\n watch: () => UseMouseValue;\n}\n\n/** The use mouse value type */\nexport interface UseMouseValue {\n /** The current mouse client x position */\n clientX: number;\n /** The current mouse client y position */\n clientY: number;\n /** The current element position x */\n elementPositionX: number;\n /** The current element position y */\n elementPositionY: number;\n /** The current element x position */\n elementX: number;\n /** The current element y position */\n elementY: number;\n /** The current mouse x position */\n x: number;\n /** The current mouse y position */\n y: number;\n}\n\nexport type UseMouseCallback = (value: UseMouseValue, event: Event) => void;\n\nexport interface UseMouse {\n (target: HookTarget, callback?: UseMouseCallback): UseMouseReturn;\n\n <Target extends Element>(\n callback?: UseMouseCallback,\n target?: never\n ): UseMouseReturn & {\n ref: StateRef<Target>;\n };\n\n (target?: Window, callback?: UseMouseCallback): UseMouseReturn;\n}\n\n/**\n * @name useMouse\n * @description - Hook that manages a mouse position\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget} [target=window] The target element to manage the mouse position for\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn} An object with mouse value controls\n *\n * @example\n * const mouse = useMouse(ref);\n *\n * @overload\n * @template Target The target element\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn & { ref: StateRef<Target> }} An object with mouse value controls and a ref\n *\n * @example\n * const mouse = useMouse<HTMLDivElement>();\n */\nexport const useMouse = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const callback = (target ? params[1] : params[0]) as UseMouseCallback | undefined;\n\n const snapshotRef = useRef<UseMouseValue>({\n x: 0,\n y: 0,\n elementX: 0,\n elementY: 0,\n elementPositionX: 0,\n elementPositionY: 0,\n clientX: 0,\n clientY: 0\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const internalRef = useRefState<Element>();\n\n const updateValue = (nextValue: UseMouseValue, event: Event) => {\n snapshotRef.current = nextValue;\n internalCallbackRef.current?.(nextValue, event);\n if (watchingRef.current) rerender();\n };\n\n const watch = () => {\n watchingRef.current = true;\n return snapshotRef.current;\n };\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as\n | Element\n | undefined;\n\n const updatedValue: UseMouseValue = {\n x: event.pageX,\n y: event.pageY,\n clientX: event.clientX,\n clientY: event.clientY,\n elementX: event.pageX,\n elementY: event.pageY,\n elementPositionX: 0,\n elementPositionY: 0\n };\n\n if (element) {\n const { left, top } = element.getBoundingClientRect();\n const elementPositionX = left + window.scrollX;\n const elementPositionY = top + window.scrollY;\n const elementX = event.pageX - elementPositionX;\n const elementY = event.pageY - elementPositionY;\n\n updatedValue.elementX = elementX;\n updatedValue.elementY = elementY;\n updatedValue.elementPositionX = elementPositionX;\n updatedValue.elementPositionY = elementPositionY;\n }\n\n updateValue(updatedValue, event);\n };\n\n const onScroll = (event: Event) => {\n const updatedValue: UseMouseValue = {\n ...snapshotRef.current,\n x: snapshotRef.current.x + window.scrollX - snapshotRef.current.elementPositionX,\n y: snapshotRef.current.y + window.scrollY - snapshotRef.current.elementPositionY,\n elementPositionX: window.scrollX,\n elementPositionY: window.scrollY\n };\n updateValue(updatedValue, event);\n };\n\n document.addEventListener('scroll', onScroll, { passive: true });\n document.addEventListener('mousemove', onMouseMove);\n return () => {\n document.removeEventListener('scroll', onScroll);\n document.removeEventListener('mousemove', onMouseMove);\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { snapshot: snapshotRef.current, watch };\n return {\n ref: internalRef,\n snapshot: snapshotRef.current,\n watch\n };\n}) as UseMouse;\n"],"names":["useMouse","params","target","isTarget","callback","snapshotRef","useRef","internalCallbackRef","watchingRef","rerender","useRerender","internalRef","useRefState","updateValue","nextValue","event","watch","useEffect","onMouseMove","element","updatedValue","left","top","elementPositionX","elementPositionY","elementX","elementY","onScroll"],"mappings":";;;;AA4EO,MAAMA,KAAY,IAAIC,MAAkB;AAC7C,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAYF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAEzCI,IAAcC,EAAsB;AAAA,IACxC,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV,GACKC,IAAsBD,EAAOF,CAAQ;AAC3C,EAAAG,EAAoB,UAAUH;AAC9B,QAAMI,IAAcF,EAAO,EAAK,GAC1BG,IAAWC,EAAA,GAEXC,IAAcC,EAAA,GAEdC,IAAc,CAACC,GAA0BC,MAAiB;AAC9D,IAAAV,EAAY,UAAUS,GACtBP,EAAoB,UAAUO,GAAWC,CAAK,GAC1CP,EAAY,WAASC,EAAA;AAAA,EAAS,GAG9BO,IAAQ,OACZR,EAAY,UAAU,IACfH,EAAY;AAuDrB,SApDAY,EAAU,MAAM;AACd,UAAMC,IAAc,CAACH,MAAsB;AACzC,YAAMI,IAAWjB,IAASC,EAAS,WAAWD,CAAM,IAAIS,EAAY,SAI9DS,IAA8B;AAAA,QAClC,GAAGL,EAAM;AAAA,QACT,GAAGA,EAAM;AAAA,QACT,SAASA,EAAM;AAAA,QACf,SAASA,EAAM;AAAA,QACf,UAAUA,EAAM;AAAA,QAChB,UAAUA,EAAM;AAAA,QAChB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,MAAA;AAGpB,UAAII,GAAS;AACX,cAAM,EAAE,MAAAE,GAAM,KAAAC,MAAQH,EAAQ,sBAAA,GACxBI,IAAmBF,IAAO,OAAO,SACjCG,IAAmBF,IAAM,OAAO,SAChCG,IAAWV,EAAM,QAAQQ,GACzBG,IAAWX,EAAM,QAAQS;AAE/B,QAAAJ,EAAa,WAAWK,GACxBL,EAAa,WAAWM,GACxBN,EAAa,mBAAmBG,GAChCH,EAAa,mBAAmBI;AAAA,MAAA;AAGlC,MAAAX,EAAYO,GAAcL,CAAK;AAAA,IAAA,GAG3BY,IAAW,CAACZ,MAAiB;AACjC,YAAMK,IAA8B;AAAA,QAClC,GAAGf,EAAY;AAAA,QACf,GAAGA,EAAY,QAAQ,IAAI,OAAO,UAAUA,EAAY,QAAQ;AAAA,QAChE,GAAGA,EAAY,QAAQ,IAAI,OAAO,UAAUA,EAAY,QAAQ;AAAA,QAChE,kBAAkB,OAAO;AAAA,QACzB,kBAAkB,OAAO;AAAA,MAAA;AAE3B,MAAAQ,EAAYO,GAAcL,CAAK;AAAA,IAAA;AAGjC,oBAAS,iBAAiB,UAAUY,GAAU,EAAE,SAAS,IAAM,GAC/D,SAAS,iBAAiB,aAAaT,CAAW,GAC3C,MAAM;AACX,eAAS,oBAAoB,UAAUS,CAAQ,GAC/C,SAAS,oBAAoB,aAAaT,CAAW;AAAA,IAAA;AAAA,EACvD,GACC,CAACP,EAAY,OAAOT,KAAUC,EAAS,cAAcD,CAAM,CAAC,CAAC,GAE5DA,IAAe,EAAE,UAAUG,EAAY,SAAS,OAAAW,EAAA,IAC7C;AAAA,IACL,KAAKL;AAAA,IACL,UAAUN,EAAY;AAAA,IACtB,OAAAW;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useMouse.mjs","names":[],"sources":["../../../../src/hooks/useMouse/useMouse.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';\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use mouse return type */\nexport interface UseMouseReturn {\n /** The latest mouse value snapshot */\n snapshot: UseMouseValue;\n /** Function to enable subscriptions and rerender on next updates */\n watch: () => UseMouseValue;\n}\n\n/** The use mouse value type */\nexport interface UseMouseValue {\n /** The current mouse client x position */\n clientX: number;\n /** The current mouse client y position */\n clientY: number;\n /** The current element position x */\n elementPositionX: number;\n /** The current element position y */\n elementPositionY: number;\n /** The current element x position */\n elementX: number;\n /** The current element y position */\n elementY: number;\n /** The current mouse x position */\n x: number;\n /** The current mouse y position */\n y: number;\n}\n\nexport type UseMouseCallback = (value: UseMouseValue, event: Event) => void;\n\nexport interface UseMouse {\n (target: HookTarget, callback?: UseMouseCallback): UseMouseReturn;\n\n <Target extends Element>(\n callback?: UseMouseCallback,\n target?: never\n ): UseMouseReturn & {\n ref: StateRef<Target>;\n };\n\n (target?: Window, callback?: UseMouseCallback): UseMouseReturn;\n}\n\n/**\n * @name useMouse\n * @description - Hook that manages a mouse position\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget} [target=window] The target element to manage the mouse position for\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn} An object with mouse value controls\n *\n * @example\n * const mouse = useMouse(ref);\n *\n * @overload\n * @template Target The target element\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn & { ref: StateRef<Target> }} An object with mouse value controls and a ref\n *\n * @example\n * const mouse = useMouse<HTMLDivElement>();\n */\nexport const useMouse = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const callback = (target ? params[1] : params[0]) as UseMouseCallback | undefined;\n\n const snapshotRef = useRef<UseMouseValue>({\n x: 0,\n y: 0,\n elementX: 0,\n elementY: 0,\n elementPositionX: 0,\n elementPositionY: 0,\n clientX: 0,\n clientY: 0\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const internalRef = useRefState<Element>();\n\n const updateValue = (nextValue: UseMouseValue, event: Event) => {\n snapshotRef.current = nextValue;\n internalCallbackRef.current?.(nextValue, event);\n if (watchingRef.current) rerender();\n };\n\n const watch = () => {\n watchingRef.current = true;\n return snapshotRef.current;\n };\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as\n | Element\n | undefined;\n\n const updatedValue: UseMouseValue = {\n x: event.pageX,\n y: event.pageY,\n clientX: event.clientX,\n clientY: event.clientY,\n elementX: event.pageX,\n elementY: event.pageY,\n elementPositionX: 0,\n elementPositionY: 0\n };\n\n if (element) {\n const { left, top } = element.getBoundingClientRect();\n const elementPositionX = left + window.scrollX;\n const elementPositionY = top + window.scrollY;\n const elementX = event.pageX - elementPositionX;\n const elementY = event.pageY - elementPositionY;\n\n updatedValue.elementX = elementX;\n updatedValue.elementY = elementY;\n updatedValue.elementPositionX = elementPositionX;\n updatedValue.elementPositionY = elementPositionY;\n }\n\n updateValue(updatedValue, event);\n };\n\n const onScroll = (event: Event) => {\n const updatedValue: UseMouseValue = {\n ...snapshotRef.current,\n x: snapshotRef.current.x + window.scrollX - snapshotRef.current.elementPositionX,\n y: snapshotRef.current.y + window.scrollY - snapshotRef.current.elementPositionY,\n elementPositionX: window.scrollX,\n elementPositionY: window.scrollY\n };\n updateValue(updatedValue, event);\n };\n\n document.addEventListener('scroll', onScroll, { passive: true });\n document.addEventListener('mousemove', onMouseMove);\n return () => {\n document.removeEventListener('scroll', onScroll);\n document.removeEventListener('mousemove', onMouseMove);\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { snapshot: snapshotRef.current, watch };\n return {\n ref: internalRef,\n snapshot: snapshotRef.current,\n watch\n };\n}) as UseMouse;\n"],"mappings":";;;;;AA4EA,IAAa,MAAa,GAAG,MAAkB;CAC7C,IAAM,IAAS,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAC3C,IAAY,IAAS,EAAO,KAAK,EAAO,IAExC,IAAc,EAAsB;EACxC,GAAG;EACH,GAAG;EACH,UAAU;EACV,UAAU;EACV,kBAAkB;EAClB,kBAAkB;EAClB,SAAS;EACT,SAAS;EACV,CAAC,EACI,IAAsB,EAAO,EAAS;AAC5C,GAAoB,UAAU;CAC9B,IAAM,IAAc,EAAO,GAAM,EAC3B,IAAW,GAAa,EAExB,IAAc,GAAsB,EAEpC,KAAe,GAA0B,MAAiB;AAG9D,EAFA,EAAY,UAAU,GACtB,EAAoB,UAAU,GAAW,EAAM,EAC3C,EAAY,WAAS,GAAU;IAG/B,WACJ,EAAY,UAAU,IACf,EAAY;AAwDrB,QArDA,QAAgB;EACd,IAAM,KAAe,MAAsB;GACzC,IAAM,IAAW,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY,SAI9D,IAA8B;IAClC,GAAG,EAAM;IACT,GAAG,EAAM;IACT,SAAS,EAAM;IACf,SAAS,EAAM;IACf,UAAU,EAAM;IAChB,UAAU,EAAM;IAChB,kBAAkB;IAClB,kBAAkB;IACnB;AAED,OAAI,GAAS;IACX,IAAM,EAAE,SAAM,WAAQ,EAAQ,uBAAuB,EAC/C,IAAmB,IAAO,OAAO,SACjC,IAAmB,IAAM,OAAO,SAChC,IAAW,EAAM,QAAQ,GACzB,IAAW,EAAM,QAAQ;AAK/B,IAHA,EAAa,WAAW,GACxB,EAAa,WAAW,GACxB,EAAa,mBAAmB,GAChC,EAAa,mBAAmB;;AAGlC,KAAY,GAAc,EAAM;KAG5B,KAAY,MAAiB;AAQjC,KAPoC;IAClC,GAAG,EAAY;IACf,GAAG,EAAY,QAAQ,IAAI,OAAO,UAAU,EAAY,QAAQ;IAChE,GAAG,EAAY,QAAQ,IAAI,OAAO,UAAU,EAAY,QAAQ;IAChE,kBAAkB,OAAO;IACzB,kBAAkB,OAAO;IAC1B,EACyB,EAAM;;AAKlC,SAFA,SAAS,iBAAiB,UAAU,GAAU,EAAE,SAAS,IAAM,CAAC,EAChE,SAAS,iBAAiB,aAAa,EAAY,QACtC;AAEX,GADA,SAAS,oBAAoB,UAAU,EAAS,EAChD,SAAS,oBAAoB,aAAa,EAAY;;IAEvD,CAAC,EAAY,OAAO,KAAU,EAAS,cAAc,EAAO,CAAC,CAAC,EAE7D,IAAe;EAAE,UAAU,EAAY;EAAS;EAAO,GACpD;EACL,KAAK;EACL,UAAU,EAAY;EACtB;EACD"}