@siberiacancode/reactuse 0.3.15 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
  3. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  4. package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
  5. package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
  6. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
  7. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
  8. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
  9. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  10. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
  11. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
  12. package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
  13. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  14. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
  15. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
  16. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
  17. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  18. package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
  19. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  20. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
  21. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
  22. package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
  23. package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
  24. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
  25. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
  26. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
  27. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
  29. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  30. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
  31. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  32. package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
  33. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  34. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
  35. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  36. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
  37. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
  38. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
  39. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  40. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
  41. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  42. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
  43. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  44. package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
  45. package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
  46. package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
  47. package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
  48. package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
  49. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  50. package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
  51. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  52. package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
  53. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  54. package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
  55. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  56. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
  57. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  58. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
  59. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  60. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
  61. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
  62. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
  63. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
  64. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
  65. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  66. package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
  67. package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
  68. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
  69. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  70. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
  71. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  72. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
  73. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  74. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
  75. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  76. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
  77. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  78. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
  79. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  80. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
  81. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  82. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
  83. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  84. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
  85. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  86. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
  87. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  88. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
  89. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  90. package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
  91. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  92. package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
  93. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  94. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
  95. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  96. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
  97. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  98. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
  99. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  100. package/dist/cjs/hooks/useField/useField.cjs +2 -2
  101. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  102. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
  103. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  104. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
  105. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
  106. package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
  107. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  108. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
  109. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
  110. package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
  111. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  112. package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
  113. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  114. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
  115. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  116. package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
  117. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  118. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
  119. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  120. package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
  121. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  122. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
  123. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  124. package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
  125. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  126. package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
  127. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  128. package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
  129. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  130. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
  131. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  132. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
  133. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  134. package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
  135. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  136. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
  137. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  138. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
  139. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
  140. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
  141. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  142. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
  143. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  144. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
  145. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  146. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
  147. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  148. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
  149. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  150. package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
  151. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  152. package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
  153. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  154. package/dist/cjs/hooks/useList/useList.cjs +2 -2
  155. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  156. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
  157. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  158. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
  159. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  160. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
  161. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
  162. package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
  163. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  164. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
  165. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  166. package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
  167. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  168. package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
  169. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  170. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
  171. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
  172. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
  173. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  174. package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
  175. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  176. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
  177. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
  178. package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
  179. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  180. package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
  181. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  182. package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
  183. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  184. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
  185. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  186. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
  187. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  188. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
  189. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
  190. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
  191. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  192. package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
  193. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  194. package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
  195. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  196. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
  197. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  198. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
  199. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  200. package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
  201. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  202. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
  203. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  204. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
  205. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  206. package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
  207. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  208. package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
  209. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  210. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
  211. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  212. package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
  213. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  214. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
  215. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
  216. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
  217. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  218. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
  219. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  220. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
  221. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  222. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
  223. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  224. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
  225. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
  226. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
  227. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  228. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
  229. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  230. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
  231. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  232. package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
  233. package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
  234. package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
  235. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  236. package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
  237. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  238. package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
  239. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  240. package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
  241. package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
  242. package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
  243. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  244. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
  245. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  246. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
  247. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  248. package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
  249. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  250. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
  251. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  252. package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
  253. package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
  254. package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
  255. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  256. package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
  257. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  258. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
  259. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  260. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
  261. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  262. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
  263. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
  264. package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
  265. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  266. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
  267. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
  268. package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
  269. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  270. package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
  271. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
  272. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
  273. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  274. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
  275. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  276. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
  277. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  278. package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
  279. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  280. package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
  281. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  282. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
  283. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  284. package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
  285. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  286. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
  287. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  288. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
  289. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  290. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
  291. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
  292. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
  293. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  294. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
  295. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
  296. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
  297. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
  298. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
  299. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  300. package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
  301. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  302. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
  303. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  304. package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
  305. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  306. package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
  307. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  308. package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
  309. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  310. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
  311. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  312. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
  313. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  314. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
  315. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  316. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
  317. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
  318. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
  319. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  320. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
  321. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  322. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
  323. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  324. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
  325. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  326. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
  327. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  328. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
  329. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  330. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
  331. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  332. package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
  333. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  334. package/dist/cjs/index.cjs +1 -2
  335. package/dist/cjs/utils/helpers/copy.cjs +2 -2
  336. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  337. package/dist/cjs/utils/helpers/debounce.cjs +2 -2
  338. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  339. package/dist/cjs/utils/helpers/getDate.cjs +2 -2
  340. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  341. package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
  342. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  343. package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
  344. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  345. package/dist/cjs/utils/helpers/throttle.cjs +2 -2
  346. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  347. package/dist/esm/helpers/createContext/createContext.mjs +32 -33
  348. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  349. package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
  350. package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
  351. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
  352. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
  353. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
  354. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  355. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
  356. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
  357. package/dist/esm/helpers/createStore/createStore.mjs +25 -29
  358. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  359. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
  360. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
  361. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
  362. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  363. package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
  364. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  365. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
  366. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
  367. package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
  368. package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
  369. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
  370. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
  371. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
  372. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
  373. package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
  374. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  375. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
  376. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  377. package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
  378. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  379. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
  380. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  381. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
  382. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
  383. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
  384. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  385. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
  386. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  387. package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
  388. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  389. package/dist/esm/hooks/useConst/useConst.mjs +7 -6
  390. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  391. package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
  392. package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
  393. package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
  394. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  395. package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
  396. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  397. package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
  398. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  399. package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
  400. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  401. package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
  402. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  403. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
  404. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  405. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
  406. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
  407. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
  408. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
  409. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
  410. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  411. package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
  412. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  413. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
  414. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  415. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
  416. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  417. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
  418. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  419. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
  420. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  421. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
  422. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  423. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
  424. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  425. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
  426. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  427. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
  428. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  429. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
  430. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  431. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
  432. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  433. package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
  434. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  435. package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
  436. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  437. package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
  438. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  439. package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
  440. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  441. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
  442. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  443. package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
  444. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  445. package/dist/esm/hooks/useField/useField.mjs +61 -67
  446. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  447. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
  448. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  449. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
  450. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
  451. package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
  452. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  453. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
  454. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
  455. package/dist/esm/hooks/useFps/useFps.mjs +18 -22
  456. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  457. package/dist/esm/hooks/useFul/useFul.mjs +8 -7
  458. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  459. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
  460. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  461. package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
  462. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  463. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
  464. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  465. package/dist/esm/hooks/useHash/useHash.mjs +24 -26
  466. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  467. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
  468. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  469. package/dist/esm/hooks/useHover/useHover.mjs +30 -25
  470. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  471. package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
  472. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  473. package/dist/esm/hooks/useImage/useImage.mjs +24 -26
  474. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  475. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
  476. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  477. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
  478. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  479. package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
  480. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  481. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
  482. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  483. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
  484. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
  485. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
  486. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  487. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
  488. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  489. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
  490. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  491. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
  492. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  493. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
  494. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  495. package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
  496. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  497. package/dist/esm/hooks/useLess/useLess.mjs +9 -8
  498. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  499. package/dist/esm/hooks/useList/useList.mjs +22 -22
  500. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  501. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
  502. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
  503. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
  504. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  505. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
  506. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
  507. package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
  508. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  509. package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
  510. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  511. package/dist/esm/hooks/useMap/useMap.mjs +21 -20
  512. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  513. package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
  514. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  515. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
  516. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
  517. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
  518. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  519. package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
  520. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  521. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
  522. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
  523. package/dist/esm/hooks/useMount/useMount.mjs +7 -6
  524. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  525. package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
  526. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  527. package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
  528. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  529. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
  530. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  531. package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
  532. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  533. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
  534. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
  535. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
  536. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  537. package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
  538. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  539. package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
  540. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  541. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
  542. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  543. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
  544. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  545. package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
  546. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  547. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
  548. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  549. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
  550. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  551. package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
  552. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  553. package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
  554. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  555. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
  556. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  557. package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
  558. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  559. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
  560. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
  561. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
  562. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  563. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
  564. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  565. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
  566. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  567. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
  568. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  569. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
  570. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  571. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
  572. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  573. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
  574. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
  575. package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
  576. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  577. package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
  578. package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
  579. package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
  580. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  581. package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
  582. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  583. package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
  584. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  585. package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
  586. package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
  587. package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
  588. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  589. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
  590. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  591. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
  592. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  593. package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
  594. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  595. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
  596. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  597. package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
  598. package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
  599. package/dist/esm/hooks/useScript/useScript.mjs +28 -31
  600. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  601. package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
  602. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  603. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
  604. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  605. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
  606. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  607. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
  608. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
  609. package/dist/esm/hooks/useSet/useSet.mjs +30 -29
  610. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  611. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
  612. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
  613. package/dist/esm/hooks/useShare/useShare.mjs +18 -14
  614. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  615. package/dist/esm/hooks/useSize/useSize.mjs +40 -30
  616. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
  617. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
  618. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  619. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
  620. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  621. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
  622. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  623. package/dist/esm/hooks/useStep/useStep.mjs +27 -28
  624. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  625. package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
  626. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  627. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
  628. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  629. package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
  630. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  631. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
  632. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  633. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
  634. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  635. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
  636. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
  637. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
  638. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  639. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
  640. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
  641. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
  642. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
  643. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
  644. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  645. package/dist/esm/hooks/useTime/useTime.mjs +14 -13
  646. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  647. package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
  648. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  649. package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
  650. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  651. package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
  652. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  653. package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
  654. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  655. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
  656. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  657. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
  658. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  659. package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
  660. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  661. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
  662. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
  663. package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
  664. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  665. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
  666. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  667. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
  668. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  669. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
  670. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  671. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
  672. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  673. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
  674. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  675. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
  676. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  677. package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
  678. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  679. package/dist/esm/index.mjs +173 -394
  680. package/dist/esm/utils/helpers/copy.mjs +18 -18
  681. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  682. package/dist/esm/utils/helpers/debounce.mjs +10 -10
  683. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  684. package/dist/esm/utils/helpers/getDate.mjs +20 -16
  685. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  686. package/dist/esm/utils/helpers/getRetry.mjs +6 -5
  687. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  688. package/dist/esm/utils/helpers/isTarget.mjs +10 -19
  689. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  690. package/dist/esm/utils/helpers/throttle.mjs +20 -20
  691. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  692. package/dist/types/helpers/index.d.ts +1 -0
  693. package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
  694. package/dist/types/hooks/browser.d.ts +2 -0
  695. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  696. package/dist/types/hooks/useField/useField.d.ts +2 -2
  697. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  698. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
  699. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  700. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  701. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  702. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  703. package/package.json +5 -5
  704. package/dist/cjs/index.cjs.map +0 -1
  705. package/dist/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboard.cjs","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard event options type */\nexport interface UseKeyboardEventOptions {\n /** The callback function to be invoked on key down */\n onKeyDown?: KeyboardEventHandler;\n /** The callback function to be invoked on key up */\n onKeyUp?: KeyboardEventHandler;\n}\n\nexport interface UseKeyboard {\n (target: HookTarget, callback: KeyboardEventHandler): void;\n\n (target: HookTarget, options: UseKeyboardEventOptions): void;\n\n <Target extends HTMLElement>(\n callback: KeyboardEventHandler,\n target?: never\n ): { ref: StateRef<Target> };\n\n <Target extends HTMLElement>(\n options: UseKeyboardEventOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that helps to listen for keyboard events\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, (event) => console.log('key down'));\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, { onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n *\n * @overload\n * @template Target The target element type\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard((event) => console.log('key down'));\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard({ onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n */\nexport const useKeyboard = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onKeyDown: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onKeyDown: params[0] }\n ) as UseKeyboardEventOptions;\n\n const internalRef = useRefState(window);\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as HTMLElement;\n if (!element) return;\n\n const onKeyDown = (event: Event) =>\n internalOptionsRef.current?.onKeyDown?.(event as KeyboardEvent);\n const onKeyUp = (event: Event) => internalOptionsRef.current?.onKeyUp?.(event as KeyboardEvent);\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyboard;\n"],"names":["useKeyboard","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","onKeyDown","event","onKeyUp"],"mappings":"mMA6EaA,GAAe,IAAIC,IAAkB,CAChD,MAAMC,EAASC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC3CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,UAAWA,EAAO,CAAC,CAAA,EACvB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,UAAWA,EAAO,CAAC,CAAA,EAGvBI,EAAcC,EAAAA,YAAY,MAAM,EAChCC,EAAqBC,EAAAA,OAAOJ,CAAO,EAsBzC,GArBAG,EAAmB,QAAUH,EAE7BK,EAAAA,UAAU,IAAM,CACd,GAAI,CAACP,GAAU,CAACG,EAAY,MAAO,OAEnC,MAAMK,EAAWR,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIG,EAAY,QACpE,GAAI,CAACK,EAAS,OAEd,MAAMC,EAAaC,GACjBL,EAAmB,SAAS,YAAYK,CAAsB,EAC1DC,EAAWD,GAAiBL,EAAmB,SAAS,UAAUK,CAAsB,EAE9F,OAAAF,EAAQ,iBAAiB,UAAWC,CAAS,EAC7CD,EAAQ,iBAAiB,QAASG,CAAO,EAElC,IAAM,CACXH,EAAQ,oBAAoB,UAAWC,CAAS,EAChDD,EAAQ,oBAAoB,QAASG,CAAO,CAAA,CAC9C,EACC,CAACX,GAAUC,WAAS,cAAcD,CAAM,EAAGG,EAAY,KAAK,CAAC,EAE5D,CAAAH,EACJ,OAAOG,CACT"}
1
+ {"version":3,"file":"useKeyboard.cjs","names":[],"sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keyboard return type */\nexport type UseKeyboardReturn<Target extends HTMLElement> = StateRef<Target>;\n\n/** The use keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard event options type */\nexport interface UseKeyboardEventOptions {\n /** The callback function to be invoked on key down */\n onKeyDown?: KeyboardEventHandler;\n /** The callback function to be invoked on key up */\n onKeyUp?: KeyboardEventHandler;\n}\n\nexport interface UseKeyboard {\n (target: HookTarget, callback: KeyboardEventHandler): void;\n\n (target: HookTarget, options: UseKeyboardEventOptions): void;\n\n <Target extends HTMLElement>(\n callback: KeyboardEventHandler,\n target?: never\n ): { ref: StateRef<Target> };\n\n <Target extends HTMLElement>(\n options: UseKeyboardEventOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that helps to listen for keyboard events\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, (event) => console.log('key down'));\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, { onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n *\n * @overload\n * @template Target The target element type\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const keyboard = useKeyboard((event) => console.log('key down'));\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const keyboard = useKeyboard({ onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n */\nexport const useKeyboard = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onKeyDown: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onKeyDown: params[0] }\n ) as UseKeyboardEventOptions;\n\n const internalRef = useRefState<HTMLElement | Window>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n const element =\n ((target ? isTarget.getElement(target) : internalRef.current) as HTMLElement) ?? window;\n\n const onKeyDown = (event: Event) =>\n internalOptionsRef.current?.onKeyDown?.(event as KeyboardEvent);\n const onKeyUp = (event: Event) => internalOptionsRef.current?.onKeyUp?.(event as KeyboardEvent);\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return;\n return { ref: internalRef };\n}) as UseKeyboard;\n"],"mappings":"uKAgFA,IAAa,IAAgB,GAAG,IAAkB,CAChD,IAAM,EAAS,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC3C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,UAAW,EAAO,GAAI,CAC1B,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,UAAW,EAAO,GAAI,CAG1B,EAAc,EAAA,aAAmC,CACjD,GAAA,EAAA,EAAA,QAA4B,EAAQ,CAC1C,KAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,IAAM,GACF,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,UAA4B,OAE7E,EAAa,GACjB,EAAmB,SAAS,YAAY,EAAuB,CAC3D,EAAW,GAAiB,EAAmB,SAAS,UAAU,EAAuB,CAK/F,OAHA,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,QAAS,EAAQ,KAE7B,CACX,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,QAAS,EAAQ,GAE9C,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,GACJ,MAAO,CAAE,IAAK,EAAa"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),v=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),E=((...o)=>{const e=d.isTarget(o[0])?o[0]:void 0,a=(e?o[1]:o[0])?.enabled??!0,[y,s]=g.useState([]),i=v.useRefState(window);return g.useEffect(()=>{if(!a)return;s([]);const t=e?d.isTarget.getElement(e):i.current;if(!t)return;const f=c=>{const n=c;s(r=>r.some(({code:u})=>u===n.code)?r:[...r,{key:n.key,code:n.code}])},l=c=>{const n=c;s(r=>r.filter(({code:u})=>u!==n.code))};return t.addEventListener("keydown",f),t.addEventListener("keyup",l),()=>{t.removeEventListener("keydown",f),t.removeEventListener("keyup",l)}},[a,i.state,e&&d.isTarget.getRawElement(e)]),e?{value:y}:{value:y,ref:i}});exports.useKeysPressed=E;
2
- //# sourceMappingURL=useKeysPressed.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=(i?r[1]:r[0])?.enabled??!0,[o,s]=(0,n.useState)([]),c=t.useRefState(window);return(0,n.useEffect)(()=>{if(!a)return;s([]);let t=i?e.isTarget.getElement(i):c.current;if(!t)return;let n=e=>{let t=e;s(e=>e.some(({code:e})=>e===t.code)?e:[...e,{key:t.key,code:t.code}])},r=e=>{let t=e;s(e=>e.filter(({code:e})=>e!==t.code))};return t.addEventListener(`keydown`,n),t.addEventListener(`keyup`,r),()=>{t.removeEventListener(`keydown`,n),t.removeEventListener(`keyup`,r)}},[a,c.state,i&&e.isTarget.getRawElement(i)]),i?{value:o}:{value:o,ref:c}});exports.useKeysPressed=r;
2
+ //# sourceMappingURL=useKeysPressed.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeysPressed.cjs","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressedReturn {\n /** The array of currently pressed keys */\n value: Array<{ key: string; code: string }>;\n}\n\nexport interface UseKeysPressed {\n (target: HookTarget | Window, options?: UseKeysPressedOptions): UseKeysPressedReturn;\n\n <Target extends Element>(\n options?: UseKeysPressedOptions\n ): UseKeysPressedReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeysPressed\n * @description Tracks all currently pressed keyboard keys and their codes\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget | Window} target DOM element or ref to attach keyboard listeners to\n * @param {UseKeysPressedOptions} [options.enabled=true] Enable or disable the event listeners\n * @returns {UseKeysPressedReturn} Object containing the array of currently pressed keys\n *\n * @example\n * const { value } = useKeysPressed(ref);\n *\n * @overload\n * @template Target - Type of the target DOM element\n * @param {UseKeysPressedOptions} [options] - Optional configuration options\n * @returns {UseKeysPressedReturn & { ref: StateRef<Target> }} Object containing the array of currently pressed keys and ref to attach to the element\n *\n * @example\n * const { value, ref } = useKeysPressed();\n */\nexport const useKeysPressed = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseKeysPressedOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [value, setValue] = useState<{ key: string; code: string }[]>([]);\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!enabled) return;\n setValue([]);\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => {\n if (prevValue.some(({ code }) => code === keyboardEvent.code)) return prevValue;\n return [...prevValue, { key: keyboardEvent.key, code: keyboardEvent.code }];\n });\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => prevValue.filter(({ code }) => code !== keyboardEvent.code));\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [enabled, internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value };\n return { value, ref: internalRef };\n}) as UseKeysPressed;\n"],"names":["useKeysPressed","params","target","isTarget","enabled","value","setValue","useState","internalRef","useRefState","useEffect","element","onKeyDown","event","keyboardEvent","prevValue","code","onKeyUp"],"mappings":"mMAmDaA,GAAkB,IAAIC,IAAkB,CACnD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAG5CG,GAFWF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,IAErB,SAAW,GAC9B,CAACI,EAAOC,CAAQ,EAAIC,EAAAA,SAA0C,CAAA,CAAE,EAChEC,EAAcC,EAAAA,YAAY,MAAM,EA+BtC,OA7BAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACN,EAAS,OACdE,EAAS,CAAA,CAAE,EAEX,MAAMK,EAAWT,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIM,EAAY,QACpE,GAAI,CAACG,EAAS,OAEd,MAAMC,EAAaC,GAAiB,CAClC,MAAMC,EAAgBD,EACtBP,EAAUS,GACJA,EAAU,KAAK,CAAC,CAAE,KAAAC,CAAA,IAAWA,IAASF,EAAc,IAAI,EAAUC,EAC/D,CAAC,GAAGA,EAAW,CAAE,IAAKD,EAAc,IAAK,KAAMA,EAAc,KAAM,CAC3E,CAAA,EAGGG,EAAWJ,GAAiB,CAChC,MAAMC,EAAgBD,EACtBP,EAAUS,GAAcA,EAAU,OAAO,CAAC,CAAE,KAAAC,CAAA,IAAWA,IAASF,EAAc,IAAI,CAAC,CAAA,EAGrF,OAAAH,EAAQ,iBAAiB,UAAWC,CAAS,EAC7CD,EAAQ,iBAAiB,QAASM,CAAO,EAElC,IAAM,CACXN,EAAQ,oBAAoB,UAAWC,CAAS,EAChDD,EAAQ,oBAAoB,QAASM,CAAO,CAAA,CAC9C,EACC,CAACb,EAASI,EAAY,MAAON,GAAUC,WAAS,cAAcD,CAAM,CAAC,CAAC,EAErEA,EAAe,CAAE,MAAAG,CAAA,EACd,CAAE,MAAAA,EAAO,IAAKG,CAAA,CACvB"}
1
+ {"version":3,"file":"useKeysPressed.cjs","names":[],"sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressedReturn {\n /** The array of currently pressed keys */\n value: Array<{ key: string; code: string }>;\n}\n\nexport interface UseKeysPressed {\n (target: HookTarget | Window, options?: UseKeysPressedOptions): UseKeysPressedReturn;\n\n <Target extends Element>(\n options?: UseKeysPressedOptions\n ): UseKeysPressedReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useKeysPressed\n * @description Tracks all currently pressed keyboard keys and their codes\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget | Window} target DOM element or ref to attach keyboard listeners to\n * @param {UseKeysPressedOptions} [options.enabled=true] Enable or disable the event listeners\n * @returns {UseKeysPressedReturn} Object containing the array of currently pressed keys\n *\n * @example\n * const { value } = useKeysPressed(ref);\n *\n * @overload\n * @template Target - Type of the target DOM element\n * @param {UseKeysPressedOptions} [options] - Optional configuration options\n * @returns {UseKeysPressedReturn & { ref: StateRef<Target> }} Object containing the array of currently pressed keys and ref to attach to the element\n *\n * @example\n * const { value, ref } = useKeysPressed();\n */\nexport const useKeysPressed = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseKeysPressedOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [value, setValue] = useState<{ key: string; code: string }[]>([]);\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!enabled) return;\n setValue([]);\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => {\n if (prevValue.some(({ code }) => code === keyboardEvent.code)) return prevValue;\n return [...prevValue, { key: keyboardEvent.key, code: keyboardEvent.code }];\n });\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => prevValue.filter(({ code }) => code !== keyboardEvent.code));\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [enabled, internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value };\n return { value, ref: internalRef };\n}) as UseKeysPressed;\n"],"mappings":"uKAmDA,IAAa,IAAmB,GAAG,IAAkB,CACnD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAG5C,GAFW,EAAS,EAAO,GAAK,EAAO,KAEpB,SAAW,GAC9B,CAAC,EAAO,IAAA,EAAA,EAAA,UAAsD,EAAE,CAAC,CACjE,EAAc,EAAA,YAAY,OAAO,CAgCvC,OA9BA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAS,OACd,EAAS,EAAE,CAAC,CAEZ,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAa,GAAiB,CAClC,IAAM,EAAgB,EACtB,EAAU,GACJ,EAAU,MAAM,CAAE,UAAW,IAAS,EAAc,KAAK,CAAS,EAC/D,CAAC,GAAG,EAAW,CAAE,IAAK,EAAc,IAAK,KAAM,EAAc,KAAM,CAAC,CAC3E,EAGE,EAAW,GAAiB,CAChC,IAAM,EAAgB,EACtB,EAAU,GAAc,EAAU,QAAQ,CAAE,UAAW,IAAS,EAAc,KAAK,CAAC,EAMtF,OAHA,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,QAAS,EAAQ,KAE7B,CACX,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,QAAS,EAAQ,GAE9C,CAAC,EAAS,EAAY,MAAO,GAAU,EAAA,SAAS,cAAc,EAAO,CAAC,CAAC,CAEtE,EAAe,CAAE,QAAO,CACrB,CAAE,QAAO,IAAK,EAAa"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),u=require("../useDidUpdate/useDidUpdate.cjs"),r=(e,t)=>{const[a,s]=n.useState(t?.initialValue??null);return u.useDidUpdate(()=>s(Date.now()),[e]),a};exports.useLastChanged=r;
2
- //# sourceMappingURL=useLastChanged.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useDidUpdate/useDidUpdate.cjs`);let t=require(`react`);var n=(n,r)=>{let[i,a]=(0,t.useState)(r?.initialValue??null);return e.useDidUpdate(()=>a(Date.now()),[n]),i};exports.useLastChanged=n;
2
+ //# sourceMappingURL=useLastChanged.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLastChanged.cjs","sources":["../../../../src/hooks/useLastChanged/useLastChanged.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/** The use last changed options type */\nexport interface UseLastChangedOptions {\n initialValue?: number;\n}\n\n/**\n * @name useLastChanged\n * @description - Hook for records the timestamp of the last change\n * @category Utilities\n * @usage low\n *\n * @param {any} source The source of the last change\n * @param {number | null} [options.initialValue=null] The initial value\n * @returns {number | null} Return timestamp of the last change\n *\n * @example\n * const lastChanged = useLastChanged(source);\n */\nexport const useLastChanged = (source: any, options?: UseLastChangedOptions): number | null => {\n const [lastChanged, setLastChanged] = useState(options?.initialValue ?? null);\n\n useDidUpdate(() => setLastChanged(Date.now()), [source]);\n\n return lastChanged;\n};\n"],"names":["useLastChanged","source","options","lastChanged","setLastChanged","useState","useDidUpdate"],"mappings":"uJAsBaA,EAAiB,CAACC,EAAaC,IAAmD,CAC7F,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAASH,GAAS,cAAgB,IAAI,EAE5EI,OAAAA,EAAAA,aAAa,IAAMF,EAAe,KAAK,IAAA,CAAK,EAAG,CAACH,CAAM,CAAC,EAEhDE,CACT"}
1
+ {"version":3,"file":"useLastChanged.cjs","names":[],"sources":["../../../../src/hooks/useLastChanged/useLastChanged.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/** The use last changed options type */\nexport interface UseLastChangedOptions {\n initialValue?: number;\n}\n\n/**\n * @name useLastChanged\n * @description - Hook for records the timestamp of the last change\n * @category Utilities\n * @usage low\n *\n * @param {any} source The source of the last change\n * @param {number | null} [options.initialValue=null] The initial value\n * @returns {number | null} Return timestamp of the last change\n *\n * @example\n * const lastChanged = useLastChanged(source);\n */\nexport const useLastChanged = (source: any, options?: UseLastChangedOptions): number | null => {\n const [lastChanged, setLastChanged] = useState(options?.initialValue ?? null);\n\n useDidUpdate(() => setLastChanged(Date.now()), [source]);\n\n return lastChanged;\n};\n"],"mappings":"2HAsBA,IAAa,GAAkB,EAAa,IAAmD,CAC7F,GAAM,CAAC,EAAa,IAAA,EAAA,EAAA,UAA2B,GAAS,cAAgB,KAAK,CAI7E,OAFA,EAAA,iBAAmB,EAAe,KAAK,KAAK,CAAC,CAAE,CAAC,EAAO,CAAC,CAEjD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),u=t=>{const e=r.useRef(t);return e.current=t,r.useMemo(()=>({get value(){return e.current},ref:e}),[])};exports.useLatest=u;
2
- //# sourceMappingURL=useLatest.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>{let n=(0,e.useRef)(t);return n.current=t,(0,e.useMemo)(()=>({get value(){return n.current},ref:n}),[])};exports.useLatest=t;
2
+ //# sourceMappingURL=useLatest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLatest.cjs","sources":["../../../../src/hooks/useLatest/useLatest.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useMemo, useRef } from 'react';\n\nexport interface UseLatestReturn<Value> {\n ref: RefObject<Value>;\n value: Value;\n}\n\n/**\n * @name useLatest\n * @description - Hook that returns the stable reference of the value\n * @category Utilities\n * @usage medium\n *\n * @template Value The type of the value\n * @param {Value} value The value to get the previous value\n * @returns {UseLatestReturn<Value>} The previous value\n *\n * @example\n * const { value, ref } = useLatest(value);\n */\nexport const useLatest = <Value>(value: Value): UseLatestReturn<Value> => {\n const valueRef = useRef<Value>(value);\n valueRef.current = value;\n return useMemo(\n () => ({\n get value() {\n return valueRef.current;\n },\n ref: valueRef\n }),\n []\n );\n};\n"],"names":["useLatest","value","valueRef","useRef","useMemo"],"mappings":"yGAsBaA,EAAoBC,GAAyC,CACxE,MAAMC,EAAWC,EAAAA,OAAcF,CAAK,EACpC,OAAAC,EAAS,QAAUD,EACZG,EAAAA,QACL,KAAO,CACL,IAAI,OAAQ,CACV,OAAOF,EAAS,OAAA,EAElB,IAAKA,CAAA,GAEP,CAAA,CAAC,CAEL"}
1
+ {"version":3,"file":"useLatest.cjs","names":[],"sources":["../../../../src/hooks/useLatest/useLatest.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useMemo, useRef } from 'react';\n\nexport interface UseLatestReturn<Value> {\n ref: RefObject<Value>;\n value: Value;\n}\n\n/**\n * @name useLatest\n * @description - Hook that returns the stable reference of the value\n * @category Utilities\n * @usage medium\n *\n * @template Value The type of the value\n * @param {Value} value The value to get the previous value\n * @returns {UseLatestReturn<Value>} The previous value\n *\n * @example\n * const { value, ref } = useLatest(value);\n */\nexport const useLatest = <Value>(value: Value): UseLatestReturn<Value> => {\n const valueRef = useRef<Value>(value);\n valueRef.current = value;\n return useMemo(\n () => ({\n get value() {\n return valueRef.current;\n },\n ref: valueRef\n }),\n []\n );\n};\n"],"mappings":"uEAsBA,IAAa,EAAoB,GAAyC,CACxE,IAAM,GAAA,EAAA,EAAA,QAAyB,EAAM,CAErC,MADA,GAAS,QAAU,GACnB,EAAA,EAAA,cACS,CACL,IAAI,OAAQ,CACV,OAAO,EAAS,SAElB,IAAK,EACN,EACD,EAAE,CACH"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),t=e=>(s.useEffect(()=>{console.warn("Warning: You forgot to delete the 'useLess' hook.")},[]),e);exports.useLess=t;
2
- //# sourceMappingURL=useLess.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>((0,e.useEffect)(()=>{console.warn(`Warning: You forgot to delete the 'useLess' hook.`)},[]),t);exports.useLess=t;
2
+ //# sourceMappingURL=useLess.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLess.cjs","sources":["../../../../src/hooks/useLess/useLess.ts"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * @name useLess\n * @description - Hook that can be so useless\n * @category Humor\n * @usage low\n *\n * @warning - This hook is a joke. Please do not use it in production code!\n *\n * @template Value The type of the value\n * @param {Value} [value] The value to be returned\n * @returns {Value} The value passed to the hook\n *\n * @example\n * const value = useLess(state);\n */\nexport const useLess = <Value>(value?: Value) => {\n useEffect(() => {\n console.warn(\"Warning: You forgot to delete the 'useLess' hook.\");\n }, []);\n\n return value;\n};\n"],"names":["useLess","value","useEffect"],"mappings":"yGAiBaA,EAAkBC,IAC7BC,EAAAA,UAAU,IAAM,CACd,QAAQ,KAAK,mDAAmD,CAAA,EAC/D,EAAE,EAEED"}
1
+ {"version":3,"file":"useLess.cjs","names":[],"sources":["../../../../src/hooks/useLess/useLess.ts"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * @name useLess\n * @description - Hook that can be so useless\n * @category Humor\n * @usage low\n *\n * @warning - This hook is a joke. Please do not use it in production code!\n *\n * @template Value The type of the value\n * @param {Value} [value] The value to be returned\n * @returns {Value} The value passed to the hook\n *\n * @example\n * const value = useLess(state);\n */\nexport const useLess = <Value>(value?: Value) => {\n useEffect(() => {\n console.warn(\"Warning: You forgot to delete the 'useLess' hook.\");\n }, []);\n\n return value;\n};\n"],"mappings":"uEAiBA,IAAa,EAAkB,KAC7B,EAAA,EAAA,eAAgB,CACd,QAAQ,KAAK,oDAAoD,EAChE,EAAE,CAAC,CAEC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),l=(o=[])=>{const[r,s]=a.useState(o);return{value:r,set:s,push:t=>s(e=>[...e,t]),removeAt:t=>s(e=>[...e.slice(0,t),...e.slice(t+1)]),insertAt:(t,e)=>s(c=>[...c.slice(0,t),e,...c.slice(t)]),updateAt:(t,e)=>s(c=>c.map((u,n)=>n===t?e:u)),clear:()=>s([]),reset:()=>s(o)}};exports.useList=l;
2
- //# sourceMappingURL=useList.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(t=[])=>{let[n,r]=(0,e.useState)(t);return{value:n,set:r,push:e=>r(t=>[...t,e]),removeAt:e=>r(t=>[...t.slice(0,e),...t.slice(e+1)]),insertAt:(e,t)=>r(n=>[...n.slice(0,e),t,...n.slice(e)]),updateAt:(e,t)=>r(n=>n.map((n,r)=>r===e?t:n)),clear:()=>r([]),reset:()=>r(t)}};exports.useList=t;
2
+ //# sourceMappingURL=useList.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useList.cjs","sources":["../../../../src/hooks/useList/useList.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use list return type */\nexport interface UseListReturn<Item> {\n /** The current list of items */\n value: Item[];\n /** Clears the list */\n clear: () => void;\n /** Inserts an item at the specified index */\n insertAt: (insertAtIndex: number, item: Item) => void;\n /** Adds an item to the list */\n push: (item: Item) => void;\n /** Removes an item from the list */\n removeAt: (removeAtIndex: number) => void;\n /** Sets the list of items */\n set: (list: Item[]) => void;\n /** Updates an item at the specified index */\n updateAt: (updateAtIndex: number, item: Item) => void;\n}\n\n/**\n * @name useList\n * @description - Hook that provides state and helper methods to manage a list of items\n * @category State\n * @usage medium\n *\n * @template Item The type of the item\n * @param {Item[] | (() => Item[])} initialList The initial list of items\n * @returns {UseListReturn} An object containing the current list and functions to interact with the list\n *\n * @example\n * const { value, set, push, removeAt, insertAt, updateAt, clear } = useList();\n */\nexport const useList = <Item>(initialList: Item[] = []) => {\n const [list, setList] = useState(initialList);\n\n const push = (item: Item) => setList((prevList) => [...prevList, item]);\n\n const removeAt = (removeAtIndex: number) =>\n setList((prevList) => [\n ...prevList.slice(0, removeAtIndex),\n ...prevList.slice(removeAtIndex + 1)\n ]);\n\n const insertAt = (insertAtIndex: number, item: Item) =>\n setList((l) => [...l.slice(0, insertAtIndex), item, ...l.slice(insertAtIndex)]);\n\n const updateAt = (updateAtIndex: number, item: Item) =>\n setList((prevList) =>\n prevList.map((element, index) => (index === updateAtIndex ? item : element))\n );\n\n const clear = () => setList([]);\n\n const reset = () => setList(initialList);\n\n return {\n value: list,\n set: setList,\n push,\n removeAt,\n insertAt,\n updateAt,\n clear,\n reset\n };\n};\n"],"names":["useList","initialList","list","setList","useState","item","prevList","removeAtIndex","insertAtIndex","l","updateAtIndex","element","index"],"mappings":"yGAiCaA,EAAU,CAAOC,EAAsB,KAAO,CACzD,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAASH,CAAW,EAsB5C,MAAO,CACL,MAAOC,EACP,IAAKC,EACL,KAvBYE,GAAeF,EAASG,GAAa,CAAC,GAAGA,EAAUD,CAAI,CAAC,EAwBpE,SAtBgBE,GAChBJ,EAASG,GAAa,CACpB,GAAGA,EAAS,MAAM,EAAGC,CAAa,EAClC,GAAGD,EAAS,MAAMC,EAAgB,CAAC,CAAA,CACpC,EAmBD,SAjBe,CAACC,EAAuBH,IACvCF,EAASM,GAAM,CAAC,GAAGA,EAAE,MAAM,EAAGD,CAAa,EAAGH,EAAM,GAAGI,EAAE,MAAMD,CAAa,CAAC,CAAC,EAiB9E,SAfe,CAACE,EAAuBL,IACvCF,EAASG,GACPA,EAAS,IAAI,CAACK,EAASC,IAAWA,IAAUF,EAAgBL,EAAOM,CAAQ,CAAA,EAc7E,MAXY,IAAMR,EAAQ,EAAE,EAY5B,MAVY,IAAMA,EAAQF,CAAW,CAUrC,CAEJ"}
1
+ {"version":3,"file":"useList.cjs","names":[],"sources":["../../../../src/hooks/useList/useList.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use list return type */\nexport interface UseListReturn<Item> {\n /** The current list of items */\n value: Item[];\n /** Clears the list */\n clear: () => void;\n /** Inserts an item at the specified index */\n insertAt: (insertAtIndex: number, item: Item) => void;\n /** Adds an item to the list */\n push: (item: Item) => void;\n /** Removes an item from the list */\n removeAt: (removeAtIndex: number) => void;\n /** Sets the list of items */\n set: (list: Item[]) => void;\n /** Updates an item at the specified index */\n updateAt: (updateAtIndex: number, item: Item) => void;\n}\n\n/**\n * @name useList\n * @description - Hook that provides state and helper methods to manage a list of items\n * @category State\n * @usage medium\n *\n * @template Item The type of the item\n * @param {Item[] | (() => Item[])} initialList The initial list of items\n * @returns {UseListReturn} An object containing the current list and functions to interact with the list\n *\n * @example\n * const { value, set, push, removeAt, insertAt, updateAt, clear } = useList();\n */\nexport const useList = <Item>(initialList: Item[] = []) => {\n const [list, setList] = useState(initialList);\n\n const push = (item: Item) => setList((prevList) => [...prevList, item]);\n\n const removeAt = (removeAtIndex: number) =>\n setList((prevList) => [\n ...prevList.slice(0, removeAtIndex),\n ...prevList.slice(removeAtIndex + 1)\n ]);\n\n const insertAt = (insertAtIndex: number, item: Item) =>\n setList((l) => [...l.slice(0, insertAtIndex), item, ...l.slice(insertAtIndex)]);\n\n const updateAt = (updateAtIndex: number, item: Item) =>\n setList((prevList) =>\n prevList.map((element, index) => (index === updateAtIndex ? item : element))\n );\n\n const clear = () => setList([]);\n\n const reset = () => setList(initialList);\n\n return {\n value: list,\n set: setList,\n push,\n removeAt,\n insertAt,\n updateAt,\n clear,\n reset\n };\n};\n"],"mappings":"uEAiCA,IAAa,GAAiB,EAAsB,EAAE,GAAK,CACzD,GAAM,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAY,CAsB7C,MAAO,CACL,MAAO,EACP,IAAK,EACL,KAvBY,GAAe,EAAS,GAAa,CAAC,GAAG,EAAU,EAAK,CAAC,CAwBrE,SAtBgB,GAChB,EAAS,GAAa,CACpB,GAAG,EAAS,MAAM,EAAG,EAAc,CACnC,GAAG,EAAS,MAAM,EAAgB,EAAE,CACrC,CAAC,CAmBF,UAjBgB,EAAuB,IACvC,EAAS,GAAM,CAAC,GAAG,EAAE,MAAM,EAAG,EAAc,CAAE,EAAM,GAAG,EAAE,MAAM,EAAc,CAAC,CAAC,CAiB/E,UAfgB,EAAuB,IACvC,EAAS,GACP,EAAS,KAAK,EAAS,IAAW,IAAU,EAAgB,EAAO,EAAS,CAC7E,CAaD,UAXkB,EAAQ,EAAE,CAAC,CAY7B,UAVkB,EAAQ,EAAY,CAWvC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../useStorage/useStorage.cjs"),a=(e,o,t)=>r.useStorage(e,{...t,initialValue:o,storage:typeof window<"u"?window.localStorage:void 0});exports.useLocalStorage=a;
2
- //# sourceMappingURL=useLocalStorage.cjs.map
1
+ const e=require(`../useStorage/useStorage.cjs`);var t=(t,n,r)=>e.useStorage(t,{...r,initialValue:n,storage:typeof window<`u`?window.localStorage:void 0});exports.useLocalStorage=t;
2
+ //# sourceMappingURL=useLocalStorage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.cjs","sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\n\nimport { useStorage } from '../useStorage/useStorage';\n\n/**\n * @name useLocalStorage\n * @description - Hook that manages local storage value\n * @category State\n * @usage high\n *\n * @browserapi localStorage https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage\n *\n * @template Value The type of the value\n * @param {string} key The key of the storage\n * @param {UseStorageInitialValue<Value>} [initialValue] The initial value of the storage\n * @param {UseStorageOptions<Value>} [options] The options of the storage\n *\n * @example\n * const { value, set, remove } = useLocalStorage('key', 'value');\n */\nexport const useLocalStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: Omit<UseStorageOptions<Value>, 'initialValue' | 'storage'>\n) =>\n useStorage(key, {\n ...options,\n initialValue,\n storage: typeof window !== 'undefined' ? window.localStorage : undefined\n });\n"],"names":["useLocalStorage","key","initialValue","options","useStorage"],"mappings":"gIAoBaA,EAAkB,CAC7BC,EACAC,EACAC,IAEAC,EAAAA,WAAWH,EAAK,CACd,GAAGE,EACH,aAAAD,EACA,QAAS,OAAO,OAAW,IAAc,OAAO,aAAe,MACjE,CAAC"}
1
+ {"version":3,"file":"useLocalStorage.cjs","names":[],"sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import type { UseStorageInitialValue, UseStorageOptions } from '../useStorage/useStorage';\n\nimport { useStorage } from '../useStorage/useStorage';\n\n/**\n * @name useLocalStorage\n * @description - Hook that manages local storage value\n * @category State\n * @usage high\n *\n * @browserapi localStorage https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage\n *\n * @template Value The type of the value\n * @param {string} key The key of the storage\n * @param {UseStorageInitialValue<Value>} [initialValue] The initial value of the storage\n * @param {UseStorageOptions<Value>} [options] The options of the storage\n *\n * @example\n * const { value, set, remove } = useLocalStorage('key', 'value');\n */\nexport const useLocalStorage = <Value>(\n key: string,\n initialValue?: UseStorageInitialValue<Value>,\n options?: Omit<UseStorageOptions<Value>, 'initialValue' | 'storage'>\n) =>\n useStorage(key, {\n ...options,\n initialValue,\n storage: typeof window !== 'undefined' ? window.localStorage : undefined\n });\n"],"mappings":"gDAoBA,IAAa,GACX,EACA,EACA,IAEA,EAAA,WAAW,EAAK,CACd,GAAG,EACH,eACA,QAAS,OAAO,OAAW,IAAc,OAAO,aAAe,IAAA,GAChE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),u=r=>{const e=n.useRef(!1),t=n.useRef(r);return t.current=r,async(...c)=>{if(!e.current){e.current=!0;try{return await t.current(...c)}finally{e.current=!1}}}};exports.useLockCallback=u;
2
- //# sourceMappingURL=useLockCallback.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>{let n=(0,e.useRef)(!1),r=(0,e.useRef)(t);return r.current=t,async(...e)=>{if(!n.current){n.current=!0;try{return await r.current(...e)}finally{n.current=!1}}}};exports.useLockCallback=t;
2
+ //# sourceMappingURL=useLockCallback.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLockCallback.cjs","sources":["../../../../src/hooks/useLockCallback/useLockCallback.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useLockCallback\n * @description - Hook that prevents a callback from being executed multiple times simultaneously\n * @category Async\n * @usage medium\n *\n * @param {Function} callback The callback to be locked\n * @returns {Function} The locked callback\n *\n * @example\n * const lockedCallback = useLockCallback(() => promise());\n */\nexport const useLockCallback = <Callback extends (...args: any[]) => any>(callback: Callback) => {\n const lockRef = useRef(false);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n return async (...args: Parameters<Callback>) => {\n if (lockRef.current) return;\n lockRef.current = true;\n\n try {\n return await internalCallbackRef.current(...args);\n } finally {\n lockRef.current = false;\n }\n };\n};\n"],"names":["useLockCallback","callback","lockRef","useRef","internalCallbackRef","args"],"mappings":"yGAcaA,EAA6DC,GAAuB,CAC/F,MAAMC,EAAUC,EAAAA,OAAO,EAAK,EACtBC,EAAsBD,EAAAA,OAAOF,CAAQ,EAC3C,OAAAG,EAAoB,QAAUH,EAEvB,SAAUI,IAA+B,CAC9C,GAAI,CAAAH,EAAQ,QACZ,CAAAA,EAAQ,QAAU,GAElB,GAAI,CACF,OAAO,MAAME,EAAoB,QAAQ,GAAGC,CAAI,CAAA,QAClD,CACEH,EAAQ,QAAU,EAAA,EACpB,CAEJ"}
1
+ {"version":3,"file":"useLockCallback.cjs","names":[],"sources":["../../../../src/hooks/useLockCallback/useLockCallback.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useLockCallback\n * @description - Hook that prevents a callback from being executed multiple times simultaneously\n * @category Async\n * @usage medium\n *\n * @param {Function} callback The callback to be locked\n * @returns {Function} The locked callback\n *\n * @example\n * const lockedCallback = useLockCallback(() => promise());\n */\nexport const useLockCallback = <Callback extends (...args: any[]) => any>(callback: Callback) => {\n const lockRef = useRef(false);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n return async (...args: Parameters<Callback>) => {\n if (lockRef.current) return;\n lockRef.current = true;\n\n try {\n return await internalCallbackRef.current(...args);\n } finally {\n lockRef.current = false;\n }\n };\n};\n"],"mappings":"uEAcA,IAAa,EAA6D,GAAuB,CAC/F,IAAM,GAAA,EAAA,EAAA,QAAiB,GAAM,CACvB,GAAA,EAAA,EAAA,QAA6B,EAAS,CAG5C,MAFA,GAAoB,QAAU,EAEvB,MAAO,GAAG,IAA+B,CAC1C,MAAQ,QACZ,GAAQ,QAAU,GAElB,GAAI,CACF,OAAO,MAAM,EAAoB,QAAQ,GAAG,EAAK,QACzC,CACR,EAAQ,QAAU"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),w=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),v=require("../useRefState/useRefState.cjs"),i=require("../../utils/helpers/isTarget.cjs"),y=((...o)=>{const r=i.isTarget(o[0])?o[0]:void 0,n=(r?o[1]:o[0])?.enabled??!0,[l,f]=g.useState(n),u=v.useRefState(),t=g.useRef(null);w.useIsomorphicLayoutEffect(()=>{const e=(r?i.isTarget.getElement(r):u.current)??document.body;if(!(e instanceof HTMLElement)||(t.current=e,!n))return;const d=window.getComputedStyle(e).overflow;return t.current.__originalOverflow=d,e.style.overflow="hidden",()=>{e.style.overflow=d,t.current=null}},[r&&i.isTarget.getRawElement(r),u.state,n]);const c=()=>{if(!t.current)return;const e=t.current;t.current.__originalOverflow=window.getComputedStyle(e).overflow,e.style.overflow="hidden",f(!0)},s=()=>{if(!t.current)return;const e=t.current;e.style.overflow=t.current.__originalOverflow,f(!1)},a=(e=!l)=>e?c():s();return r?{value:l,lock:c,unlock:s,toggle:a}:{ref:u,value:l,lock:c,unlock:s,toggle:a}});exports.useLockScroll=y;
2
- //# sourceMappingURL=useLockScroll.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs`),t=require(`../../utils/helpers/isTarget.cjs`),n=require(`../useRefState/useRefState.cjs`);let r=require(`react`);var i=((...i)=>{let a=t.isTarget(i[0])?i[0]:void 0,o=(a?i[1]:i[0])?.enabled??!0,[s,c]=(0,r.useState)(o),l=n.useRefState(),u=(0,r.useRef)(null);e.useIsomorphicLayoutEffect(()=>{let e=(a?t.isTarget.getElement(a):l.current)??document.body;if(!(e instanceof HTMLElement)||(u.current=e,!o))return;let n=window.getComputedStyle(e).overflow;return u.current.__originalOverflow=n,e.style.overflow=`hidden`,()=>{e.style.overflow=n,u.current=null}},[a&&t.isTarget.getRawElement(a),l.state,o]);let d=()=>{if(!u.current)return;let e=u.current;u.current.__originalOverflow=window.getComputedStyle(e).overflow,e.style.overflow=`hidden`,c(!0)},f=()=>{if(!u.current)return;let e=u.current;e.style.overflow=u.current.__originalOverflow,c(!1)},p=(e=!s)=>e?d():f();return a?{value:s,lock:d,unlock:f,toggle:p}:{ref:l,value:s,lock:d,unlock:f,toggle:p}});exports.useLockScroll=i;
2
+ //# sourceMappingURL=useLockScroll.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLockScroll.cjs","sources":["../../../../src/hooks/useLockScroll/useLockScroll.ts"],"sourcesContent":["import { 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 { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use lock scroll options type */\nexport interface UseLockScrollOptions {\n /** Enable or disable scroll locking. Default: true */\n enabled?: boolean;\n}\n\n/** The use lock scroll return type */\nexport interface UseLockScrollReturn<Target extends Element> {\n /** The ref to attach to the element */\n ref: StateRef<Target>;\n /** The value of the lock state */\n value: boolean;\n /** Lock the scroll */\n lock: () => void;\n /** Toggle the scroll lock */\n toggle: (value?: boolean) => void;\n /** Unlock the scroll */\n unlock: () => void;\n}\n\nexport interface UseLockScroll {\n (target: HookTarget, options?: UseLockScrollOptions): UseLockScrollReturn<Element>;\n\n <Target extends Element>(\n options?: UseLockScrollOptions,\n target?: never\n ): UseLockScrollReturn<Target> & { ref: StateRef<Target> };\n}\n\n/**\n * @name useLockScroll\n * @description - Hook that locks scroll on an element or document body\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} [target=document.body] The target element to lock scroll on\n * @param {UseLockScrollOptions} [options] The options for scroll locking\n * @returns {void}\n *\n * @example\n * const { lock, unlock, value, toggle } = useLockScroll(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseLockScrollOptions} [options] The options for scroll locking\n * @returns {StateRef<Target>} Ref to attach to element, or locks body scroll by default\n *\n * @example\n * const { ref, lock, unlock, value, toggle } = useLockScroll();\n */\nexport const useLockScroll = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseLockScrollOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [locked, setLocked] = useState(enabled);\n\n const internalRef = useRefState<Element>();\n const elementRef = useRef<Element>(null);\n\n useIsomorphicLayoutEffect(() => {\n const element =\n ((target ? isTarget.getElement(target) : internalRef.current) as Element) ?? document.body;\n\n if (!(element instanceof HTMLElement)) return;\n\n elementRef.current = element;\n\n if (!enabled) return;\n\n const originalStyle = window.getComputedStyle(element).overflow;\n (elementRef.current as any).__originalOverflow = originalStyle;\n element.style.overflow = 'hidden';\n\n return () => {\n element.style.overflow = originalStyle;\n elementRef.current = null;\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, enabled]);\n\n const lock = () => {\n if (!elementRef.current) return;\n const element = elementRef.current as HTMLElement;\n (elementRef.current as any).__originalOverflow = window.getComputedStyle(element).overflow;\n element.style.overflow = 'hidden';\n setLocked(true);\n };\n\n const unlock = () => {\n if (!elementRef.current) return;\n const element = elementRef.current as HTMLElement;\n element.style.overflow = (elementRef.current as any).__originalOverflow;\n setLocked(false);\n };\n\n const toggle = (value = !locked) => {\n if (value) return lock();\n return unlock();\n };\n\n if (target)\n return {\n value: locked,\n lock,\n unlock,\n toggle\n };\n return {\n ref: internalRef,\n value: locked,\n lock,\n unlock,\n toggle\n };\n}) as UseLockScroll;\n"],"names":["useLockScroll","params","target","isTarget","enabled","locked","setLocked","useState","internalRef","useRefState","elementRef","useRef","useIsomorphicLayoutEffect","element","originalStyle","lock","unlock","toggle","value"],"mappings":"2QA8DaA,GAAiB,IAAIC,IAAuB,CACvD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAG5CG,GAFWF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,IAErB,SAAW,GAC9B,CAACI,EAAQC,CAAS,EAAIC,EAAAA,SAASH,CAAO,EAEtCI,EAAcC,EAAAA,YAAA,EACdC,EAAaC,EAAAA,OAAgB,IAAI,EAEvCC,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,GACFX,EAASC,WAAS,WAAWD,CAAM,EAAIM,EAAY,UAAwB,SAAS,KAMxF,GAJI,EAAEK,aAAmB,eAEzBH,EAAW,QAAUG,EAEjB,CAACT,GAAS,OAEd,MAAMU,EAAgB,OAAO,iBAAiBD,CAAO,EAAE,SACtD,OAAAH,EAAW,QAAgB,mBAAqBI,EACjDD,EAAQ,MAAM,SAAW,SAElB,IAAM,CACXA,EAAQ,MAAM,SAAWC,EACzBJ,EAAW,QAAU,IAAA,CACvB,EACC,CAACR,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EAAGM,EAAY,MAAOJ,CAAO,CAAC,EAEzE,MAAMW,EAAO,IAAM,CACjB,GAAI,CAACL,EAAW,QAAS,OACzB,MAAMG,EAAUH,EAAW,QAC1BA,EAAW,QAAgB,mBAAqB,OAAO,iBAAiBG,CAAO,EAAE,SAClFA,EAAQ,MAAM,SAAW,SACzBP,EAAU,EAAI,CAAA,EAGVU,EAAS,IAAM,CACnB,GAAI,CAACN,EAAW,QAAS,OACzB,MAAMG,EAAUH,EAAW,QAC3BG,EAAQ,MAAM,SAAYH,EAAW,QAAgB,mBACrDJ,EAAU,EAAK,CAAA,EAGXW,EAAS,CAACC,EAAQ,CAACb,IACnBa,EAAcH,EAAA,EACXC,EAAA,EAGT,OAAId,EACK,CACL,MAAOG,EACP,KAAAU,EACA,OAAAC,EACA,OAAAC,CAAA,EAEG,CACL,IAAKT,EACL,MAAOH,EACP,KAAAU,EACA,OAAAC,EACA,OAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useLockScroll.cjs","names":[],"sources":["../../../../src/hooks/useLockScroll/useLockScroll.ts"],"sourcesContent":["import { 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 { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use lock scroll options type */\nexport interface UseLockScrollOptions {\n /** Enable or disable scroll locking. Default: true */\n enabled?: boolean;\n}\n\n/** The use lock scroll return type */\nexport interface UseLockScrollReturn<Target extends Element> {\n /** The ref to attach to the element */\n ref: StateRef<Target>;\n /** The value of the lock state */\n value: boolean;\n /** Lock the scroll */\n lock: () => void;\n /** Toggle the scroll lock */\n toggle: (value?: boolean) => void;\n /** Unlock the scroll */\n unlock: () => void;\n}\n\nexport interface UseLockScroll {\n (target: HookTarget, options?: UseLockScrollOptions): UseLockScrollReturn<Element>;\n\n <Target extends Element>(\n options?: UseLockScrollOptions,\n target?: never\n ): UseLockScrollReturn<Target> & { ref: StateRef<Target> };\n}\n\n/**\n * @name useLockScroll\n * @description - Hook that locks scroll on an element or document body\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} [target=document.body] The target element to lock scroll on\n * @param {UseLockScrollOptions} [options] The options for scroll locking\n * @returns {void}\n *\n * @example\n * const { lock, unlock, value, toggle } = useLockScroll(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseLockScrollOptions} [options] The options for scroll locking\n * @returns {StateRef<Target>} Ref to attach to element, or locks body scroll by default\n *\n * @example\n * const { ref, lock, unlock, value, toggle } = useLockScroll();\n */\nexport const useLockScroll = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseLockScrollOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [locked, setLocked] = useState(enabled);\n\n const internalRef = useRefState<Element>();\n const elementRef = useRef<Element>(null);\n\n useIsomorphicLayoutEffect(() => {\n const element =\n ((target ? isTarget.getElement(target) : internalRef.current) as Element) ?? document.body;\n\n if (!(element instanceof HTMLElement)) return;\n\n elementRef.current = element;\n\n if (!enabled) return;\n\n const originalStyle = window.getComputedStyle(element).overflow;\n (elementRef.current as any).__originalOverflow = originalStyle;\n element.style.overflow = 'hidden';\n\n return () => {\n element.style.overflow = originalStyle;\n elementRef.current = null;\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, enabled]);\n\n const lock = () => {\n if (!elementRef.current) return;\n const element = elementRef.current as HTMLElement;\n (elementRef.current as any).__originalOverflow = window.getComputedStyle(element).overflow;\n element.style.overflow = 'hidden';\n setLocked(true);\n };\n\n const unlock = () => {\n if (!elementRef.current) return;\n const element = elementRef.current as HTMLElement;\n element.style.overflow = (elementRef.current as any).__originalOverflow;\n setLocked(false);\n };\n\n const toggle = (value = !locked) => {\n if (value) return lock();\n return unlock();\n };\n\n if (target)\n return {\n value: locked,\n lock,\n unlock,\n toggle\n };\n return {\n ref: internalRef,\n value: locked,\n lock,\n unlock,\n toggle\n };\n}) as UseLockScroll;\n"],"mappings":"+OA8DA,IAAa,IAAkB,GAAG,IAAuB,CACvD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAG5C,GAFW,EAAS,EAAO,GAAK,EAAO,KAEpB,SAAW,GAC9B,CAAC,EAAQ,IAAA,EAAA,EAAA,UAAsB,EAAQ,CAEvC,EAAc,EAAA,aAAsB,CACpC,GAAA,EAAA,EAAA,QAA6B,KAAK,CAExC,EAAA,8BAAgC,CAC9B,IAAM,GACF,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,UAAwB,SAAS,KAMxF,GAJI,EAAE,aAAmB,eAEzB,EAAW,QAAU,EAEjB,CAAC,GAAS,OAEd,IAAM,EAAgB,OAAO,iBAAiB,EAAQ,CAAC,SAIvD,MAHC,GAAW,QAAgB,mBAAqB,EACjD,EAAQ,MAAM,SAAW,aAEZ,CACX,EAAQ,MAAM,SAAW,EACzB,EAAW,QAAU,OAEtB,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAO,EAAQ,CAAC,CAE1E,IAAM,MAAa,CACjB,GAAI,CAAC,EAAW,QAAS,OACzB,IAAM,EAAU,EAAW,QAC1B,EAAW,QAAgB,mBAAqB,OAAO,iBAAiB,EAAQ,CAAC,SAClF,EAAQ,MAAM,SAAW,SACzB,EAAU,GAAK,EAGX,MAAe,CACnB,GAAI,CAAC,EAAW,QAAS,OACzB,IAAM,EAAU,EAAW,QAC3B,EAAQ,MAAM,SAAY,EAAW,QAAgB,mBACrD,EAAU,GAAM,EAGZ,GAAU,EAAQ,CAAC,IACnB,EAAc,GAAM,CACjB,GAAQ,CAUjB,OAPI,EACK,CACL,MAAO,EACP,OACA,SACA,SACD,CACI,CACL,IAAK,EACL,MAAO,EACP,OACA,SACA,SACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),u=require("../useDidUpdate/useDidUpdate.cjs"),r=(e,o)=>{t.useEffect(()=>(console.log(`${e} mounted`,...o),()=>console.log(`${e} unmounted`)),[]),u.useDidUpdate(()=>{console.log(`${e} updated`,...o)},o)};exports.useLogger=r;
2
- //# sourceMappingURL=useLogger.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useDidUpdate/useDidUpdate.cjs`);let t=require(`react`);var n=(n,r)=>{(0,t.useEffect)(()=>(console.log(`${n} mounted`,...r),()=>console.log(`${n} unmounted`)),[]),e.useDidUpdate(()=>{console.log(`${n} updated`,...r)},r)};exports.useLogger=n;
2
+ //# sourceMappingURL=useLogger.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLogger.cjs","sources":["../../../../src/hooks/useLogger/useLogger.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/**\n * @name useLogger\n * @description - Hook for debugging lifecycle\n * @category Debug\n * @usage low\n *\n * @param {string} name The name or identifier for the logger\n * @param {unknown[]} params Additional arguments to be logged\n *\n * @example\n * useLogger('Component', [1, 2, 3]);\n */\nexport const useLogger = (name: string, params: unknown[]) => {\n useEffect(() => {\n console.log(`${name} mounted`, ...params);\n return () => console.log(`${name} unmounted`);\n }, []);\n\n useDidUpdate(() => {\n console.log(`${name} updated`, ...params);\n }, params);\n};\n"],"names":["useLogger","name","params","useEffect","useDidUpdate"],"mappings":"uJAgBaA,EAAY,CAACC,EAAcC,IAAsB,CAC5DC,EAAAA,UAAU,KACR,QAAQ,IAAI,GAAGF,CAAI,WAAY,GAAGC,CAAM,EACjC,IAAM,QAAQ,IAAI,GAAGD,CAAI,YAAY,GAC3C,EAAE,EAELG,EAAAA,aAAa,IAAM,CACjB,QAAQ,IAAI,GAAGH,CAAI,WAAY,GAAGC,CAAM,CAAA,EACvCA,CAAM,CACX"}
1
+ {"version":3,"file":"useLogger.cjs","names":[],"sources":["../../../../src/hooks/useLogger/useLogger.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\n\n/**\n * @name useLogger\n * @description - Hook for debugging lifecycle\n * @category Debug\n * @usage low\n *\n * @param {string} name The name or identifier for the logger\n * @param {unknown[]} params Additional arguments to be logged\n *\n * @example\n * useLogger('Component', [1, 2, 3]);\n */\nexport const useLogger = (name: string, params: unknown[]) => {\n useEffect(() => {\n console.log(`${name} mounted`, ...params);\n return () => console.log(`${name} unmounted`);\n }, []);\n\n useDidUpdate(() => {\n console.log(`${name} updated`, ...params);\n }, params);\n};\n"],"mappings":"2HAgBA,IAAa,GAAa,EAAc,IAAsB,EAC5D,EAAA,EAAA,gBACE,QAAQ,IAAI,GAAG,EAAK,UAAW,GAAG,EAAO,KAC5B,QAAQ,IAAI,GAAG,EAAK,YAAY,EAC5C,EAAE,CAAC,CAEN,EAAA,iBAAmB,CACjB,QAAQ,IAAI,GAAG,EAAK,UAAW,GAAG,EAAO,EACxC,EAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),m=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),w=400,T=((...t)=>{const e=d.isTarget(t[0])?t[0]:void 0,l=e?t[1]:t[0],E=e?t[2]:t[1],[v,R]=r.useState(!1),n=r.useRef(void 0),f=r.useRef(!1),c=m.useRefState(),L=r.useRef(l);L.current=l;const s=r.useRef(E);return s.current=E,r.useEffect(()=>{if(!e&&!c.state)return;const o=e?d.isTarget.getElement(e):c.current;if(!o)return;const i=u=>{s.current?.onStart?.(u),f.current=!0,n.current=setTimeout(()=>{L.current(u),R(!0)},s.current?.threshold??w)},a=u=>{R(g=>(g?s.current?.onFinish?.(u):f.current&&s.current?.onCancel?.(u),f.current=!1,n.current&&clearTimeout(n.current),!1))};return o.addEventListener("mousedown",i),window.addEventListener("mouseup",a),o.addEventListener("touchstart",i),window.addEventListener("touchend",a),()=>{o.removeEventListener("mousedown",i),window.removeEventListener("mouseup",a),o.removeEventListener("touchstart",i),window.removeEventListener("touchend",a),n.current&&clearTimeout(n.current)}},[e&&d.isTarget.getRawElement(e),c.state]),e?{pressed:v}:{pressed:v,ref:c}});exports.useLongPress=T;
2
- //# sourceMappingURL=useLongPress.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=400,i=((...i)=>{let a=e.isTarget(i[0])?i[0]:void 0,o=a?i[1]:i[0],s=a?i[2]:i[1],[c,l]=(0,n.useState)(!1),u=(0,n.useRef)(void 0),d=(0,n.useRef)(!1),f=t.useRefState(),p=(0,n.useRef)(o);p.current=o;let m=(0,n.useRef)(s);return m.current=s,(0,n.useEffect)(()=>{if(!a&&!f.state)return;let t=a?e.isTarget.getElement(a):f.current;if(!t)return;let n=e=>{m.current?.onStart?.(e),d.current=!0,u.current=setTimeout(()=>{p.current(e),l(!0)},m.current?.threshold??r)},i=e=>{l(t=>(t?m.current?.onFinish?.(e):d.current&&m.current?.onCancel?.(e),d.current=!1,u.current&&clearTimeout(u.current),!1))};return t.addEventListener(`mousedown`,n),window.addEventListener(`mouseup`,i),t.addEventListener(`touchstart`,n),window.addEventListener(`touchend`,i),()=>{t.removeEventListener(`mousedown`,n),window.removeEventListener(`mouseup`,i),t.removeEventListener(`touchstart`,n),window.removeEventListener(`touchend`,i),u.current&&clearTimeout(u.current)}},[a&&e.isTarget.getRawElement(a),f.state]),a?{pressed:c}:{pressed:c,ref:f}});exports.useLongPress=i;
2
+ //# sourceMappingURL=useLongPress.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLongPress.cjs","sources":["../../../../src/hooks/useLongPress/useLongPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type LongPressEvents = MouseEvent | TouchEvent;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressEvents) => void;\n}\n\n/** The use long press return type */\nexport interface UseLongPressReturn {\n /** The long pressing state */\n pressed: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseLongPress {\n (\n target: HookTarget,\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions\n ): UseLongPressReturn;\n\n <Target extends Element>(\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseLongPressReturn;\n}\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target element to be long pressed\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const pressed = useLongPress(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const { ref, pressed } = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: LongPressEvents) => void;\n const options = (target ? params[2] : params[1]) as UseLongPressOptions | undefined;\n\n const [pressed, setPressed] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const isPressedRef = useRef(false);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const onStart = (event: LongPressEvents) => {\n internalOptionsRef.current?.onStart?.(event);\n\n isPressedRef.current = true;\n timeoutIdRef.current = setTimeout(() => {\n internalCallbackRef.current(event);\n setPressed(true);\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const onCancel = (event: LongPressEvents) => {\n setPressed((prevPressed) => {\n if (prevPressed) {\n internalOptionsRef.current?.onFinish?.(event);\n } else if (isPressedRef.current) {\n internalOptionsRef.current?.onCancel?.(event);\n }\n\n isPressedRef.current = false;\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n\n return false;\n });\n };\n\n element.addEventListener('mousedown', onStart as EventListener);\n window.addEventListener('mouseup', onCancel as EventListener);\n\n element.addEventListener('touchstart', onStart as EventListener);\n window.addEventListener('touchend', onCancel as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onStart as EventListener);\n window.removeEventListener('mouseup', onCancel as EventListener);\n\n element.removeEventListener('touchstart', onStart as EventListener);\n window.removeEventListener('touchend', onCancel as EventListener);\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { pressed };\n return { pressed, ref: internalRef };\n}) as UseLongPress;\n"],"names":["DEFAULT_THRESHOLD_TIME","useLongPress","params","target","isTarget","callback","options","pressed","setPressed","useState","timeoutIdRef","useRef","isPressedRef","internalRef","useRefState","internalCallbackRef","internalOptionsRef","useEffect","element","onStart","event","onCancel","prevPressed"],"mappings":"mMAgDMA,EAAyB,IA0BlBC,GAAgB,IAAIC,IAAuB,CACtD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EAAYF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EACzCI,EAAWH,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAExC,CAACK,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EACtCC,EAAeC,EAAAA,OAAsC,MAAS,EAC9DC,EAAeD,EAAAA,OAAO,EAAK,EAC3BE,EAAcC,EAAAA,YAAA,EAEdC,EAAsBJ,EAAAA,OAAON,CAAQ,EAC3CU,EAAoB,QAAUV,EAC9B,MAAMW,EAAqBL,EAAAA,OAAOL,CAAO,EAmDzC,OAlDAU,EAAmB,QAAUV,EAE7BW,EAAAA,UAAU,IAAM,CACd,GAAI,CAACd,GAAU,CAACU,EAAY,MAAO,OAEnC,MAAMK,EAAUf,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIU,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMC,EAAWC,GAA2B,CAC1CJ,EAAmB,SAAS,UAAUI,CAAK,EAE3CR,EAAa,QAAU,GACvBF,EAAa,QAAU,WAAW,IAAM,CACtCK,EAAoB,QAAQK,CAAK,EACjCZ,EAAW,EAAI,CAAA,EACdQ,EAAmB,SAAS,WAAahB,CAAsB,CAAA,EAG9DqB,EAAYD,GAA2B,CAC3CZ,EAAYc,IACNA,EACFN,EAAmB,SAAS,WAAWI,CAAK,EACnCR,EAAa,SACtBI,EAAmB,SAAS,WAAWI,CAAK,EAG9CR,EAAa,QAAU,GACnBF,EAAa,SAAS,aAAaA,EAAa,OAAO,EAEpD,GACR,CAAA,EAGH,OAAAQ,EAAQ,iBAAiB,YAAaC,CAAwB,EAC9D,OAAO,iBAAiB,UAAWE,CAAyB,EAE5DH,EAAQ,iBAAiB,aAAcC,CAAwB,EAC/D,OAAO,iBAAiB,WAAYE,CAAyB,EAEtD,IAAM,CACXH,EAAQ,oBAAoB,YAAaC,CAAwB,EACjE,OAAO,oBAAoB,UAAWE,CAAyB,EAE/DH,EAAQ,oBAAoB,aAAcC,CAAwB,EAClE,OAAO,oBAAoB,WAAYE,CAAyB,EAE5DX,EAAa,SAAS,aAAaA,EAAa,OAAO,CAAA,CAC7D,EACC,CAACP,GAAUC,WAAS,cAAcD,CAAM,EAAGU,EAAY,KAAK,CAAC,EAE5DV,EAAe,CAAE,QAAAI,CAAA,EACd,CAAE,QAAAA,EAAS,IAAKM,CAAA,CACzB"}
1
+ {"version":3,"file":"useLongPress.cjs","names":[],"sources":["../../../../src/hooks/useLongPress/useLongPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\nexport type LongPressEvents = MouseEvent | TouchEvent;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressEvents) => void;\n}\n\n/** The use long press return type */\nexport interface UseLongPressReturn {\n /** The long pressing state */\n pressed: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseLongPress {\n (\n target: HookTarget,\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions\n ): UseLongPressReturn;\n\n <Target extends Element>(\n callback: (event: LongPressEvents) => void,\n options?: UseLongPressOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseLongPressReturn;\n}\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target element to be long pressed\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const pressed = useLongPress(ref, () => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: LongPressEvents) => void} callback The callback function to be invoked on long press\n * @param {UseLongPressOptions} [options] The options for the long press\n * @returns {boolean} The long pressing state\n *\n * @example\n * const { ref, pressed } = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = ((...params: any[]): any => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: LongPressEvents) => void;\n const options = (target ? params[2] : params[1]) as UseLongPressOptions | undefined;\n\n const [pressed, setPressed] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const isPressedRef = useRef(false);\n const internalRef = useRefState<Element>();\n\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const onStart = (event: LongPressEvents) => {\n internalOptionsRef.current?.onStart?.(event);\n\n isPressedRef.current = true;\n timeoutIdRef.current = setTimeout(() => {\n internalCallbackRef.current(event);\n setPressed(true);\n }, internalOptionsRef.current?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const onCancel = (event: LongPressEvents) => {\n setPressed((prevPressed) => {\n if (prevPressed) {\n internalOptionsRef.current?.onFinish?.(event);\n } else if (isPressedRef.current) {\n internalOptionsRef.current?.onCancel?.(event);\n }\n\n isPressedRef.current = false;\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n\n return false;\n });\n };\n\n element.addEventListener('mousedown', onStart as EventListener);\n window.addEventListener('mouseup', onCancel as EventListener);\n\n element.addEventListener('touchstart', onStart as EventListener);\n window.addEventListener('touchend', onCancel as EventListener);\n\n return () => {\n element.removeEventListener('mousedown', onStart as EventListener);\n window.removeEventListener('mouseup', onCancel as EventListener);\n\n element.removeEventListener('touchstart', onStart as EventListener);\n window.removeEventListener('touchend', onCancel as EventListener);\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { pressed };\n return { pressed, ref: internalRef };\n}) as UseLongPress;\n"],"mappings":"uKAgDA,IAAM,EAAyB,IA0BlB,IAAiB,GAAG,IAAuB,CACtD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EAAY,EAAS,EAAO,GAAK,EAAO,GACxC,EAAW,EAAS,EAAO,GAAK,EAAO,GAEvC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,GAAA,EAAA,EAAA,QAAqD,IAAA,GAAU,CAC/D,GAAA,EAAA,EAAA,QAAsB,GAAM,CAC5B,EAAc,EAAA,aAAsB,CAEpC,GAAA,EAAA,EAAA,QAA6B,EAAS,CAC5C,EAAoB,QAAU,EAC9B,IAAM,GAAA,EAAA,EAAA,QAA4B,EAAQ,CAoD1C,MAnDA,GAAmB,QAAU,GAE7B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OAEnC,IAAM,EAAU,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACnE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,GAA2B,CAC1C,EAAmB,SAAS,UAAU,EAAM,CAE5C,EAAa,QAAU,GACvB,EAAa,QAAU,eAAiB,CACtC,EAAoB,QAAQ,EAAM,CAClC,EAAW,GAAK,EACf,EAAmB,SAAS,WAAa,EAAuB,EAG/D,EAAY,GAA2B,CAC3C,EAAY,IACN,EACF,EAAmB,SAAS,WAAW,EAAM,CACpC,EAAa,SACtB,EAAmB,SAAS,WAAW,EAAM,CAG/C,EAAa,QAAU,GACnB,EAAa,SAAS,aAAa,EAAa,QAAQ,CAErD,IACP,EASJ,OANA,EAAQ,iBAAiB,YAAa,EAAyB,CAC/D,OAAO,iBAAiB,UAAW,EAA0B,CAE7D,EAAQ,iBAAiB,aAAc,EAAyB,CAChE,OAAO,iBAAiB,WAAY,EAA0B,KAEjD,CACX,EAAQ,oBAAoB,YAAa,EAAyB,CAClE,OAAO,oBAAoB,UAAW,EAA0B,CAEhE,EAAQ,oBAAoB,aAAc,EAAyB,CACnE,OAAO,oBAAoB,WAAY,EAA0B,CAE7D,EAAa,SAAS,aAAa,EAAa,QAAQ,GAE7D,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,EAAe,CAAE,UAAS,CACvB,CAAE,UAAS,IAAK,EAAa"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),w=o=>{const[a,s]=p.useState(new Map(o)),r=(e,t)=>s(n=>new Map(n).set(e,t)),c=e=>s(t=>{if(!t.has(e))return t;const n=new Map(t);return n.delete(e),n}),u=()=>s(new Map),M=()=>s(new Map(o)),i=e=>a.has(e);return{value:a,size:a.size,set:r,has:i,remove:c,clear:u,reset:M}};exports.useMap=w;
2
- //# sourceMappingURL=useMap.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>{let[n,r]=(0,e.useState)(new Map(t));return{value:n,size:n.size,set:(e,t)=>r(n=>new Map(n).set(e,t)),has:e=>n.has(e),remove:e=>r(t=>{if(!t.has(e))return t;let n=new Map(t);return n.delete(e),n}),clear:()=>r(new Map),reset:()=>r(new Map(t))}};exports.useMap=t;
2
+ //# sourceMappingURL=useMap.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMap.cjs","sources":["../../../../src/hooks/useMap/useMap.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use map return type */\nexport interface UseMapReturn<Key, Value> {\n /** The size of the map */\n size: number;\n /** The current map */\n value: Map<Key, Value>;\n /** Function to clear the map */\n clear: () => void;\n /** Function to check if a value exists in the map */\n has: (key: Key) => boolean;\n /** Function to remove a value from the map */\n remove: (key: Key) => void;\n /** Function to toggle a value in the map */\n reset: () => void;\n /** Function to add a value to the map */\n set: (key: Key, value: Value) => void;\n}\n\n/**\n * @name useMap\n * @description - Hook that manages a map structure\n * @category State\n * @usage high\n *\n * @template Value The type of the value\n * @param {Value[]} [values] The initial array of the map\n * @returns {UseMapReturn<Key, Value>} An object containing the current map and functions to interact with the map\n *\n * @example\n * const { value, set, remove, clear, reset, size, has } = useMap([1, 'one'], [2, 'two']);\n */\nexport const useMap = <Key, Value>(values?: [Key, Value][]): UseMapReturn<Key, Value> => {\n const [map, setMap] = useState(new Map(values));\n\n const set = (key: Key, value: Value) => setMap((prevMap) => new Map(prevMap).set(key, value));\n const remove = (key: Key) =>\n setMap((prevMap) => {\n if (!prevMap.has(key)) return prevMap;\n const newMap = new Map(prevMap);\n newMap.delete(key);\n return newMap;\n });\n const clear = () => setMap(new Map());\n const reset = () => setMap(new Map(values));\n const has = (key: Key) => map.has(key);\n\n return {\n value: map,\n size: map.size,\n set,\n has,\n remove,\n clear,\n reset\n };\n};\n"],"names":["useMap","values","map","setMap","useState","set","key","value","prevMap","remove","newMap","clear","reset","has"],"mappings":"yGAiCaA,EAAsBC,GAAsD,CACvF,KAAM,CAACC,EAAKC,CAAM,EAAIC,EAAAA,SAAS,IAAI,IAAIH,CAAM,CAAC,EAExCI,EAAM,CAACC,EAAUC,IAAiBJ,EAAQK,GAAY,IAAI,IAAIA,CAAO,EAAE,IAAIF,EAAKC,CAAK,CAAC,EACtFE,EAAUH,GACdH,EAAQK,GAAY,CAClB,GAAI,CAACA,EAAQ,IAAIF,CAAG,EAAG,OAAOE,EAC9B,MAAME,EAAS,IAAI,IAAIF,CAAO,EAC9B,OAAAE,EAAO,OAAOJ,CAAG,EACVI,CAAA,CACR,EACGC,EAAQ,IAAMR,EAAO,IAAI,GAAK,EAC9BS,EAAQ,IAAMT,EAAO,IAAI,IAAIF,CAAM,CAAC,EACpCY,EAAOP,GAAaJ,EAAI,IAAII,CAAG,EAErC,MAAO,CACL,MAAOJ,EACP,KAAMA,EAAI,KACV,IAAAG,EACA,IAAAQ,EACA,OAAAJ,EACA,MAAAE,EACA,MAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useMap.cjs","names":[],"sources":["../../../../src/hooks/useMap/useMap.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use map return type */\nexport interface UseMapReturn<Key, Value> {\n /** The size of the map */\n size: number;\n /** The current map */\n value: Map<Key, Value>;\n /** Function to clear the map */\n clear: () => void;\n /** Function to check if a value exists in the map */\n has: (key: Key) => boolean;\n /** Function to remove a value from the map */\n remove: (key: Key) => void;\n /** Function to toggle a value in the map */\n reset: () => void;\n /** Function to add a value to the map */\n set: (key: Key, value: Value) => void;\n}\n\n/**\n * @name useMap\n * @description - Hook that manages a map structure\n * @category State\n * @usage high\n *\n * @template Value The type of the value\n * @param {Value[]} [values] The initial array of the map\n * @returns {UseMapReturn<Key, Value>} An object containing the current map and functions to interact with the map\n *\n * @example\n * const { value, set, remove, clear, reset, size, has } = useMap([1, 'one'], [2, 'two']);\n */\nexport const useMap = <Key, Value>(values?: [Key, Value][]): UseMapReturn<Key, Value> => {\n const [map, setMap] = useState(new Map(values));\n\n const set = (key: Key, value: Value) => setMap((prevMap) => new Map(prevMap).set(key, value));\n const remove = (key: Key) =>\n setMap((prevMap) => {\n if (!prevMap.has(key)) return prevMap;\n const newMap = new Map(prevMap);\n newMap.delete(key);\n return newMap;\n });\n const clear = () => setMap(new Map());\n const reset = () => setMap(new Map(values));\n const has = (key: Key) => map.has(key);\n\n return {\n value: map,\n size: map.size,\n set,\n has,\n remove,\n clear,\n reset\n };\n};\n"],"mappings":"uEAiCA,IAAa,EAAsB,GAAsD,CACvF,GAAM,CAAC,EAAK,IAAA,EAAA,EAAA,UAAmB,IAAI,IAAI,EAAO,CAAC,CAc/C,MAAO,CACL,MAAO,EACP,KAAM,EAAI,KACV,KAfW,EAAU,IAAiB,EAAQ,GAAY,IAAI,IAAI,EAAQ,CAAC,IAAI,EAAK,EAAM,CAAC,CAgB3F,IANW,GAAa,EAAI,IAAI,EAAI,CAOpC,OAhBc,GACd,EAAQ,GAAY,CAClB,GAAI,CAAC,EAAQ,IAAI,EAAI,CAAE,OAAO,EAC9B,IAAM,EAAS,IAAI,IAAI,EAAQ,CAE/B,OADA,EAAO,OAAO,EAAI,CACX,GACP,CAWF,UAVkB,EAAO,IAAI,IAAM,CAWnC,UAVkB,EAAO,IAAI,IAAI,EAAO,CAAC,CAW1C"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),y=require("../useRefState/useRefState.cjs"),r=require("../../utils/helpers/isTarget.cjs"),S=((...s)=>{const e=r.isTarget(s[0])?s[0]:void 0,t=y.useRefState(),[n,a]=u.useState({x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0});return u.useEffect(()=>{if(!e&&!t.state)return;const i=e?r.isTarget.getElement(e):t.current;if(!i)return;const o=new ResizeObserver(f=>{const c=f[0];if(!c)return;const{x:g,y:l,width:h,height:b,top:R,left:d,bottom:m,right:v}=c.contentRect;a({x:g,y:l,width:h,height:b,top:R,left:d,bottom:m,right:v})});return o.observe(i),()=>{o.disconnect()}},[e&&r.isTarget.getRawElement(e),t.state]),e?n:{ref:t,...n}});exports.useMeasure=S;
2
- //# sourceMappingURL=useMeasure.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=t.useRefState(),[o,s]=(0,n.useState)({x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0});return(0,n.useEffect)(()=>{if(!i&&!a.state)return;let t=i?e.isTarget.getElement(i):a.current;if(!t)return;let n=new ResizeObserver(e=>{let t=e[0];if(!t)return;let{x:n,y:r,width:i,height:a,top:o,left:c,bottom:l,right:u}=t.contentRect;s({x:n,y:r,width:i,height:a,top:o,left:c,bottom:l,right:u})});return n.observe(t),()=>{n.disconnect()}},[i&&e.isTarget.getRawElement(i),a.state]),i?o:{ref:a,...o}});exports.useMeasure=r;
2
+ //# sourceMappingURL=useMeasure.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMeasure.cjs","sources":["../../../../src/hooks/useMeasure/useMeasure.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use measure return type */\nexport type UseMeasureReturn = Pick<\n DOMRectReadOnly,\n 'bottom' | 'height' | 'left' | 'right' | 'top' | 'width' | 'x' | 'y'\n>;\n\nexport interface UseMeasure {\n (target: HookTarget): UseMeasureReturn;\n\n <Target extends Element>(\n target?: never\n ): UseMeasureReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useMeasure\n * @description - Hook to measure the size and position of an element\n * @category Browser\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The element to measure\n * @returns {UseMeasureReturn} The element's size and position\n *\n * @example\n * const { x, y, width, height, top, left, bottom, right } = useMeasure(ref);\n *\n * @overload\n * @template Target The element to measure\n * @returns {UseMeasureReturn & { ref: StateRef<Target> }} The element's size and position\n *\n * @example\n * const { ref, x, y, width, height, top, left, bottom, right } = useMeasure();\n */\nexport const useMeasure = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const internalRef = useRefState<Element>();\n const [rect, setRect] = useState({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n\n const { x, y, width, height, top, left, bottom, right } = entry.contentRect;\n setRect({ x, y, width, height, top, left, bottom, right });\n });\n\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return rect;\n return { ref: internalRef, ...rect };\n}) as UseMeasure;\n"],"names":["useMeasure","params","target","isTarget","internalRef","useRefState","rect","setRect","useState","useEffect","element","resizeObserver","entries","entry","x","y","width","height","top","left","bottom","right"],"mappings":"mMA8CaA,GAAc,IAAIC,IAAkB,CAC/C,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EAAcC,EAAAA,YAAA,EACd,CAACC,EAAMC,CAAO,EAAIC,WAAS,CAC/B,EAAG,EACH,EAAG,EACH,MAAO,EACP,OAAQ,EACR,IAAK,EACL,KAAM,EACN,OAAQ,EACR,MAAO,CAAA,CACR,EAuBD,OArBAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACP,GAAU,CAACE,EAAY,MAAO,OAEnC,MAAMM,EAAWR,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIE,EAAY,QACpE,GAAI,CAACM,EAAS,OAEd,MAAMC,EAAiB,IAAI,eAAgBC,GAAY,CACrD,MAAMC,EAAQD,EAAQ,CAAC,EACvB,GAAI,CAACC,EAAO,OAEZ,KAAM,CAAE,EAAAC,EAAG,EAAAC,EAAG,MAAAC,EAAO,OAAAC,EAAQ,IAAAC,EAAK,KAAAC,EAAM,OAAAC,EAAQ,MAAAC,CAAA,EAAUR,EAAM,YAChEN,EAAQ,CAAE,EAAAO,EAAG,EAAAC,EAAG,MAAAC,EAAO,OAAAC,EAAQ,IAAAC,EAAK,KAAAC,EAAM,OAAAC,EAAQ,MAAAC,EAAO,CAAA,CAC1D,EAED,OAAAV,EAAe,QAAQD,CAAO,EAEvB,IAAM,CACXC,EAAe,WAAA,CAAW,CAC5B,EACC,CAACT,GAAUC,WAAS,cAAcD,CAAM,EAAGE,EAAY,KAAK,CAAC,EAE5DF,EAAeI,EACZ,CAAE,IAAKF,EAAa,GAAGE,CAAA,CAChC"}
1
+ {"version":3,"file":"useMeasure.cjs","names":[],"sources":["../../../../src/hooks/useMeasure/useMeasure.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use measure return type */\nexport type UseMeasureReturn = Pick<\n DOMRectReadOnly,\n 'bottom' | 'height' | 'left' | 'right' | 'top' | 'width' | 'x' | 'y'\n>;\n\nexport interface UseMeasure {\n (target: HookTarget): UseMeasureReturn;\n\n <Target extends Element>(\n target?: never\n ): UseMeasureReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useMeasure\n * @description - Hook to measure the size and position of an element\n * @category Browser\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The element to measure\n * @returns {UseMeasureReturn} The element's size and position\n *\n * @example\n * const { x, y, width, height, top, left, bottom, right } = useMeasure(ref);\n *\n * @overload\n * @template Target The element to measure\n * @returns {UseMeasureReturn & { ref: StateRef<Target> }} The element's size and position\n *\n * @example\n * const { ref, x, y, width, height, top, left, bottom, right } = useMeasure();\n */\nexport const useMeasure = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const internalRef = useRefState<Element>();\n const [rect, setRect] = useState({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n });\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n\n const { x, y, width, height, top, left, bottom, right } = entry.contentRect;\n setRect({ x, y, width, height, top, left, bottom, right });\n });\n\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return rect;\n return { ref: internalRef, ...rect };\n}) as UseMeasure;\n"],"mappings":"uKA8CA,IAAa,IAAe,GAAG,IAAkB,CAC/C,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAE5C,EAAc,EAAA,aAAsB,CACpC,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,CAC/B,EAAG,EACH,EAAG,EACH,MAAO,EACP,OAAQ,EACR,IAAK,EACL,KAAM,EACN,OAAQ,EACR,MAAO,EACR,CAAC,CAwBF,OAtBA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAU,CAAC,EAAY,MAAO,OAEnC,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACpE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAiB,IAAI,eAAgB,GAAY,CACrD,IAAM,EAAQ,EAAQ,GACtB,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,IAAG,IAAG,QAAO,SAAQ,MAAK,OAAM,SAAQ,SAAU,EAAM,YAChE,EAAQ,CAAE,IAAG,IAAG,QAAO,SAAQ,MAAK,OAAM,SAAQ,QAAO,CAAC,EAC1D,CAIF,OAFA,EAAe,QAAQ,EAAQ,KAElB,CACX,EAAe,YAAY,GAE5B,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAE7D,EAAe,EACZ,CAAE,IAAK,EAAa,GAAG,EAAM"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),J=require("../useRefState/useRefState.cjs"),i=require("../../utils/helpers/isTarget.cjs"),q=r=>{let s=[];for(let a=0;a<r.length;++a)s=[...s,[r.start(a),r.end(a)]];return s},K=((...r)=>{const s=i.isTarget(r[0])?r[0]:void 0,a=s?typeof r[1]=="object"?r[1]:{src:r[1]}:typeof r[0]=="object"?r[0]:{src:r[0]},u=J.useRefState(),t=n.useRef(null),[c,o]=n.useState(!1),[d,l]=n.useState(0),[x,m]=n.useState(0),[D,g]=n.useState(!1),[W,B]=n.useState(!1),[O,U]=n.useState([]),[z,v]=n.useState(!1),[F,f]=n.useState(!1),[G,E]=n.useState(1),[H,y]=n.useState(!1),[I,L]=n.useState(1);n.useEffect(()=>{const e=s?i.isTarget.getElement(s):u.current;if(!e)return;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),f(e.ended),y(e.muted),L(e.volume),E(e.playbackRate);const k=()=>{o(!0),v(!1)},h=()=>o(!1),b=()=>B(!0),R=()=>v(!0),T=()=>g(!0),M=()=>g(!1),P=()=>{o(!1),f(!0)},w=()=>l(e.duration),A=()=>m(e.currentTime),C=()=>{y(e.muted),L(e.volume)},V=()=>E(e.playbackRate),j=()=>U(q(e.buffered));return e.addEventListener("playing",k),e.addEventListener("pause",h),e.addEventListener("waiting",b),e.addEventListener("progress",j),e.addEventListener("stalled",R),e.addEventListener("seeking",T),e.addEventListener("seeked",M),e.addEventListener("ended",P),e.addEventListener("loadedmetadata",w),e.addEventListener("timeupdate",A),e.addEventListener("volumechange",C),e.addEventListener("ratechange",V),()=>{e.removeEventListener("playing",k),e.removeEventListener("pause",h),e.removeEventListener("waiting",b),e.removeEventListener("progress",j),e.removeEventListener("stalled",R),e.removeEventListener("seeking",T),e.removeEventListener("seeked",M),e.removeEventListener("ended",P),e.removeEventListener("loadedmetadata",w),e.removeEventListener("timeupdate",A),e.removeEventListener("volumechange",C),e.removeEventListener("ratechange",V)}},[s&&i.isTarget.getRawElement(s),u.state]);const S=async()=>{const e=t.current;e&&await e.play()},p=()=>{t.current&&t.current.pause()};return{playing:c,duration:d,currentTime:x,seeking:D,waiting:W,buffered:O,stalled:z,ended:F,playbackRate:G,muted:H,volume:I,play:S,pause:p,toggle:async(e=!c)=>e?S():p(),seek:e=>{t.current&&(t.current.currentTime=Math.min(Math.max(e,0),d))},changeVolume:e=>{t.current&&(t.current.volume=Math.min(Math.max(e,0),1))},mute:()=>{t.current&&(t.current.muted=!0)},unmute:()=>{t.current&&(t.current.muted=!1)},changePlaybackRate:e=>{t.current&&(t.current.playbackRate=e)},...!s&&{ref:u}}});exports.timeRangeToArray=q;exports.useMediaControls=K;
2
- //# sourceMappingURL=useMediaControls.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=e=>{let t=[];for(let n=0;n<e.length;++n)t=[...t,[e.start(n),e.end(n)]];return t},i=((...i)=>{let a=e.isTarget(i[0])?i[0]:void 0,o=a?typeof i[1]==`object`?i[1]:{src:i[1]}:typeof i[0]==`object`?i[0]:{src:i[0]},s=t.useRefState(),c=(0,n.useRef)(null),[l,u]=(0,n.useState)(!1),[d,f]=(0,n.useState)(0),[p,m]=(0,n.useState)(0),[h,g]=(0,n.useState)(!1),[_,v]=(0,n.useState)(!1),[y,b]=(0,n.useState)([]),[x,S]=(0,n.useState)(!1),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(1),[D,O]=(0,n.useState)(!1),[k,A]=(0,n.useState)(1);(0,n.useEffect)(()=>{let t=a?e.isTarget.getElement(a):s.current;if(!t)return;c.current=t,t.src=o.src,o.type&&t.setAttribute(`type`,o.type),o.media&&t.setAttribute(`media`,o.media),f(t.duration),m(t.currentTime),u(!1),w(t.ended),O(t.muted),A(t.volume),E(t.playbackRate);let n=()=>{u(!0),S(!1)},i=()=>u(!1),l=()=>v(!0),d=()=>S(!0),p=()=>g(!0),h=()=>g(!1),_=()=>{u(!1),w(!0)},y=()=>f(t.duration),x=()=>m(t.currentTime),C=()=>{O(t.muted),A(t.volume)},T=()=>E(t.playbackRate),D=()=>b(r(t.buffered));return t.addEventListener(`playing`,n),t.addEventListener(`pause`,i),t.addEventListener(`waiting`,l),t.addEventListener(`progress`,D),t.addEventListener(`stalled`,d),t.addEventListener(`seeking`,p),t.addEventListener(`seeked`,h),t.addEventListener(`ended`,_),t.addEventListener(`loadedmetadata`,y),t.addEventListener(`timeupdate`,x),t.addEventListener(`volumechange`,C),t.addEventListener(`ratechange`,T),()=>{t.removeEventListener(`playing`,n),t.removeEventListener(`pause`,i),t.removeEventListener(`waiting`,l),t.removeEventListener(`progress`,D),t.removeEventListener(`stalled`,d),t.removeEventListener(`seeking`,p),t.removeEventListener(`seeked`,h),t.removeEventListener(`ended`,_),t.removeEventListener(`loadedmetadata`,y),t.removeEventListener(`timeupdate`,x),t.removeEventListener(`volumechange`,C),t.removeEventListener(`ratechange`,T)}},[a&&e.isTarget.getRawElement(a),s.state]);let j=async()=>{let e=c.current;e&&await e.play()},M=()=>{c.current&&c.current.pause()};return{playing:l,duration:d,currentTime:p,seeking:h,waiting:_,buffered:y,stalled:x,ended:C,playbackRate:T,muted:D,volume:k,play:j,pause:M,toggle:async(e=!l)=>e?j():M(),seek:e=>{c.current&&(c.current.currentTime=Math.min(Math.max(e,0),d))},changeVolume:e=>{c.current&&(c.current.volume=Math.min(Math.max(e,0),1))},mute:()=>{c.current&&(c.current.muted=!0)},unmute:()=>{c.current&&(c.current.muted=!1)},changePlaybackRate:e=>{c.current&&(c.current.playbackRate=e)},...!a&&{ref:s}}});exports.timeRangeToArray=r,exports.useMediaControls=i;
2
+ //# sourceMappingURL=useMediaControls.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaControls.cjs","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":"mMAUaA,EAAoBC,GAA2B,CAC1D,IAAIC,EAA6B,CAAA,EAEjC,QAASC,EAAI,EAAGA,EAAIF,EAAW,OAAQ,EAAEE,EACvCD,EAAS,CAAC,GAAGA,EAAQ,CAACD,EAAW,MAAME,CAAC,EAAGF,EAAW,IAAIE,CAAC,CAAC,CAAC,EAE/D,OAAOD,CACT,EA4GaE,GAAoB,IAAIC,IAAkB,CACrD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,IAAKA,EAAO,CAAC,CAAA,EACjB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,IAAKA,EAAO,CAAC,CAAA,EAGjBI,EAAcC,EAAAA,YAAA,EACdC,EAAaC,EAAAA,OAAgC,IAAI,EAEjD,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EACtC,CAACC,EAAUC,CAAW,EAAIF,EAAAA,SAAS,CAAC,EACpC,CAACG,EAAaC,CAAc,EAAIJ,EAAAA,SAAS,CAAC,EAC1C,CAACK,EAASC,CAAU,EAAIN,EAAAA,SAAS,EAAK,EACtC,CAACO,EAASC,CAAU,EAAIR,EAAAA,SAAS,EAAK,EACtC,CAACS,EAAUC,CAAW,EAAIV,EAAAA,SAA6B,CAAA,CAAE,EACzD,CAACW,EAASC,CAAU,EAAIZ,EAAAA,SAAS,EAAK,EACtC,CAACa,EAAOC,CAAQ,EAAId,EAAAA,SAAS,EAAK,EAClC,CAACe,EAAcC,CAAoB,EAAIhB,EAAAA,SAAS,CAAC,EAEjD,CAACiB,EAAOC,CAAa,EAAIlB,EAAAA,SAAS,EAAK,EACvC,CAACmB,EAAQC,CAAc,EAAIpB,EAAAA,SAAS,CAAC,EAE3CqB,EAAAA,UAAU,IAAM,CACd,MAAMC,EACJ/B,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIG,EAAY,QAGrD,GAAI,CAAC4B,EAAS,OAEd1B,EAAW,QAAU0B,EACrBA,EAAQ,IAAM7B,EAAQ,IAElBA,EAAQ,MAAM6B,EAAQ,aAAa,OAAQ7B,EAAQ,IAAI,EACvDA,EAAQ,OAAO6B,EAAQ,aAAa,QAAS7B,EAAQ,KAAK,EAE9DS,EAAYoB,EAAQ,QAAQ,EAC5BlB,EAAekB,EAAQ,WAAW,EAClCvB,EAAW,EAAK,EAChBe,EAASQ,EAAQ,KAAK,EACtBJ,EAAcI,EAAQ,KAAK,EAC3BF,EAAeE,EAAQ,MAAM,EAC7BN,EAAqBM,EAAQ,YAAY,EAEzC,MAAMC,EAAY,IAAM,CACtBxB,EAAW,EAAI,EACfa,EAAW,EAAK,CAAA,EAEZY,EAAU,IAAMzB,EAAW,EAAK,EAChC0B,EAAY,IAAMjB,EAAW,EAAI,EACjCkB,EAAY,IAAMd,EAAW,EAAI,EACjCe,EAAY,IAAMrB,EAAW,EAAI,EACjCsB,EAAW,IAAMtB,EAAW,EAAK,EACjCuB,EAAU,IAAM,CACpB9B,EAAW,EAAK,EAChBe,EAAS,EAAI,CAAA,EAETgB,EAAmB,IAAM5B,EAAYoB,EAAQ,QAAQ,EACrDS,EAAe,IAAM3B,EAAekB,EAAQ,WAAW,EACvDU,EAAiB,IAAM,CAC3Bd,EAAcI,EAAQ,KAAK,EAC3BF,EAAeE,EAAQ,MAAM,CAAA,EAEzBW,EAAe,IAAMjB,EAAqBM,EAAQ,YAAY,EAC9DY,EAAa,IAAMxB,EAAYzB,EAAiBqC,EAAQ,QAAQ,CAAC,EAEvE,OAAAA,EAAQ,iBAAiB,UAAWC,CAAS,EAC7CD,EAAQ,iBAAiB,QAASE,CAAO,EACzCF,EAAQ,iBAAiB,UAAWG,CAAS,EAC7CH,EAAQ,iBAAiB,WAAYY,CAAU,EAC/CZ,EAAQ,iBAAiB,UAAWI,CAAS,EAC7CJ,EAAQ,iBAAiB,UAAWK,CAAS,EAC7CL,EAAQ,iBAAiB,SAAUM,CAAQ,EAC3CN,EAAQ,iBAAiB,QAASO,CAAO,EACzCP,EAAQ,iBAAiB,iBAAkBQ,CAAgB,EAC3DR,EAAQ,iBAAiB,aAAcS,CAAY,EACnDT,EAAQ,iBAAiB,eAAgBU,CAAc,EACvDV,EAAQ,iBAAiB,aAAcW,CAAY,EAE5C,IAAM,CACXX,EAAQ,oBAAoB,UAAWC,CAAS,EAChDD,EAAQ,oBAAoB,QAASE,CAAO,EAC5CF,EAAQ,oBAAoB,UAAWG,CAAS,EAChDH,EAAQ,oBAAoB,WAAYY,CAAU,EAClDZ,EAAQ,oBAAoB,UAAWI,CAAS,EAChDJ,EAAQ,oBAAoB,UAAWK,CAAS,EAChDL,EAAQ,oBAAoB,SAAUM,CAAQ,EAC9CN,EAAQ,oBAAoB,QAASO,CAAO,EAC5CP,EAAQ,oBAAoB,iBAAkBQ,CAAgB,EAC9DR,EAAQ,oBAAoB,aAAcS,CAAY,EACtDT,EAAQ,oBAAoB,eAAgBU,CAAc,EAC1DV,EAAQ,oBAAoB,aAAcW,CAAY,CAAA,CACxD,EACC,CAAC1C,GAAUC,WAAS,cAAcD,CAAM,EAAGG,EAAY,KAAK,CAAC,EAEhE,MAAMyC,EAAO,SAAY,CACvB,MAAMb,EAAU1B,EAAW,QACtB0B,GAEL,MAAMA,EAAQ,KAAA,CAAK,EAGfc,EAAQ,IAAM,CACbxC,EAAW,SAChBA,EAAW,QAAQ,MAAA,CAAM,EAiC3B,MAAO,CACL,QAAAE,EACA,SAAAG,EACA,YAAAE,EACA,QAAAE,EACA,QAAAE,EACA,SAAAE,EACA,QAAAE,EACA,MAAAE,EACA,aAAAE,EACA,MAAAE,EACA,OAAAE,EAEA,KAAAgB,EACA,MAAAC,EACA,OA7Ca,MAAOC,EAAQ,CAACvC,IACzBuC,EAAcF,EAAA,EACXC,EAAA,EA4CP,KAzCYE,GAAiB,CACxB1C,EAAW,UAChBA,EAAW,QAAQ,YAAc,KAAK,IAAI,KAAK,IAAI0C,EAAM,CAAC,EAAGrC,CAAQ,EAAA,EAwCrE,aArCoBoC,GAAkB,CACjCzC,EAAW,UAChBA,EAAW,QAAQ,OAAS,KAAK,IAAI,KAAK,IAAIyC,EAAO,CAAC,EAAG,CAAC,EAAA,EAoC1D,KAjCW,IAAM,CACZzC,EAAW,UAChBA,EAAW,QAAQ,MAAQ,GAAA,EAgC3B,OA7Ba,IAAM,CACdA,EAAW,UAChBA,EAAW,QAAQ,MAAQ,GAAA,EA4B3B,mBAzB0ByC,GAAkB,CACvCzC,EAAW,UAChBA,EAAW,QAAQ,aAAeyC,EAAA,EAyBlC,GAAI,CAAC9C,GAAU,CAAE,IAAKG,CAAA,CAAY,CAEtC"}
1
+ {"version":3,"file":"useMediaControls.cjs","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":"uKAUA,IAAa,EAAoB,GAA2B,CAC1D,IAAI,EAA6B,EAAE,CAEnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,EAAE,EACvC,EAAS,CAAC,GAAG,EAAQ,CAAC,EAAW,MAAM,EAAE,CAAE,EAAW,IAAI,EAAE,CAAC,CAAC,CAEhE,OAAO,GA6GI,IAAqB,GAAG,IAAkB,CACrD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC5C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,IAAK,EAAO,GAAI,CACpB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,IAAK,EAAO,GAAI,CAGpB,EAAc,EAAA,aAA+B,CAC7C,GAAA,EAAA,EAAA,QAA6C,KAAK,CAElD,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAU,IAAA,EAAA,EAAA,UAAwB,EAAE,CACrC,CAAC,EAAa,IAAA,EAAA,EAAA,UAA2B,EAAE,CAC3C,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAU,IAAA,EAAA,EAAA,UAA4C,EAAE,CAAC,CAC1D,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAO,IAAA,EAAA,EAAA,UAAqB,GAAM,CACnC,CAAC,EAAc,IAAA,EAAA,EAAA,UAAiC,EAAE,CAElD,CAAC,EAAO,IAAA,EAAA,EAAA,UAA0B,GAAM,CACxC,CAAC,EAAQ,IAAA,EAAA,EAAA,UAA2B,EAAE,EAE5C,EAAA,EAAA,eAAgB,CACd,IAAM,EACJ,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAGrD,GAAI,CAAC,EAAS,OAEd,EAAW,QAAU,EACrB,EAAQ,IAAM,EAAQ,IAElB,EAAQ,MAAM,EAAQ,aAAa,OAAQ,EAAQ,KAAK,CACxD,EAAQ,OAAO,EAAQ,aAAa,QAAS,EAAQ,MAAM,CAE/D,EAAY,EAAQ,SAAS,CAC7B,EAAe,EAAQ,YAAY,CACnC,EAAW,GAAM,CACjB,EAAS,EAAQ,MAAM,CACvB,EAAc,EAAQ,MAAM,CAC5B,EAAe,EAAQ,OAAO,CAC9B,EAAqB,EAAQ,aAAa,CAE1C,IAAM,MAAkB,CACtB,EAAW,GAAK,CAChB,EAAW,GAAM,EAEb,MAAgB,EAAW,GAAM,CACjC,MAAkB,EAAW,GAAK,CAClC,MAAkB,EAAW,GAAK,CAClC,MAAkB,EAAW,GAAK,CAClC,MAAiB,EAAW,GAAM,CAClC,MAAgB,CACpB,EAAW,GAAM,CACjB,EAAS,GAAK,EAEV,MAAyB,EAAY,EAAQ,SAAS,CACtD,MAAqB,EAAe,EAAQ,YAAY,CACxD,MAAuB,CAC3B,EAAc,EAAQ,MAAM,CAC5B,EAAe,EAAQ,OAAO,EAE1B,MAAqB,EAAqB,EAAQ,aAAa,CAC/D,MAAmB,EAAY,EAAiB,EAAQ,SAAS,CAAC,CAexE,OAbA,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,QAAS,EAAQ,CAC1C,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,WAAY,EAAW,CAChD,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,UAAW,EAAU,CAC9C,EAAQ,iBAAiB,SAAU,EAAS,CAC5C,EAAQ,iBAAiB,QAAS,EAAQ,CAC1C,EAAQ,iBAAiB,iBAAkB,EAAiB,CAC5D,EAAQ,iBAAiB,aAAc,EAAa,CACpD,EAAQ,iBAAiB,eAAgB,EAAe,CACxD,EAAQ,iBAAiB,aAAc,EAAa,KAEvC,CACX,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,QAAS,EAAQ,CAC7C,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,WAAY,EAAW,CACnD,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,UAAW,EAAU,CACjD,EAAQ,oBAAoB,SAAU,EAAS,CAC/C,EAAQ,oBAAoB,QAAS,EAAQ,CAC7C,EAAQ,oBAAoB,iBAAkB,EAAiB,CAC/D,EAAQ,oBAAoB,aAAc,EAAa,CACvD,EAAQ,oBAAoB,eAAgB,EAAe,CAC3D,EAAQ,oBAAoB,aAAc,EAAa,GAExD,CAAC,GAAU,EAAA,SAAS,cAAc,EAAO,CAAE,EAAY,MAAM,CAAC,CAEjE,IAAM,EAAO,SAAY,CACvB,IAAM,EAAU,EAAW,QACtB,GAEL,MAAM,EAAQ,MAAM,EAGhB,MAAc,CACb,EAAW,SAChB,EAAW,QAAQ,OAAO,EAiC5B,MAAO,CACL,UACA,WACA,cACA,UACA,UACA,WACA,UACA,QACA,eACA,QACA,SAEA,OACA,QACA,OA7Ca,MAAO,EAAQ,CAAC,IACzB,EAAc,GAAM,CACjB,GAAO,CA4Cd,KAzCY,GAAiB,CACxB,EAAW,UAChB,EAAW,QAAQ,YAAc,KAAK,IAAI,KAAK,IAAI,EAAM,EAAE,CAAE,EAAS,GAwCtE,aArCoB,GAAkB,CACjC,EAAW,UAChB,EAAW,QAAQ,OAAS,KAAK,IAAI,KAAK,IAAI,EAAO,EAAE,CAAE,EAAE,GAoC3D,SAjCiB,CACZ,EAAW,UAChB,EAAW,QAAQ,MAAQ,KAgC3B,WA7BmB,CACd,EAAW,UAChB,EAAW,QAAQ,MAAQ,KA4B3B,mBAzB0B,GAAkB,CACvC,EAAW,UAChB,EAAW,QAAQ,aAAe,IAyBlC,GAAI,CAAC,GAAU,CAAE,IAAK,EAAa,CACpC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),c=()=>!1,o=e=>{const a=s.useCallback(t=>{const n=window.matchMedia(e);return n.addEventListener("change",t),()=>{n.removeEventListener("change",t)}},[e]),r=()=>window.matchMedia(e).matches;return s.useSyncExternalStore(a,r,c)};exports.useMediaQuery=o;
2
- //# sourceMappingURL=useMediaQuery.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>!1,n=n=>{let r=(0,e.useCallback)(e=>{let t=window.matchMedia(n);return t.addEventListener(`change`,e),()=>{t.removeEventListener(`change`,e)}},[n]);return(0,e.useSyncExternalStore)(r,()=>window.matchMedia(n).matches,t)};exports.useMediaQuery=n;
2
+ //# sourceMappingURL=useMediaQuery.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.cjs","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","getSnapshot","useSyncExternalStore"],"mappings":"yGAEMA,EAAoB,IAAM,GAgBnBC,EAAiBC,GAAkB,CAC9C,MAAMC,EAAYC,EAAAA,YACfC,GAAyB,CACxB,MAAMC,EAAa,OAAO,WAAWJ,CAAK,EAE1C,OAAAI,EAAW,iBAAiB,SAAUD,CAAQ,EACvC,IAAM,CACXC,EAAW,oBAAoB,SAAUD,CAAQ,CAAA,CACnD,EAEF,CAACH,CAAK,CAAA,EAGFK,EAAc,IAAM,OAAO,WAAWL,CAAK,EAAE,QAEnD,OAAOM,uBAAqBL,EAAWI,EAAaP,CAAiB,CACvE"}
1
+ {"version":3,"file":"useMediaQuery.cjs","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":"uEAEA,IAAM,MAA0B,GAgBnB,EAAiB,GAAkB,CAC9C,IAAM,GAAA,EAAA,EAAA,aACH,GAAyB,CACxB,IAAM,EAAa,OAAO,WAAW,EAAM,CAG3C,OADA,EAAW,iBAAiB,SAAU,EAAS,KAClC,CACX,EAAW,oBAAoB,SAAU,EAAS,GAGtD,CAAC,EAAM,CACR,CAID,OAAA,EAAA,EAAA,sBAA4B,MAFF,OAAO,WAAW,EAAM,CAAC,QAEC,EAAkB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),a=()=>{const e=typeof performance<"u"&&"memory"in performance&&!!performance.memory,[t,o]=r.useState(e?performance.memory:{jsHeapSizeLimit:0,totalJSHeapSize:0,usedJSHeapSize:0});return r.useEffect(()=>{if(!e)return;const n=setInterval(()=>o(performance.memory),1e3);return()=>clearInterval(n)},[]),{supported:e,value:t}};exports.useMemory=a;
2
- //# sourceMappingURL=useMemory.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{let t=typeof performance<`u`&&`memory`in performance&&!!performance.memory,[n,r]=(0,e.useState)(t?performance.memory:{jsHeapSizeLimit:0,totalJSHeapSize:0,usedJSHeapSize:0});return(0,e.useEffect)(()=>{if(!t)return;let e=setInterval(()=>r(performance.memory),1e3);return()=>clearInterval(e)},[]),{supported:t,value:n}};exports.useMemory=t;
2
+ //# sourceMappingURL=useMemory.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMemory.cjs","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":"yGAiCaA,EAAY,IAAuB,CAC9C,MAAMC,EACJ,OAAO,YAAgB,KAAe,WAAY,aAAe,CAAC,CAAC,YAAY,OAE3E,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SACxBH,EACI,YAAY,OACZ,CACE,gBAAiB,EACjB,gBAAiB,EACjB,eAAgB,CAAA,CAClB,EAGNI,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACJ,EAAW,OAChB,MAAMK,EAAa,YAAY,IAAMH,EAAS,YAAY,MAAM,EAAG,GAAI,EACvE,MAAO,IAAM,cAAcG,CAAU,CAAA,EACpC,EAAE,EAEE,CAAE,UAAAL,EAAW,MAAAC,CAAA,CACtB"}
1
+ {"version":3,"file":"useMemory.cjs","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":"uEAiCA,IAAa,MAAmC,CAC9C,IAAM,EACJ,OAAO,YAAgB,KAAe,WAAY,aAAe,CAAC,CAAC,YAAY,OAE3E,CAAC,EAAO,IAAA,EAAA,EAAA,UACZ,EACI,YAAY,OACZ,CACE,gBAAiB,EACjB,gBAAiB,EACjB,eAAgB,EACjB,CACN,CAQD,OANA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAW,OAChB,IAAM,EAAa,gBAAkB,EAAS,YAAY,OAAO,CAAE,IAAK,CACxE,UAAa,cAAc,EAAW,EACrC,EAAE,CAAC,CAEC,CAAE,YAAW,QAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),o=(e,n)=>{if(typeof e=="function")return e(n);typeof e=="object"&&e!==null&&"current"in e&&(e.current=n)},s=(...e)=>{const n=new Map;return u=>{if(e.forEach(c=>{const t=o(c,u);t&&n.set(c,t)}),!!n.size)return()=>{e.forEach(c=>{const t=n.get(c);t&&typeof t=="function"?t():o(c,null)}),n.clear()}}},i=(...e)=>r.useCallback(s(...e),e);exports.assignRef=o;exports.mergeRefs=s;exports.useMergedRef=i;
2
- //# sourceMappingURL=useMergedRef.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(e,t)=>{if(typeof e==`function`)return e(t);typeof e==`object`&&e&&`current`in e&&(e.current=t)},n=(...e)=>{let n=new Map;return r=>{if(e.forEach(e=>{let i=t(e,r);i&&n.set(e,i)}),n.size)return()=>{e.forEach(e=>{let r=n.get(e);r&&typeof r==`function`?r():t(e,null)}),n.clear()}}},r=(...t)=>(0,e.useCallback)(n(...t),t);exports.assignRef=t,exports.mergeRefs=n,exports.useMergedRef=r;
2
+ //# sourceMappingURL=useMergedRef.cjs.map