@siberiacancode/reactuse 0.3.15 → 0.3.18

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 (711) 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/useAutoScroll/useAutoScroll.d.ts +3 -5
  696. package/dist/types/hooks/useClickOutside/useClickOutside.d.ts +3 -5
  697. package/dist/types/hooks/useDoubleClick/useDoubleClick.d.ts +3 -5
  698. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  699. package/dist/types/hooks/useField/useField.d.ts +2 -2
  700. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  701. package/dist/types/hooks/useKeyPressEvent/useKeyPressEvent.d.ts +2 -4
  702. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +6 -8
  703. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  704. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  705. package/dist/types/hooks/usePermission/usePermission.d.ts +1 -1
  706. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +1 -1
  707. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  708. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  709. package/package.json +5 -5
  710. package/dist/cjs/index.cjs.map +0 -1
  711. package/dist/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedRef.cjs","sources":["../../../../src/hooks/useMergedRef/useMergedRef.ts"],"sourcesContent":["import type { Ref, RefCallback } from 'react';\n\nimport { useCallback } from 'react';\n\nexport const assignRef = <Element>(\n ref: Ref<Element>,\n value: Element\n): ReturnType<RefCallback<Element>> => {\n if (typeof ref === 'function') return ref(value);\n if (typeof ref === 'object' && ref !== null && 'current' in ref) ref.current = value;\n};\n\nexport const mergeRefs = <Element>(...refs: Ref<Element>[]): RefCallback<Element> => {\n const cleanupMap = new Map<Ref<Element>, Exclude<ReturnType<RefCallback<Element>>, void>>();\n\n return (node: Element | null) => {\n refs.forEach((ref) => {\n const cleanup = assignRef(ref, node);\n if (cleanup) cleanupMap.set(ref, cleanup);\n });\n\n if (!cleanupMap.size) return;\n\n return () => {\n refs.forEach((ref) => {\n const cleanup = cleanupMap.get(ref);\n if (cleanup && typeof cleanup === 'function') cleanup();\n else assignRef(ref, null);\n });\n cleanupMap.clear();\n };\n };\n};\n\n/**\n * @name useMergedRef\n * @description - Hook that merges multiple refs into a single ref\n * @category State\n * @usage medium\n *\n * @template Element The element type\n * @param {...Ref<Element>[]} refs The refs to merge\n * @returns {RefCallback<Element>} A memoized ref callback that assigns to all provided refs\n *\n * @example\n * const mergedRef = useMergedRef(firstRef, secondRef);\n */\nexport const useMergedRef = <Element>(...refs: Ref<Element>[]) =>\n useCallback(mergeRefs(...refs), refs);\n"],"names":["assignRef","ref","value","mergeRefs","refs","cleanupMap","node","cleanup","useMergedRef","useCallback"],"mappings":"yGAIaA,EAAY,CACvBC,EACAC,IACqC,CACrC,GAAI,OAAOD,GAAQ,WAAY,OAAOA,EAAIC,CAAK,EAC3C,OAAOD,GAAQ,UAAYA,IAAQ,MAAQ,YAAaA,MAAS,QAAUC,EACjF,EAEaC,EAAY,IAAaC,IAA+C,CACnF,MAAMC,MAAiB,IAEvB,OAAQC,GAAyB,CAM/B,GALAF,EAAK,QAASH,GAAQ,CACpB,MAAMM,EAAUP,EAAUC,EAAKK,CAAI,EAC/BC,GAASF,EAAW,IAAIJ,EAAKM,CAAO,CAAA,CACzC,EAEG,EAACF,EAAW,KAEhB,MAAO,IAAM,CACXD,EAAK,QAASH,GAAQ,CACpB,MAAMM,EAAUF,EAAW,IAAIJ,CAAG,EAC9BM,GAAW,OAAOA,GAAY,WAAYA,EAAA,EACzCP,EAAUC,EAAK,IAAI,CAAA,CACzB,EACDI,EAAW,MAAA,CAAM,CACnB,CAEJ,EAeaG,EAAe,IAAaJ,IACvCK,EAAAA,YAAYN,EAAU,GAAGC,CAAI,EAAGA,CAAI"}
1
+ {"version":3,"file":"useMergedRef.cjs","names":[],"sources":["../../../../src/hooks/useMergedRef/useMergedRef.ts"],"sourcesContent":["import type { Ref, RefCallback } from 'react';\n\nimport { useCallback } from 'react';\n\nexport const assignRef = <Element>(\n ref: Ref<Element>,\n value: Element\n): ReturnType<RefCallback<Element>> => {\n if (typeof ref === 'function') return ref(value);\n if (typeof ref === 'object' && ref !== null && 'current' in ref) ref.current = value;\n};\n\nexport const mergeRefs = <Element>(...refs: Ref<Element>[]): RefCallback<Element> => {\n const cleanupMap = new Map<Ref<Element>, Exclude<ReturnType<RefCallback<Element>>, void>>();\n\n return (node: Element | null) => {\n refs.forEach((ref) => {\n const cleanup = assignRef(ref, node);\n if (cleanup) cleanupMap.set(ref, cleanup);\n });\n\n if (!cleanupMap.size) return;\n\n return () => {\n refs.forEach((ref) => {\n const cleanup = cleanupMap.get(ref);\n if (cleanup && typeof cleanup === 'function') cleanup();\n else assignRef(ref, null);\n });\n cleanupMap.clear();\n };\n };\n};\n\n/**\n * @name useMergedRef\n * @description - Hook that merges multiple refs into a single ref\n * @category State\n * @usage medium\n *\n * @template Element The element type\n * @param {...Ref<Element>[]} refs The refs to merge\n * @returns {RefCallback<Element>} A memoized ref callback that assigns to all provided refs\n *\n * @example\n * const mergedRef = useMergedRef(firstRef, secondRef);\n */\nexport const useMergedRef = <Element>(...refs: Ref<Element>[]) =>\n useCallback(mergeRefs(...refs), refs);\n"],"mappings":"uEAIA,IAAa,GACX,EACA,IACqC,CACrC,GAAI,OAAO,GAAQ,WAAY,OAAO,EAAI,EAAM,CAC5C,OAAO,GAAQ,UAAY,GAAgB,YAAa,IAAK,EAAI,QAAU,IAGpE,GAAsB,GAAG,IAA+C,CACnF,IAAM,EAAa,IAAI,IAEvB,MAAQ,IAAyB,CAC/B,KAAK,QAAS,GAAQ,CACpB,IAAM,EAAU,EAAU,EAAK,EAAK,CAChC,GAAS,EAAW,IAAI,EAAK,EAAQ,EACzC,CAEG,EAAW,KAEhB,UAAa,CACX,EAAK,QAAS,GAAQ,CACpB,IAAM,EAAU,EAAW,IAAI,EAAI,CAC/B,GAAW,OAAO,GAAY,WAAY,GAAS,CAClD,EAAU,EAAK,KAAK,EACzB,CACF,EAAW,OAAO,IAkBX,GAAyB,GAAG,KAAA,EAAA,EAAA,aAC3B,EAAU,GAAG,EAAK,CAAE,EAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),u=e=>t.useEffect(e,[]);exports.useMount=u;
2
- //# sourceMappingURL=useMount.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>(0,e.useEffect)(t,[]);exports.useMount=t;
2
+ //# sourceMappingURL=useMount.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMount.cjs","sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect } from 'react';\n\n/**\n * @name useMount\n * @description - Hook that executes a callback when the component mounts\n * @category Lifecycle\n * @usage necessary\n *\n * @param {EffectCallback} effect The callback to execute\n *\n * @example\n * useMount(() => console.log('This effect runs on the initial render'));\n */\nexport const useMount = (effect: EffectCallback) => useEffect(effect, []);\n"],"names":["useMount","effect","useEffect"],"mappings":"yGAeaA,EAAYC,GAA2BC,EAAAA,UAAUD,EAAQ,CAAA,CAAE"}
1
+ {"version":3,"file":"useMount.cjs","names":[],"sources":["../../../../src/hooks/useMount/useMount.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect } from 'react';\n\n/**\n * @name useMount\n * @description - Hook that executes a callback when the component mounts\n * @category Lifecycle\n * @usage necessary\n *\n * @param {EffectCallback} effect The callback to execute\n *\n * @example\n * useMount(() => console.log('This effect runs on the initial render'));\n */\nexport const useMount = (effect: EffectCallback) => useEffect(effect, []);\n"],"mappings":"uEAeA,IAAa,EAAY,IAAA,EAAA,EAAA,WAAqC,EAAQ,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),h=require("../useRefState/useRefState.cjs"),M=require("../useRerender/useRerender.cjs"),a=require("../../utils/helpers/isTarget.cjs"),S=((...s)=>{const n=a.isTarget(s[0])?s[0]:void 0,m=n?s[1]:s[0],t=l.useRef({x:0,y:0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0,clientX:0,clientY:0}),d=l.useRef(m);d.current=m;const X=l.useRef(!1),P=M.useRerender(),u=h.useRefState(),Y=(o,c)=>{t.current=o,d.current?.(o,c),X.current&&P()},f=()=>(X.current=!0,t.current);return l.useEffect(()=>{const o=e=>{const i=n?a.isTarget.getElement(n):u.current,r={x:e.pageX,y:e.pageY,clientX:e.clientX,clientY:e.clientY,elementX:e.pageX,elementY:e.pageY,elementPositionX:0,elementPositionY:0};if(i){const{left:R,top:p}=i.getBoundingClientRect(),g=R+window.scrollX,w=p+window.scrollY,E=e.pageX-g,y=e.pageY-w;r.elementX=E,r.elementY=y,r.elementPositionX=g,r.elementPositionY=w}Y(r,e)},c=e=>{const i={...t.current,x:t.current.x+window.scrollX-t.current.elementPositionX,y:t.current.y+window.scrollY-t.current.elementPositionY,elementPositionX:window.scrollX,elementPositionY:window.scrollY};Y(i,e)};return document.addEventListener("scroll",c,{passive:!0}),document.addEventListener("mousemove",o),()=>{document.removeEventListener("scroll",c),document.removeEventListener("mousemove",o)}},[u.state,n&&a.isTarget.getRawElement(n)]),n?{snapshot:t.current,watch:f}:{ref:u,snapshot:t.current,watch:f}});exports.useMouse=S;
2
- //# sourceMappingURL=useMouse.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`),n=require(`../useRerender/useRerender.cjs`);let r=require(`react`);var i=((...i)=>{let a=e.isTarget(i[0])?i[0]:void 0,o=a?i[1]:i[0],s=(0,r.useRef)({x:0,y:0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0,clientX:0,clientY:0}),c=(0,r.useRef)(o);c.current=o;let l=(0,r.useRef)(!1),u=n.useRerender(),d=t.useRefState(),f=(e,t)=>{s.current=e,c.current?.(e,t),l.current&&u()},p=()=>(l.current=!0,s.current);return(0,r.useEffect)(()=>{let t=t=>{let n=a?e.isTarget.getElement(a):d.current,r={x:t.pageX,y:t.pageY,clientX:t.clientX,clientY:t.clientY,elementX:t.pageX,elementY:t.pageY,elementPositionX:0,elementPositionY:0};if(n){let{left:e,top:i}=n.getBoundingClientRect(),a=e+window.scrollX,o=i+window.scrollY,s=t.pageX-a,c=t.pageY-o;r.elementX=s,r.elementY=c,r.elementPositionX=a,r.elementPositionY=o}f(r,t)},n=e=>{f({...s.current,x:s.current.x+window.scrollX-s.current.elementPositionX,y:s.current.y+window.scrollY-s.current.elementPositionY,elementPositionX:window.scrollX,elementPositionY:window.scrollY},e)};return document.addEventListener(`scroll`,n,{passive:!0}),document.addEventListener(`mousemove`,t),()=>{document.removeEventListener(`scroll`,n),document.removeEventListener(`mousemove`,t)}},[d.state,a&&e.isTarget.getRawElement(a)]),a?{snapshot:s.current,watch:p}:{ref:d,snapshot:s.current,watch:p}});exports.useMouse=i;
2
+ //# sourceMappingURL=useMouse.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMouse.cjs","sources":["../../../../src/hooks/useMouse/useMouse.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use mouse return type */\nexport interface UseMouseReturn {\n /** The latest mouse value snapshot */\n snapshot: UseMouseValue;\n /** Function to enable subscriptions and rerender on next updates */\n watch: () => UseMouseValue;\n}\n\n/** The use mouse value type */\nexport interface UseMouseValue {\n /** The current mouse client x position */\n clientX: number;\n /** The current mouse client y position */\n clientY: number;\n /** The current element position x */\n elementPositionX: number;\n /** The current element position y */\n elementPositionY: number;\n /** The current element x position */\n elementX: number;\n /** The current element y position */\n elementY: number;\n /** The current mouse x position */\n x: number;\n /** The current mouse y position */\n y: number;\n}\n\nexport type UseMouseCallback = (value: UseMouseValue, event: Event) => void;\n\nexport interface UseMouse {\n (target: HookTarget, callback?: UseMouseCallback): UseMouseReturn;\n\n <Target extends Element>(\n callback?: UseMouseCallback,\n target?: never\n ): UseMouseReturn & {\n ref: StateRef<Target>;\n };\n\n (target?: Window, callback?: UseMouseCallback): UseMouseReturn;\n}\n\n/**\n * @name useMouse\n * @description - Hook that manages a mouse position\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget} [target=window] The target element to manage the mouse position for\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn} An object with mouse value controls\n *\n * @example\n * const mouse = useMouse(ref);\n *\n * @overload\n * @template Target The target element\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn & { ref: StateRef<Target> }} An object with mouse value controls and a ref\n *\n * @example\n * const mouse = useMouse<HTMLDivElement>();\n */\nexport const useMouse = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const callback = (target ? params[1] : params[0]) as UseMouseCallback | undefined;\n\n const snapshotRef = useRef<UseMouseValue>({\n x: 0,\n y: 0,\n elementX: 0,\n elementY: 0,\n elementPositionX: 0,\n elementPositionY: 0,\n clientX: 0,\n clientY: 0\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const internalRef = useRefState<Element>();\n\n const updateValue = (nextValue: UseMouseValue, event: Event) => {\n snapshotRef.current = nextValue;\n internalCallbackRef.current?.(nextValue, event);\n if (watchingRef.current) rerender();\n };\n\n const watch = () => {\n watchingRef.current = true;\n return snapshotRef.current;\n };\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as\n | Element\n | undefined;\n\n const updatedValue: UseMouseValue = {\n x: event.pageX,\n y: event.pageY,\n clientX: event.clientX,\n clientY: event.clientY,\n elementX: event.pageX,\n elementY: event.pageY,\n elementPositionX: 0,\n elementPositionY: 0\n };\n\n if (element) {\n const { left, top } = element.getBoundingClientRect();\n const elementPositionX = left + window.scrollX;\n const elementPositionY = top + window.scrollY;\n const elementX = event.pageX - elementPositionX;\n const elementY = event.pageY - elementPositionY;\n\n updatedValue.elementX = elementX;\n updatedValue.elementY = elementY;\n updatedValue.elementPositionX = elementPositionX;\n updatedValue.elementPositionY = elementPositionY;\n }\n\n updateValue(updatedValue, event);\n };\n\n const onScroll = (event: Event) => {\n const updatedValue: UseMouseValue = {\n ...snapshotRef.current,\n x: snapshotRef.current.x + window.scrollX - snapshotRef.current.elementPositionX,\n y: snapshotRef.current.y + window.scrollY - snapshotRef.current.elementPositionY,\n elementPositionX: window.scrollX,\n elementPositionY: window.scrollY\n };\n updateValue(updatedValue, event);\n };\n\n document.addEventListener('scroll', onScroll, { passive: true });\n document.addEventListener('mousemove', onMouseMove);\n return () => {\n document.removeEventListener('scroll', onScroll);\n document.removeEventListener('mousemove', onMouseMove);\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { snapshot: snapshotRef.current, watch };\n return {\n ref: internalRef,\n snapshot: snapshotRef.current,\n watch\n };\n}) as UseMouse;\n"],"names":["useMouse","params","target","isTarget","callback","snapshotRef","useRef","internalCallbackRef","watchingRef","rerender","useRerender","internalRef","useRefState","updateValue","nextValue","event","watch","useEffect","onMouseMove","element","updatedValue","left","top","elementPositionX","elementPositionY","elementX","elementY","onScroll"],"mappings":"+OA4EaA,GAAY,IAAIC,IAAkB,CAC7C,MAAMC,EAASC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAC3CG,EAAYF,EAASD,EAAO,CAAC,EAAIA,EAAO,CAAC,EAEzCI,EAAcC,EAAAA,OAAsB,CACxC,EAAG,EACH,EAAG,EACH,SAAU,EACV,SAAU,EACV,iBAAkB,EAClB,iBAAkB,EAClB,QAAS,EACT,QAAS,CAAA,CACV,EACKC,EAAsBD,EAAAA,OAAOF,CAAQ,EAC3CG,EAAoB,QAAUH,EAC9B,MAAMI,EAAcF,EAAAA,OAAO,EAAK,EAC1BG,EAAWC,EAAAA,YAAA,EAEXC,EAAcC,EAAAA,YAAA,EAEdC,EAAc,CAACC,EAA0BC,IAAiB,CAC9DV,EAAY,QAAUS,EACtBP,EAAoB,UAAUO,EAAWC,CAAK,EAC1CP,EAAY,SAASC,EAAA,CAAS,EAG9BO,EAAQ,KACZR,EAAY,QAAU,GACfH,EAAY,SAuDrB,OApDAY,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAeH,GAAsB,CACzC,MAAMI,EAAWjB,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIS,EAAY,QAI9DS,EAA8B,CAClC,EAAGL,EAAM,MACT,EAAGA,EAAM,MACT,QAASA,EAAM,QACf,QAASA,EAAM,QACf,SAAUA,EAAM,MAChB,SAAUA,EAAM,MAChB,iBAAkB,EAClB,iBAAkB,CAAA,EAGpB,GAAII,EAAS,CACX,KAAM,CAAE,KAAAE,EAAM,IAAAC,GAAQH,EAAQ,sBAAA,EACxBI,EAAmBF,EAAO,OAAO,QACjCG,EAAmBF,EAAM,OAAO,QAChCG,EAAWV,EAAM,MAAQQ,EACzBG,EAAWX,EAAM,MAAQS,EAE/BJ,EAAa,SAAWK,EACxBL,EAAa,SAAWM,EACxBN,EAAa,iBAAmBG,EAChCH,EAAa,iBAAmBI,CAAA,CAGlCX,EAAYO,EAAcL,CAAK,CAAA,EAG3BY,EAAYZ,GAAiB,CACjC,MAAMK,EAA8B,CAClC,GAAGf,EAAY,QACf,EAAGA,EAAY,QAAQ,EAAI,OAAO,QAAUA,EAAY,QAAQ,iBAChE,EAAGA,EAAY,QAAQ,EAAI,OAAO,QAAUA,EAAY,QAAQ,iBAChE,iBAAkB,OAAO,QACzB,iBAAkB,OAAO,OAAA,EAE3BQ,EAAYO,EAAcL,CAAK,CAAA,EAGjC,gBAAS,iBAAiB,SAAUY,EAAU,CAAE,QAAS,GAAM,EAC/D,SAAS,iBAAiB,YAAaT,CAAW,EAC3C,IAAM,CACX,SAAS,oBAAoB,SAAUS,CAAQ,EAC/C,SAAS,oBAAoB,YAAaT,CAAW,CAAA,CACvD,EACC,CAACP,EAAY,MAAOT,GAAUC,EAAAA,SAAS,cAAcD,CAAM,CAAC,CAAC,EAE5DA,EAAe,CAAE,SAAUG,EAAY,QAAS,MAAAW,CAAA,EAC7C,CACL,IAAKL,EACL,SAAUN,EAAY,QACtB,MAAAW,CAAA,CAEJ"}
1
+ {"version":3,"file":"useMouse.cjs","names":[],"sources":["../../../../src/hooks/useMouse/useMouse.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\nimport { useRerender } from '../useRerender/useRerender';\n\n/** The use mouse return type */\nexport interface UseMouseReturn {\n /** The latest mouse value snapshot */\n snapshot: UseMouseValue;\n /** Function to enable subscriptions and rerender on next updates */\n watch: () => UseMouseValue;\n}\n\n/** The use mouse value type */\nexport interface UseMouseValue {\n /** The current mouse client x position */\n clientX: number;\n /** The current mouse client y position */\n clientY: number;\n /** The current element position x */\n elementPositionX: number;\n /** The current element position y */\n elementPositionY: number;\n /** The current element x position */\n elementX: number;\n /** The current element y position */\n elementY: number;\n /** The current mouse x position */\n x: number;\n /** The current mouse y position */\n y: number;\n}\n\nexport type UseMouseCallback = (value: UseMouseValue, event: Event) => void;\n\nexport interface UseMouse {\n (target: HookTarget, callback?: UseMouseCallback): UseMouseReturn;\n\n <Target extends Element>(\n callback?: UseMouseCallback,\n target?: never\n ): UseMouseReturn & {\n ref: StateRef<Target>;\n };\n\n (target?: Window, callback?: UseMouseCallback): UseMouseReturn;\n}\n\n/**\n * @name useMouse\n * @description - Hook that manages a mouse position\n * @category Sensors\n * @usage low\n *\n * @overload\n * @param {HookTarget} [target=window] The target element to manage the mouse position for\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn} An object with mouse value controls\n *\n * @example\n * const mouse = useMouse(ref);\n *\n * @overload\n * @template Target The target element\n * @param {(value: UseMouseValue, event: Event) => void} [callback] The callback to invoke on mouse updates\n * @returns {UseMouseReturn & { ref: StateRef<Target> }} An object with mouse value controls and a ref\n *\n * @example\n * const mouse = useMouse<HTMLDivElement>();\n */\nexport const useMouse = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const callback = (target ? params[1] : params[0]) as UseMouseCallback | undefined;\n\n const snapshotRef = useRef<UseMouseValue>({\n x: 0,\n y: 0,\n elementX: 0,\n elementY: 0,\n elementPositionX: 0,\n elementPositionY: 0,\n clientX: 0,\n clientY: 0\n });\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const watchingRef = useRef(false);\n const rerender = useRerender();\n\n const internalRef = useRefState<Element>();\n\n const updateValue = (nextValue: UseMouseValue, event: Event) => {\n snapshotRef.current = nextValue;\n internalCallbackRef.current?.(nextValue, event);\n if (watchingRef.current) rerender();\n };\n\n const watch = () => {\n watchingRef.current = true;\n return snapshotRef.current;\n };\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as\n | Element\n | undefined;\n\n const updatedValue: UseMouseValue = {\n x: event.pageX,\n y: event.pageY,\n clientX: event.clientX,\n clientY: event.clientY,\n elementX: event.pageX,\n elementY: event.pageY,\n elementPositionX: 0,\n elementPositionY: 0\n };\n\n if (element) {\n const { left, top } = element.getBoundingClientRect();\n const elementPositionX = left + window.scrollX;\n const elementPositionY = top + window.scrollY;\n const elementX = event.pageX - elementPositionX;\n const elementY = event.pageY - elementPositionY;\n\n updatedValue.elementX = elementX;\n updatedValue.elementY = elementY;\n updatedValue.elementPositionX = elementPositionX;\n updatedValue.elementPositionY = elementPositionY;\n }\n\n updateValue(updatedValue, event);\n };\n\n const onScroll = (event: Event) => {\n const updatedValue: UseMouseValue = {\n ...snapshotRef.current,\n x: snapshotRef.current.x + window.scrollX - snapshotRef.current.elementPositionX,\n y: snapshotRef.current.y + window.scrollY - snapshotRef.current.elementPositionY,\n elementPositionX: window.scrollX,\n elementPositionY: window.scrollY\n };\n updateValue(updatedValue, event);\n };\n\n document.addEventListener('scroll', onScroll, { passive: true });\n document.addEventListener('mousemove', onMouseMove);\n return () => {\n document.removeEventListener('scroll', onScroll);\n document.removeEventListener('mousemove', onMouseMove);\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { snapshot: snapshotRef.current, watch };\n return {\n ref: internalRef,\n snapshot: snapshotRef.current,\n watch\n };\n}) as UseMouse;\n"],"mappings":"mNA4EA,IAAa,IAAa,GAAG,IAAkB,CAC7C,IAAM,EAAS,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAC3C,EAAY,EAAS,EAAO,GAAK,EAAO,GAExC,GAAA,EAAA,EAAA,QAAoC,CACxC,EAAG,EACH,EAAG,EACH,SAAU,EACV,SAAU,EACV,iBAAkB,EAClB,iBAAkB,EAClB,QAAS,EACT,QAAS,EACV,CAAC,CACI,GAAA,EAAA,EAAA,QAA6B,EAAS,CAC5C,EAAoB,QAAU,EAC9B,IAAM,GAAA,EAAA,EAAA,QAAqB,GAAM,CAC3B,EAAW,EAAA,aAAa,CAExB,EAAc,EAAA,aAAsB,CAEpC,GAAe,EAA0B,IAAiB,CAC9D,EAAY,QAAU,EACtB,EAAoB,UAAU,EAAW,EAAM,CAC3C,EAAY,SAAS,GAAU,EAG/B,OACJ,EAAY,QAAU,GACf,EAAY,SAwDrB,OArDA,EAAA,EAAA,eAAgB,CACd,IAAM,EAAe,GAAsB,CACzC,IAAM,EAAW,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QAI9D,EAA8B,CAClC,EAAG,EAAM,MACT,EAAG,EAAM,MACT,QAAS,EAAM,QACf,QAAS,EAAM,QACf,SAAU,EAAM,MAChB,SAAU,EAAM,MAChB,iBAAkB,EAClB,iBAAkB,EACnB,CAED,GAAI,EAAS,CACX,GAAM,CAAE,OAAM,OAAQ,EAAQ,uBAAuB,CAC/C,EAAmB,EAAO,OAAO,QACjC,EAAmB,EAAM,OAAO,QAChC,EAAW,EAAM,MAAQ,EACzB,EAAW,EAAM,MAAQ,EAE/B,EAAa,SAAW,EACxB,EAAa,SAAW,EACxB,EAAa,iBAAmB,EAChC,EAAa,iBAAmB,EAGlC,EAAY,EAAc,EAAM,EAG5B,EAAY,GAAiB,CAQjC,EAPoC,CAClC,GAAG,EAAY,QACf,EAAG,EAAY,QAAQ,EAAI,OAAO,QAAU,EAAY,QAAQ,iBAChE,EAAG,EAAY,QAAQ,EAAI,OAAO,QAAU,EAAY,QAAQ,iBAChE,iBAAkB,OAAO,QACzB,iBAAkB,OAAO,QAC1B,CACyB,EAAM,EAKlC,OAFA,SAAS,iBAAiB,SAAU,EAAU,CAAE,QAAS,GAAM,CAAC,CAChE,SAAS,iBAAiB,YAAa,EAAY,KACtC,CACX,SAAS,oBAAoB,SAAU,EAAS,CAChD,SAAS,oBAAoB,YAAa,EAAY,GAEvD,CAAC,EAAY,MAAO,GAAU,EAAA,SAAS,cAAc,EAAO,CAAC,CAAC,CAE7D,EAAe,CAAE,SAAU,EAAY,QAAS,QAAO,CACpD,CACL,IAAK,EACL,SAAU,EAAY,QACtB,QACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),T=(E,a)=>{const[m,s]=n.useState(!1),[g,o]=n.useState(!1),[h,f]=n.useState(!1),[I,S]=n.useState(null),[M,D]=n.useState(null),y=(t,r)=>{s(!0);const e=r?.attempt??0;return E(t).then(c=>(r?.onSuccess?.(c),D(c),f(!0),s(!1),S(null),o(!1),c)).catch(c=>{const l=typeof r?.retry=="function"?r?.retry(e,c):r?.retry,u=typeof r?.retryDelay=="function"?r?.retryDelay(e,c):r?.retryDelay;if(typeof l=="boolean"&&l){if(u){setTimeout(()=>y(t,{...r,attempt:e+1}),u);return}return y(t,{...r,attempt:e+1})}if(l&&l>e){if(u){setTimeout(()=>y(t,{...r,attempt:e+1}),u);return}return y(t,{...r,attempt:e+1})}if(D(null),f(!1),s(!1),S(c),o(!0),!r?.onError)throw c;r?.onError?.(c)})};return{data:M,error:I,mutate:(t,r)=>{const e={retry:r?.retry??a?.retry,retryDelay:r?.retryDelay??a?.retryDelay,onSuccess:r?.onSuccess??a?.onSuccess,onError:r?.onError??a?.onError};y(t,e)},mutateAsync:async(t,r)=>{const e={retry:r?.retry??a?.retry,retryDelay:r?.retryDelay??a?.retryDelay,onSuccess:r?.onSuccess??a?.onSuccess,onError:r?.onError??a?.onError};return y(t,e)},isLoading:m,isError:g,isSuccess:h}};exports.useMutation=T;
2
- //# sourceMappingURL=useMutation.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=(t,n)=>{let[r,i]=(0,e.useState)(!1),[a,o]=(0,e.useState)(!1),[s,c]=(0,e.useState)(!1),[l,u]=(0,e.useState)(null),[d,f]=(0,e.useState)(null),p=(e,n)=>{i(!0);let r=n?.attempt??0;return t(e).then(e=>(n?.onSuccess?.(e),f(e),c(!0),i(!1),u(null),o(!1),e)).catch(t=>{let a=typeof n?.retry==`function`?n?.retry(r,t):n?.retry,s=typeof n?.retryDelay==`function`?n?.retryDelay(r,t):n?.retryDelay;if(typeof a==`boolean`&&a){if(s){setTimeout(()=>p(e,{...n,attempt:r+1}),s);return}return p(e,{...n,attempt:r+1})}if(a&&a>r){if(s){setTimeout(()=>p(e,{...n,attempt:r+1}),s);return}return p(e,{...n,attempt:r+1})}if(f(null),c(!1),i(!1),u(t),o(!0),!n?.onError)throw t;n?.onError?.(t)})};return{data:d,error:l,mutate:(e,t)=>{p(e,{retry:t?.retry??n?.retry,retryDelay:t?.retryDelay??n?.retryDelay,onSuccess:t?.onSuccess??n?.onSuccess,onError:t?.onError??n?.onError})},mutateAsync:async(e,t)=>p(e,{retry:t?.retry??n?.retry,retryDelay:t?.retryDelay??n?.retryDelay,onSuccess:t?.onSuccess??n?.onSuccess,onError:t?.onError??n?.onError}),isLoading:r,isError:a,isSuccess:s}};exports.useMutation=t;
2
+ //# sourceMappingURL=useMutation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.cjs","sources":["../../../../src/hooks/useMutation/useMutation.ts"],"sourcesContent":["import { useState } from \"react\";\r\n\r\n/* The type of the options */\r\ninterface UseMutationOptions<Data> {\r\n /* The retry count of requests */\r\n retry?: ((failureCount: number, error: Error) => boolean) | boolean | number;\r\n /* The retry delay of requests */\r\n retryDelay?: ((retry: number, error: Error) => number) | number;\r\n /* The callback function to be invoked on error */\r\n onError?: (error: Error) => void;\r\n /* The callback function to be invoked on success */\r\n onSuccess?: (data: Data) => void;\r\n}\r\n\r\n/* The use mutation return type */\r\ninterface UseMutationReturn<Body, Data> {\r\n /* The data of the mutation */\r\n data: Data | null;\r\n /* The error of the mutation */\r\n error: Error | null;\r\n /* The error state of the mutation */\r\n isError: boolean;\r\n /* The loading state of the mutation */\r\n isLoading: boolean;\r\n /* The success state of the mutation */\r\n isSuccess: boolean;\r\n /* The mutate function */\r\n mutate: (body?: Body, options?: UseMutationOptions<Data>) => void;\r\n /* The mutate async function */\r\n mutateAsync: (\r\n body?: Body,\r\n options?: UseMutationOptions<Data>\r\n ) => Promise<Data>;\r\n}\r\n\r\nexport interface RequestOptions<Data> extends UseMutationOptions<Data> {\r\n /* The attempt count */\r\n attempt?: number;\r\n}\r\n\r\n/**\r\n * @name useMutation\r\n * @description - Hook that defines the logic when mutate data\r\n * @category Async\r\n * @usage high\r\n *\r\n * @template Body The type of the body\r\n * @template Data The type of the data\r\n * @param {(body: Body) => Promise<Data>} callback The callback function to be invoked\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @returns {UseMutationReturn<Data>} An object with the state of the mutation\r\n *\r\n * @example\r\n * const { mutate, mutateAsync, isLoading, isError, isSuccess, error, data } = useMutation((name) => Promise.resolve(name));\r\n */\r\nexport const useMutation = <Body, Data>(\r\n callback: (body: Body) => Promise<Data>,\r\n options?: UseMutationOptions<Data>\r\n) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n\r\n const [error, setError] = useState<Error | null>(null);\r\n const [data, setData] = useState<Data | null>(null);\r\n\r\n const request = (\r\n body: Body,\r\n requestOptions?: RequestOptions<Data>\r\n ): Promise<Data | undefined> => {\r\n setIsLoading(true);\r\n const attempt = requestOptions?.attempt ?? 0;\r\n\r\n return callback(body)\r\n .then((response) => {\r\n requestOptions?.onSuccess?.(response);\r\n\r\n setData(response);\r\n setIsSuccess(true);\r\n setIsLoading(false);\r\n setError(null);\r\n setIsError(false);\r\n return response;\r\n })\r\n .catch((error: Error) => {\r\n const retry =\r\n typeof requestOptions?.retry === \"function\"\r\n ? requestOptions?.retry(attempt, error)\r\n : requestOptions?.retry;\r\n\r\n const retryDelay =\r\n typeof requestOptions?.retryDelay === \"function\"\r\n ? requestOptions?.retryDelay(attempt, error)\r\n : requestOptions?.retryDelay;\r\n\r\n if (typeof retry === \"boolean\" && retry) {\r\n if (retryDelay) {\r\n setTimeout(\r\n () => request(body, { ...requestOptions, attempt: attempt + 1 }),\r\n retryDelay\r\n );\r\n return;\r\n }\r\n return request(body, { ...requestOptions, attempt: attempt + 1 });\r\n }\r\n\r\n if (retry && retry > attempt) {\r\n if (retryDelay) {\r\n setTimeout(\r\n () => request(body, { ...requestOptions, attempt: attempt + 1 }),\r\n retryDelay\r\n );\r\n return;\r\n }\r\n return request(body, { ...requestOptions, attempt: attempt + 1 });\r\n }\r\n\r\n setData(null);\r\n setIsSuccess(false);\r\n setIsLoading(false);\r\n setError(error);\r\n setIsError(true);\r\n if (!requestOptions?.onError) throw error;\r\n requestOptions?.onError?.(error);\r\n });\r\n };\r\n const mutate = (body: Body, mutateOptions?: UseMutationOptions<Data>) => {\r\n const requestOptions = {\r\n retry: mutateOptions?.retry ?? options?.retry,\r\n retryDelay: mutateOptions?.retryDelay ?? options?.retryDelay,\r\n onSuccess: mutateOptions?.onSuccess ?? options?.onSuccess,\r\n onError: mutateOptions?.onError ?? options?.onError,\r\n };\r\n\r\n request(body, requestOptions);\r\n };\r\n\r\n const mutateAsync = async (\r\n body: Body,\r\n mutateOptions?: UseMutationOptions<Data>\r\n ) => {\r\n const requestOptions = {\r\n retry: mutateOptions?.retry ?? options?.retry,\r\n retryDelay: mutateOptions?.retryDelay ?? options?.retryDelay,\r\n onSuccess: mutateOptions?.onSuccess ?? options?.onSuccess,\r\n onError: mutateOptions?.onError ?? options?.onError,\r\n };\r\n\r\n return request(body, requestOptions) as Promise<Data>;\r\n };\r\n\r\n return {\r\n data,\r\n error,\r\n mutate,\r\n mutateAsync,\r\n isLoading,\r\n isError,\r\n isSuccess,\r\n } as UseMutationReturn<Body, Data>;\r\n};\r\n"],"names":["useMutation","callback","options","isLoading","setIsLoading","useState","isError","setIsError","isSuccess","setIsSuccess","error","setError","data","setData","request","body","requestOptions","attempt","response","retry","retryDelay","mutateOptions"],"mappings":"yGAyDaA,EAAc,CACzBC,EACAC,IACG,CACH,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAC1C,CAACC,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAK,EACtC,CAACG,EAAWC,CAAY,EAAIJ,EAAAA,SAAS,EAAK,EAE1C,CAACK,EAAOC,CAAQ,EAAIN,EAAAA,SAAuB,IAAI,EAC/C,CAACO,EAAMC,CAAO,EAAIR,EAAAA,SAAsB,IAAI,EAE5CS,EAAU,CACdC,EACAC,IAC8B,CAC9BZ,EAAa,EAAI,EACjB,MAAMa,EAAUD,GAAgB,SAAW,EAE3C,OAAOf,EAASc,CAAI,EACjB,KAAMG,IACLF,GAAgB,YAAYE,CAAQ,EAEpCL,EAAQK,CAAQ,EAChBT,EAAa,EAAI,EACjBL,EAAa,EAAK,EAClBO,EAAS,IAAI,EACbJ,EAAW,EAAK,EACTW,EACR,EACA,MAAOR,GAAiB,CACvB,MAAMS,EACJ,OAAOH,GAAgB,OAAU,WAC7BA,GAAgB,MAAMC,EAASP,CAAK,EACpCM,GAAgB,MAEhBI,EACJ,OAAOJ,GAAgB,YAAe,WAClCA,GAAgB,WAAWC,EAASP,CAAK,EACzCM,GAAgB,WAEtB,GAAI,OAAOG,GAAU,WAAaA,EAAO,CACvC,GAAIC,EAAY,CACd,WACE,IAAMN,EAAQC,EAAM,CAAE,GAAGC,EAAgB,QAASC,EAAU,EAAG,EAC/DG,CAAA,EAEF,MAAA,CAEF,OAAON,EAAQC,EAAM,CAAE,GAAGC,EAAgB,QAASC,EAAU,EAAG,CAAA,CAGlE,GAAIE,GAASA,EAAQF,EAAS,CAC5B,GAAIG,EAAY,CACd,WACE,IAAMN,EAAQC,EAAM,CAAE,GAAGC,EAAgB,QAASC,EAAU,EAAG,EAC/DG,CAAA,EAEF,MAAA,CAEF,OAAON,EAAQC,EAAM,CAAE,GAAGC,EAAgB,QAASC,EAAU,EAAG,CAAA,CAQlE,GALAJ,EAAQ,IAAI,EACZJ,EAAa,EAAK,EAClBL,EAAa,EAAK,EAClBO,EAASD,CAAK,EACdH,EAAW,EAAI,EACX,CAACS,GAAgB,QAAS,MAAMN,EACpCM,GAAgB,UAAUN,CAAK,CAAA,CAChC,CAAA,EA2BL,MAAO,CACL,KAAAE,EACA,MAAAF,EACA,OA5Ba,CAACK,EAAYM,IAA6C,CACvE,MAAML,EAAiB,CACrB,MAAOK,GAAe,OAASnB,GAAS,MACxC,WAAYmB,GAAe,YAAcnB,GAAS,WAClD,UAAWmB,GAAe,WAAanB,GAAS,UAChD,QAASmB,GAAe,SAAWnB,GAAS,OAAA,EAG9CY,EAAQC,EAAMC,CAAc,CAAA,EAqB5B,YAlBkB,MAClBD,EACAM,IACG,CACH,MAAML,EAAiB,CACrB,MAAOK,GAAe,OAASnB,GAAS,MACxC,WAAYmB,GAAe,YAAcnB,GAAS,WAClD,UAAWmB,GAAe,WAAanB,GAAS,UAChD,QAASmB,GAAe,SAAWnB,GAAS,OAAA,EAG9C,OAAOY,EAAQC,EAAMC,CAAc,CAAA,EAQnC,UAAAb,EACA,QAAAG,EACA,UAAAE,CAAA,CAEJ"}
1
+ {"version":3,"file":"useMutation.cjs","names":[],"sources":["../../../../src/hooks/useMutation/useMutation.ts"],"sourcesContent":["import { useState } from \"react\";\r\n\r\n/* The type of the options */\r\ninterface UseMutationOptions<Data> {\r\n /* The retry count of requests */\r\n retry?: ((failureCount: number, error: Error) => boolean) | boolean | number;\r\n /* The retry delay of requests */\r\n retryDelay?: ((retry: number, error: Error) => number) | number;\r\n /* The callback function to be invoked on error */\r\n onError?: (error: Error) => void;\r\n /* The callback function to be invoked on success */\r\n onSuccess?: (data: Data) => void;\r\n}\r\n\r\n/* The use mutation return type */\r\ninterface UseMutationReturn<Body, Data> {\r\n /* The data of the mutation */\r\n data: Data | null;\r\n /* The error of the mutation */\r\n error: Error | null;\r\n /* The error state of the mutation */\r\n isError: boolean;\r\n /* The loading state of the mutation */\r\n isLoading: boolean;\r\n /* The success state of the mutation */\r\n isSuccess: boolean;\r\n /* The mutate function */\r\n mutate: (body?: Body, options?: UseMutationOptions<Data>) => void;\r\n /* The mutate async function */\r\n mutateAsync: (\r\n body?: Body,\r\n options?: UseMutationOptions<Data>\r\n ) => Promise<Data>;\r\n}\r\n\r\nexport interface RequestOptions<Data> extends UseMutationOptions<Data> {\r\n /* The attempt count */\r\n attempt?: number;\r\n}\r\n\r\n/**\r\n * @name useMutation\r\n * @description - Hook that defines the logic when mutate data\r\n * @category Async\r\n * @usage high\r\n *\r\n * @template Body The type of the body\r\n * @template Data The type of the data\r\n * @param {(body: Body) => Promise<Data>} callback The callback function to be invoked\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @returns {UseMutationReturn<Data>} An object with the state of the mutation\r\n *\r\n * @example\r\n * const { mutate, mutateAsync, isLoading, isError, isSuccess, error, data } = useMutation((name) => Promise.resolve(name));\r\n */\r\nexport const useMutation = <Body, Data>(\r\n callback: (body: Body) => Promise<Data>,\r\n options?: UseMutationOptions<Data>\r\n) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n\r\n const [error, setError] = useState<Error | null>(null);\r\n const [data, setData] = useState<Data | null>(null);\r\n\r\n const request = (\r\n body: Body,\r\n requestOptions?: RequestOptions<Data>\r\n ): Promise<Data | undefined> => {\r\n setIsLoading(true);\r\n const attempt = requestOptions?.attempt ?? 0;\r\n\r\n return callback(body)\r\n .then((response) => {\r\n requestOptions?.onSuccess?.(response);\r\n\r\n setData(response);\r\n setIsSuccess(true);\r\n setIsLoading(false);\r\n setError(null);\r\n setIsError(false);\r\n return response;\r\n })\r\n .catch((error: Error) => {\r\n const retry =\r\n typeof requestOptions?.retry === \"function\"\r\n ? requestOptions?.retry(attempt, error)\r\n : requestOptions?.retry;\r\n\r\n const retryDelay =\r\n typeof requestOptions?.retryDelay === \"function\"\r\n ? requestOptions?.retryDelay(attempt, error)\r\n : requestOptions?.retryDelay;\r\n\r\n if (typeof retry === \"boolean\" && retry) {\r\n if (retryDelay) {\r\n setTimeout(\r\n () => request(body, { ...requestOptions, attempt: attempt + 1 }),\r\n retryDelay\r\n );\r\n return;\r\n }\r\n return request(body, { ...requestOptions, attempt: attempt + 1 });\r\n }\r\n\r\n if (retry && retry > attempt) {\r\n if (retryDelay) {\r\n setTimeout(\r\n () => request(body, { ...requestOptions, attempt: attempt + 1 }),\r\n retryDelay\r\n );\r\n return;\r\n }\r\n return request(body, { ...requestOptions, attempt: attempt + 1 });\r\n }\r\n\r\n setData(null);\r\n setIsSuccess(false);\r\n setIsLoading(false);\r\n setError(error);\r\n setIsError(true);\r\n if (!requestOptions?.onError) throw error;\r\n requestOptions?.onError?.(error);\r\n });\r\n };\r\n const mutate = (body: Body, mutateOptions?: UseMutationOptions<Data>) => {\r\n const requestOptions = {\r\n retry: mutateOptions?.retry ?? options?.retry,\r\n retryDelay: mutateOptions?.retryDelay ?? options?.retryDelay,\r\n onSuccess: mutateOptions?.onSuccess ?? options?.onSuccess,\r\n onError: mutateOptions?.onError ?? options?.onError,\r\n };\r\n\r\n request(body, requestOptions);\r\n };\r\n\r\n const mutateAsync = async (\r\n body: Body,\r\n mutateOptions?: UseMutationOptions<Data>\r\n ) => {\r\n const requestOptions = {\r\n retry: mutateOptions?.retry ?? options?.retry,\r\n retryDelay: mutateOptions?.retryDelay ?? options?.retryDelay,\r\n onSuccess: mutateOptions?.onSuccess ?? options?.onSuccess,\r\n onError: mutateOptions?.onError ?? options?.onError,\r\n };\r\n\r\n return request(body, requestOptions) as Promise<Data>;\r\n };\r\n\r\n return {\r\n data,\r\n error,\r\n mutate,\r\n mutateAsync,\r\n isLoading,\r\n isError,\r\n isSuccess,\r\n } as UseMutationReturn<Body, Data>;\r\n};\r\n"],"mappings":"uEAyDA,IAAa,GACX,EACA,IACG,CACH,GAAM,CAAC,EAAW,IAAA,EAAA,EAAA,UAAyB,GAAM,CAC3C,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAW,IAAA,EAAA,EAAA,UAAyB,GAAM,CAE3C,CAAC,EAAO,IAAA,EAAA,EAAA,UAAmC,KAAK,CAChD,CAAC,EAAM,IAAA,EAAA,EAAA,UAAiC,KAAK,CAE7C,GACJ,EACA,IAC8B,CAC9B,EAAa,GAAK,CAClB,IAAM,EAAU,GAAgB,SAAW,EAE3C,OAAO,EAAS,EAAK,CAClB,KAAM,IACL,GAAgB,YAAY,EAAS,CAErC,EAAQ,EAAS,CACjB,EAAa,GAAK,CAClB,EAAa,GAAM,CACnB,EAAS,KAAK,CACd,EAAW,GAAM,CACV,GACP,CACD,MAAO,GAAiB,CACvB,IAAM,EACJ,OAAO,GAAgB,OAAU,WAC7B,GAAgB,MAAM,EAAS,EAAM,CACrC,GAAgB,MAEhB,EACJ,OAAO,GAAgB,YAAe,WAClC,GAAgB,WAAW,EAAS,EAAM,CAC1C,GAAgB,WAEtB,GAAI,OAAO,GAAU,WAAa,EAAO,CACvC,GAAI,EAAY,CACd,eACQ,EAAQ,EAAM,CAAE,GAAG,EAAgB,QAAS,EAAU,EAAG,CAAC,CAChE,EACD,CACD,OAEF,OAAO,EAAQ,EAAM,CAAE,GAAG,EAAgB,QAAS,EAAU,EAAG,CAAC,CAGnE,GAAI,GAAS,EAAQ,EAAS,CAC5B,GAAI,EAAY,CACd,eACQ,EAAQ,EAAM,CAAE,GAAG,EAAgB,QAAS,EAAU,EAAG,CAAC,CAChE,EACD,CACD,OAEF,OAAO,EAAQ,EAAM,CAAE,GAAG,EAAgB,QAAS,EAAU,EAAG,CAAC,CAQnE,GALA,EAAQ,KAAK,CACb,EAAa,GAAM,CACnB,EAAa,GAAM,CACnB,EAAS,EAAM,CACf,EAAW,GAAK,CACZ,CAAC,GAAgB,QAAS,MAAM,EACpC,GAAgB,UAAU,EAAM,EAChC,EA2BN,MAAO,CACL,OACA,QACA,QA5Bc,EAAY,IAA6C,CAQvE,EAAQ,EAPe,CACrB,MAAO,GAAe,OAAS,GAAS,MACxC,WAAY,GAAe,YAAc,GAAS,WAClD,UAAW,GAAe,WAAa,GAAS,UAChD,QAAS,GAAe,SAAW,GAAS,QAC7C,CAE4B,EAqB7B,YAlBkB,MAClB,EACA,IASO,EAAQ,EAPQ,CACrB,MAAO,GAAe,OAAS,GAAS,MACxC,WAAY,GAAe,YAAc,GAAS,WAClD,UAAW,GAAe,WAAa,GAAS,UAChD,QAAS,GAAe,SAAW,GAAS,QAC7C,CAEmC,CAQpC,YACA,UACA,YACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),v=require("../useRefState/useRefState.cjs"),c=require("../../utils/helpers/isTarget.cjs"),O=((...t)=>{const r=c.isTarget(t[0])?t[0]:void 0,e=r?typeof t[1]=="object"?t[1]:{onChange:t[1]}:typeof t[0]=="object"?t[0]:{onChange:t[0]},u=e?.onChange,a=e?.enabled??!0,[i,f]=s.useState(),n=v.useRefState(),l=s.useRef(u);return l.current=u,s.useEffect(()=>{if(!a||!r&&!n.state)return;const b=r?c.isTarget.getElement(r):n.current;if(!b)return;const o=new MutationObserver((g,d)=>{l.current?.(g,d)});return f(o),o.observe(b,e),()=>{o.disconnect()}},[r&&c.isTarget.getRawElement(r),n.state,e?.childList,e?.attributes,e?.characterData,e?.subtree,e?.attributeOldValue,e?.characterDataOldValue,e?.attributeFilter,a]),r?{observer:i}:{ref:n,observer:i}});exports.useMutationObserver=O;
2
- //# sourceMappingURL=useMutationObserver.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`);let n=require(`react`);var r=((...r)=>{let i=e.isTarget(r[0])?r[0]:void 0,a=i?typeof r[1]==`object`?r[1]:{onChange:r[1]}:typeof r[0]==`object`?r[0]:{onChange:r[0]},o=a?.onChange,s=a?.enabled??!0,[c,l]=(0,n.useState)(),u=t.useRefState(),d=(0,n.useRef)(o);return d.current=o,(0,n.useEffect)(()=>{if(!s||!i&&!u.state)return;let t=i?e.isTarget.getElement(i):u.current;if(!t)return;let n=new MutationObserver((e,t)=>{d.current?.(e,t)});return l(n),n.observe(t,a),()=>{n.disconnect()}},[i&&e.isTarget.getRawElement(i),u.state,a?.childList,a?.attributes,a?.characterData,a?.subtree,a?.attributeOldValue,a?.characterDataOldValue,a?.attributeFilter,s]),i?{observer:c}:{ref:u,observer:c}});exports.useMutationObserver=r;
2
+ //# sourceMappingURL=useMutationObserver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMutationObserver.cjs","sources":["../../../../src/hooks/useMutationObserver/useMutationObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The mutation observer callback type */\nexport type UseMutationObserverCallback = (\n mutations: MutationRecord[],\n observer: MutationObserver\n) => void;\n\n/** The mutation observer options type */\nexport interface UseMutationObserverOptions extends MutationObserverInit {\n /** The enabled state of the mutation observer */\n enabled?: boolean;\n /** The callback to execute when mutation is detected */\n onChange?: UseMutationObserverCallback;\n}\n\n/** The mutation observer return type */\nexport interface UseMutationObserverReturn {\n /** The mutation observer instance */\n observer?: MutationObserver;\n}\n\nexport interface UseMutationObserver {\n <Target extends Element>(\n options?: UseMutationObserverOptions,\n target?: never\n ): UseMutationObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseMutationObserverOptions): UseMutationObserverReturn;\n\n <Target extends Element>(\n callback: UseMutationObserverCallback,\n target?: never\n ): UseMutationObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseMutationObserverCallback): UseMutationObserverReturn;\n}\n\n/**\n * @name useMutationObserver\n * @description - Hook that gives you mutation observer state\n * @category Sensors\n * @usage low\n *\n * @browserapi MutationObserver https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @param {boolean} [options.enabled=true] The enabled state of the mutation observer\n * @param {UseMutationObserverCallback} [options.onChange] The callback to execute when mutation is detected\n * @param {boolean} [options.attributes] Set to true if mutations to target's attributes are to be observed\n * @param {boolean} [options.characterData] Set to true if mutations to target's data are to be observed\n * @param {boolean} [options.childList] Set to true if mutations to target's children are to be observed\n * @param {boolean} [options.subtree] Set to true if mutations to not just target, but also target's descendants are to be observed\n * @returns {UseMutationObserverReturn} An object containing the mutation observer state\n *\n * @example\n * const { observer, stop } = useMutationObserver(ref, { childList: true });\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The enabled state of the mutation observer\n * @param {UseMutationObserverCallback} [options.onChange] The callback to execute when mutation is detected\n * @param {boolean} [options.attributes] Set to true if mutations to target's attributes are to be observed\n * @param {boolean} [options.characterData] Set to true if mutations to target's data are to be observed\n * @param {boolean} [options.childList] Set to true if mutations to target's children are to be observed\n * @param {boolean} [options.subtree] Set to true if mutations to not just target, but also target's descendants are to be observed\n * @returns {UseMutationObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, observer, stop } = useMutationObserver({ childList: true });\n *\n * @overload\n * @template Target The target element\n * @param {UseMutationObserverCallback} callback The callback to execute when mutation is detected\n * @returns {UseMutationObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, observer, stop } = useMutationObserver((mutations) => console.log(mutations));\n *\n * @overload\n * @param {UseMutationObserverCallback} callback The callback to execute when mutation is detected\n * @param {HookTarget} target The target element to observe\n * @returns {UseMutationObserverReturn} An object containing the mutation observer state\n *\n * @example\n * const { observer, stop } = useMutationObserver((mutations) => console.log(mutations), ref);\n */\nexport const useMutationObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseMutationObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<MutationObserver>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new MutationObserver((mutations, observer) => {\n internalCallbackRef.current?.(mutations, observer);\n });\n\n setObserver(observer);\n observer.observe(element as Element, options);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.childList,\n options?.attributes,\n options?.characterData,\n options?.subtree,\n options?.attributeOldValue,\n options?.characterDataOldValue,\n options?.attributeFilter,\n enabled\n ]);\n\n if (target) return { observer };\n return {\n ref: internalRef,\n observer\n };\n}) as UseMutationObserver;\n"],"names":["useMutationObserver","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","mutations"],"mappings":"mMAgGaA,GAAuB,IAAIC,IAAkB,CACxD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EACtB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EAGtBI,EAAWD,GAAS,SACpBE,EAAUF,GAAS,SAAW,GAE9B,CAACG,EAAUC,CAAW,EAAIC,WAAA,EAE1BC,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOR,CAAQ,EAgC3C,OA/BAO,EAAoB,QAAUP,EAE9BS,EAAAA,UAAU,IAAM,CACd,GAAI,CAACR,GAAY,CAACJ,GAAU,CAACQ,EAAY,MAAQ,OAEjD,MAAMK,EAAUb,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIQ,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMR,EAAW,IAAI,iBAAiB,CAACS,EAAWT,IAAa,CAC7DK,EAAoB,UAAUI,EAAWT,CAAQ,CAAA,CAClD,EAED,OAAAC,EAAYD,CAAQ,EACpBA,EAAS,QAAQQ,EAAoBX,CAAO,EAErC,IAAM,CACXG,EAAS,WAAA,CAAW,CACtB,EACC,CACDL,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCQ,EAAY,MACZN,GAAS,UACTA,GAAS,WACTA,GAAS,cACTA,GAAS,QACTA,GAAS,kBACTA,GAAS,sBACTA,GAAS,gBACTE,CAAA,CACD,EAEGJ,EAAe,CAAE,SAAAK,CAAA,EACd,CACL,IAAKG,EACL,SAAAH,CAAA,CAEJ"}
1
+ {"version":3,"file":"useMutationObserver.cjs","names":[],"sources":["../../../../src/hooks/useMutationObserver/useMutationObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The mutation observer callback type */\nexport type UseMutationObserverCallback = (\n mutations: MutationRecord[],\n observer: MutationObserver\n) => void;\n\n/** The mutation observer options type */\nexport interface UseMutationObserverOptions extends MutationObserverInit {\n /** The enabled state of the mutation observer */\n enabled?: boolean;\n /** The callback to execute when mutation is detected */\n onChange?: UseMutationObserverCallback;\n}\n\n/** The mutation observer return type */\nexport interface UseMutationObserverReturn {\n /** The mutation observer instance */\n observer?: MutationObserver;\n}\n\nexport interface UseMutationObserver {\n <Target extends Element>(\n options?: UseMutationObserverOptions,\n target?: never\n ): UseMutationObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseMutationObserverOptions): UseMutationObserverReturn;\n\n <Target extends Element>(\n callback: UseMutationObserverCallback,\n target?: never\n ): UseMutationObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseMutationObserverCallback): UseMutationObserverReturn;\n}\n\n/**\n * @name useMutationObserver\n * @description - Hook that gives you mutation observer state\n * @category Sensors\n * @usage low\n *\n * @browserapi MutationObserver https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @param {boolean} [options.enabled=true] The enabled state of the mutation observer\n * @param {UseMutationObserverCallback} [options.onChange] The callback to execute when mutation is detected\n * @param {boolean} [options.attributes] Set to true if mutations to target's attributes are to be observed\n * @param {boolean} [options.characterData] Set to true if mutations to target's data are to be observed\n * @param {boolean} [options.childList] Set to true if mutations to target's children are to be observed\n * @param {boolean} [options.subtree] Set to true if mutations to not just target, but also target's descendants are to be observed\n * @returns {UseMutationObserverReturn} An object containing the mutation observer state\n *\n * @example\n * const { observer, stop } = useMutationObserver(ref, { childList: true });\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The enabled state of the mutation observer\n * @param {UseMutationObserverCallback} [options.onChange] The callback to execute when mutation is detected\n * @param {boolean} [options.attributes] Set to true if mutations to target's attributes are to be observed\n * @param {boolean} [options.characterData] Set to true if mutations to target's data are to be observed\n * @param {boolean} [options.childList] Set to true if mutations to target's children are to be observed\n * @param {boolean} [options.subtree] Set to true if mutations to not just target, but also target's descendants are to be observed\n * @returns {UseMutationObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, observer, stop } = useMutationObserver({ childList: true });\n *\n * @overload\n * @template Target The target element\n * @param {UseMutationObserverCallback} callback The callback to execute when mutation is detected\n * @returns {UseMutationObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, observer, stop } = useMutationObserver((mutations) => console.log(mutations));\n *\n * @overload\n * @param {UseMutationObserverCallback} callback The callback to execute when mutation is detected\n * @param {HookTarget} target The target element to observe\n * @returns {UseMutationObserverReturn} An object containing the mutation observer state\n *\n * @example\n * const { observer, stop } = useMutationObserver((mutations) => console.log(mutations), ref);\n */\nexport const useMutationObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseMutationObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<MutationObserver>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new MutationObserver((mutations, observer) => {\n internalCallbackRef.current?.(mutations, observer);\n });\n\n setObserver(observer);\n observer.observe(element as Element, options);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.childList,\n options?.attributes,\n options?.characterData,\n options?.subtree,\n options?.attributeOldValue,\n options?.characterDataOldValue,\n options?.attributeFilter,\n enabled\n ]);\n\n if (target) return { observer };\n return {\n ref: internalRef,\n observer\n };\n}) as UseMutationObserver;\n"],"mappings":"uKAgGA,IAAa,IAAwB,GAAG,IAAkB,CACxD,IAAM,EAAU,EAAA,SAAS,EAAO,GAAG,CAAG,EAAO,GAAK,IAAA,GAE5C,EACJ,EACI,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,SAAU,EAAO,GAAI,CACzB,OAAO,EAAO,IAAO,SACnB,EAAO,GACP,CAAE,SAAU,EAAO,GAAI,CAGzB,EAAW,GAAS,SACpB,EAAU,GAAS,SAAW,GAE9B,CAAC,EAAU,IAAA,EAAA,EAAA,WAA2C,CAEtD,EAAc,EAAA,aAAsB,CACpC,GAAA,EAAA,EAAA,QAA6B,EAAS,CAiC5C,MAhCA,GAAoB,QAAU,GAE9B,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,GAAY,CAAC,GAAU,CAAC,EAAY,MAAQ,OAEjD,IAAM,EAAU,EAAS,EAAA,SAAS,WAAW,EAAO,CAAG,EAAY,QACnE,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,IAAI,kBAAkB,EAAW,IAAa,CAC7D,EAAoB,UAAU,EAAW,EAAS,EAClD,CAKF,OAHA,EAAY,EAAS,CACrB,EAAS,QAAQ,EAAoB,EAAQ,KAEhC,CACX,EAAS,YAAY,GAEtB,CACD,GAAU,EAAA,SAAS,cAAc,EAAO,CACxC,EAAY,MACZ,GAAS,UACT,GAAS,WACT,GAAS,cACT,GAAS,QACT,GAAS,kBACT,GAAS,sBACT,GAAS,gBACT,EACD,CAAC,CAEE,EAAe,CAAE,WAAU,CACxB,CACL,IAAK,EACL,WACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),o=()=>navigator?.connection||navigator?.mozConnection||navigator?.webkitConnection,c=()=>{const[a,r]=i.useState(()=>{if(typeof navigator>"u")return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0};const n=navigator.onLine,e=o();return{online:n,downlink:e?.downlink,downlinkMax:e?.downlinkMax,effectiveType:e?.effectiveType,rtt:e?.rtt,saveData:e?.saveData,type:e?.type}});return i.useEffect(()=>{const n=()=>{const s=navigator.onLine,t=o();r({online:s,downlink:t?.downlink,downlinkMax:t?.downlinkMax,effectiveType:t?.effectiveType,rtt:t?.rtt,saveData:t?.saveData,type:t?.type})};window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});const e=o();return e&&e.addEventListener("change",n,{passive:!0}),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}}),a};exports.getConnection=o;exports.useNetwork=c;
2
- //# sourceMappingURL=useNetwork.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>navigator?.connection||navigator?.mozConnection||navigator?.webkitConnection,n=()=>{let[n,r]=(0,e.useState)(()=>{if(typeof navigator>`u`)return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0};let e=navigator.onLine,n=t();return{online:e,downlink:n?.downlink,downlinkMax:n?.downlinkMax,effectiveType:n?.effectiveType,rtt:n?.rtt,saveData:n?.saveData,type:n?.type}});return(0,e.useEffect)(()=>{let e=()=>{let e=navigator.onLine,n=t();r({online:e,downlink:n?.downlink,downlinkMax:n?.downlinkMax,effectiveType:n?.effectiveType,rtt:n?.rtt,saveData:n?.saveData,type:n?.type})};window.addEventListener(`online`,e,{passive:!0}),window.addEventListener(`offline`,e,{passive:!0});let n=t();return n&&n.addEventListener(`change`,e,{passive:!0}),()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,e),n&&n.removeEventListener(`change`,e)}}),n};exports.getConnection=t,exports.useNetwork=n;
2
+ //# sourceMappingURL=useNetwork.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNetwork.cjs","sources":["../../../../src/hooks/useNetwork/useNetwork.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\r\n\r\nexport interface Connection extends EventTarget {\r\n readonly downlink: number;\r\n readonly downlinkMax: number;\r\n readonly effectiveType: '2g' | '3g' | '4g' | 'slow-2g';\r\n readonly rtt: number;\r\n readonly saveData: boolean;\r\n onChange: (event: Event) => void;\r\n readonly type:\r\n | 'bluetooth'\r\n | 'cellular'\r\n | 'ethernet'\r\n | 'mixed'\r\n | 'none'\r\n | 'other'\r\n | 'unknown'\r\n | 'wifi'\r\n | 'wimax';\r\n}\r\n\r\ndeclare global {\r\n interface Navigator {\r\n readonly connection: Connection;\r\n readonly mozConnection: Connection;\r\n readonly webkitConnection: Connection;\r\n }\r\n}\r\n\r\n/** The type of network connection */\r\nexport type ConnectionType = Connection['type'];\r\n/** The effective type of connection */\r\nexport type ConnectionEffectiveType = Connection['effectiveType'];\r\n\r\n/** The use network return type */\r\nexport interface UseNetworkReturn {\r\n /** The estimated downlink speed in megabits per seconds */\r\n downlink?: Connection['downlink'];\r\n /** The maximum downlink speed, if available */\r\n downlinkMax?: Connection['downlinkMax'];\r\n /** The effective type of connection (e.g., '2g', '3g', '4g') */\r\n effectiveType?: Connection['effectiveType'];\r\n /** Indicates if the device is currently online */\r\n online: boolean;\r\n /** The estimated round-trip time in milliseconds */\r\n rtt?: Connection['rtt'];\r\n /** Indicates if the user has enabled data saving mode */\r\n saveData?: Connection['saveData'];\r\n /** The type of network connection (e.g., 'wifi', 'cellular') */\r\n type?: Connection['type'];\r\n}\r\n\r\nexport const getConnection = () =>\r\n navigator?.connection || navigator?.mozConnection || navigator?.webkitConnection;\r\n\r\n/**\r\n * @name useNetwork\r\n * @description - Hook to track network status\r\n * @category Browser\r\n * @usage low\r\n *\r\n * @browserapi navigator.connection https://developer.mozilla.org/en-US/docs/Web/API/Navigator/connection\r\n *\r\n * @returns {UseNetworkReturn} An object containing the network status\r\n *\r\n * @example\r\n * const { online, downlink, downlinkMax, effectiveType, rtt, saveData, type } = useNetwork();\r\n */\r\nexport const useNetwork = (): UseNetworkReturn => {\r\n const [value, setValue] = useState(() => {\r\n if (typeof navigator === 'undefined') {\r\n return {\r\n online: false,\r\n type: undefined,\r\n effectiveType: undefined,\r\n saveData: false,\r\n downlink: 0,\r\n downlinkMax: 0,\r\n rtt: 0\r\n };\r\n }\r\n const online = navigator.onLine;\r\n const connection = getConnection();\r\n\r\n return {\r\n online,\r\n downlink: connection?.downlink,\r\n downlinkMax: connection?.downlinkMax,\r\n effectiveType: connection?.effectiveType,\r\n rtt: connection?.rtt,\r\n saveData: connection?.saveData,\r\n type: connection?.type\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const callback = () => {\r\n const online = navigator.onLine;\r\n const connection = getConnection();\r\n\r\n setValue({\r\n online,\r\n downlink: connection?.downlink,\r\n downlinkMax: connection?.downlinkMax,\r\n effectiveType: connection?.effectiveType,\r\n rtt: connection?.rtt,\r\n saveData: connection?.saveData,\r\n type: connection?.type\r\n });\r\n };\r\n window.addEventListener('online', callback, { passive: true });\r\n window.addEventListener('offline', callback, { passive: true });\r\n\r\n const connection = getConnection();\r\n\r\n if (connection) {\r\n connection.addEventListener('change', callback, { passive: true });\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('online', callback);\r\n window.removeEventListener('offline', callback);\r\n\r\n if (connection) {\r\n connection.removeEventListener('change', callback);\r\n }\r\n };\r\n });\r\n\r\n return value;\r\n};\r\n"],"names":["getConnection","useNetwork","value","setValue","useState","online","connection","useEffect","callback"],"mappings":"yGAoDaA,EAAgB,IAC3B,WAAW,YAAc,WAAW,eAAiB,WAAW,iBAerDC,EAAa,IAAwB,CAChD,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAS,IAAM,CACvC,GAAI,OAAO,UAAc,IACvB,MAAO,CACL,OAAQ,GACR,KAAM,OACN,cAAe,OACf,SAAU,GACV,SAAU,EACV,YAAa,EACb,IAAK,CAAA,EAGT,MAAMC,EAAS,UAAU,OACnBC,EAAaN,EAAA,EAEnB,MAAO,CACL,OAAAK,EACA,SAAUC,GAAY,SACtB,YAAaA,GAAY,YACzB,cAAeA,GAAY,cAC3B,IAAKA,GAAY,IACjB,SAAUA,GAAY,SACtB,KAAMA,GAAY,IAAA,CACpB,CACD,EAEDC,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAW,IAAM,CACrB,MAAMH,EAAS,UAAU,OACnBC,EAAaN,EAAA,EAEnBG,EAAS,CACP,OAAAE,EACA,SAAUC,GAAY,SACtB,YAAaA,GAAY,YACzB,cAAeA,GAAY,cAC3B,IAAKA,GAAY,IACjB,SAAUA,GAAY,SACtB,KAAMA,GAAY,IAAA,CACnB,CAAA,EAEH,OAAO,iBAAiB,SAAUE,EAAU,CAAE,QAAS,GAAM,EAC7D,OAAO,iBAAiB,UAAWA,EAAU,CAAE,QAAS,GAAM,EAE9D,MAAMF,EAAaN,EAAA,EAEnB,OAAIM,GACFA,EAAW,iBAAiB,SAAUE,EAAU,CAAE,QAAS,GAAM,EAG5D,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAQ,EAC7C,OAAO,oBAAoB,UAAWA,CAAQ,EAE1CF,GACFA,EAAW,oBAAoB,SAAUE,CAAQ,CACnD,CACF,CACD,EAEMN,CACT"}
1
+ {"version":3,"file":"useNetwork.cjs","names":[],"sources":["../../../../src/hooks/useNetwork/useNetwork.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\r\n\r\nexport interface Connection extends EventTarget {\r\n readonly downlink: number;\r\n readonly downlinkMax: number;\r\n readonly effectiveType: '2g' | '3g' | '4g' | 'slow-2g';\r\n readonly rtt: number;\r\n readonly saveData: boolean;\r\n onChange: (event: Event) => void;\r\n readonly type:\r\n | 'bluetooth'\r\n | 'cellular'\r\n | 'ethernet'\r\n | 'mixed'\r\n | 'none'\r\n | 'other'\r\n | 'unknown'\r\n | 'wifi'\r\n | 'wimax';\r\n}\r\n\r\ndeclare global {\r\n interface Navigator {\r\n readonly connection: Connection;\r\n readonly mozConnection: Connection;\r\n readonly webkitConnection: Connection;\r\n }\r\n}\r\n\r\n/** The type of network connection */\r\nexport type ConnectionType = Connection['type'];\r\n/** The effective type of connection */\r\nexport type ConnectionEffectiveType = Connection['effectiveType'];\r\n\r\n/** The use network return type */\r\nexport interface UseNetworkReturn {\r\n /** The estimated downlink speed in megabits per seconds */\r\n downlink?: Connection['downlink'];\r\n /** The maximum downlink speed, if available */\r\n downlinkMax?: Connection['downlinkMax'];\r\n /** The effective type of connection (e.g., '2g', '3g', '4g') */\r\n effectiveType?: Connection['effectiveType'];\r\n /** Indicates if the device is currently online */\r\n online: boolean;\r\n /** The estimated round-trip time in milliseconds */\r\n rtt?: Connection['rtt'];\r\n /** Indicates if the user has enabled data saving mode */\r\n saveData?: Connection['saveData'];\r\n /** The type of network connection (e.g., 'wifi', 'cellular') */\r\n type?: Connection['type'];\r\n}\r\n\r\nexport const getConnection = () =>\r\n navigator?.connection || navigator?.mozConnection || navigator?.webkitConnection;\r\n\r\n/**\r\n * @name useNetwork\r\n * @description - Hook to track network status\r\n * @category Browser\r\n * @usage low\r\n *\r\n * @browserapi navigator.connection https://developer.mozilla.org/en-US/docs/Web/API/Navigator/connection\r\n *\r\n * @returns {UseNetworkReturn} An object containing the network status\r\n *\r\n * @example\r\n * const { online, downlink, downlinkMax, effectiveType, rtt, saveData, type } = useNetwork();\r\n */\r\nexport const useNetwork = (): UseNetworkReturn => {\r\n const [value, setValue] = useState(() => {\r\n if (typeof navigator === 'undefined') {\r\n return {\r\n online: false,\r\n type: undefined,\r\n effectiveType: undefined,\r\n saveData: false,\r\n downlink: 0,\r\n downlinkMax: 0,\r\n rtt: 0\r\n };\r\n }\r\n const online = navigator.onLine;\r\n const connection = getConnection();\r\n\r\n return {\r\n online,\r\n downlink: connection?.downlink,\r\n downlinkMax: connection?.downlinkMax,\r\n effectiveType: connection?.effectiveType,\r\n rtt: connection?.rtt,\r\n saveData: connection?.saveData,\r\n type: connection?.type\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const callback = () => {\r\n const online = navigator.onLine;\r\n const connection = getConnection();\r\n\r\n setValue({\r\n online,\r\n downlink: connection?.downlink,\r\n downlinkMax: connection?.downlinkMax,\r\n effectiveType: connection?.effectiveType,\r\n rtt: connection?.rtt,\r\n saveData: connection?.saveData,\r\n type: connection?.type\r\n });\r\n };\r\n window.addEventListener('online', callback, { passive: true });\r\n window.addEventListener('offline', callback, { passive: true });\r\n\r\n const connection = getConnection();\r\n\r\n if (connection) {\r\n connection.addEventListener('change', callback, { passive: true });\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('online', callback);\r\n window.removeEventListener('offline', callback);\r\n\r\n if (connection) {\r\n connection.removeEventListener('change', callback);\r\n }\r\n };\r\n });\r\n\r\n return value;\r\n};\r\n"],"mappings":"uEAoDA,IAAa,MACX,WAAW,YAAc,WAAW,eAAiB,WAAW,iBAerD,MAAqC,CAChD,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,cAA2B,CACvC,GAAI,OAAO,UAAc,IACvB,MAAO,CACL,OAAQ,GACR,KAAM,IAAA,GACN,cAAe,IAAA,GACf,SAAU,GACV,SAAU,EACV,YAAa,EACb,IAAK,EACN,CAEH,IAAM,EAAS,UAAU,OACnB,EAAa,GAAe,CAElC,MAAO,CACL,SACA,SAAU,GAAY,SACtB,YAAa,GAAY,YACzB,cAAe,GAAY,cAC3B,IAAK,GAAY,IACjB,SAAU,GAAY,SACtB,KAAM,GAAY,KACnB,EACD,CAoCF,OAlCA,EAAA,EAAA,eAAgB,CACd,IAAM,MAAiB,CACrB,IAAM,EAAS,UAAU,OACnB,EAAa,GAAe,CAElC,EAAS,CACP,SACA,SAAU,GAAY,SACtB,YAAa,GAAY,YACzB,cAAe,GAAY,cAC3B,IAAK,GAAY,IACjB,SAAU,GAAY,SACtB,KAAM,GAAY,KACnB,CAAC,EAEJ,OAAO,iBAAiB,SAAU,EAAU,CAAE,QAAS,GAAM,CAAC,CAC9D,OAAO,iBAAiB,UAAW,EAAU,CAAE,QAAS,GAAM,CAAC,CAE/D,IAAM,EAAa,GAAe,CAMlC,OAJI,GACF,EAAW,iBAAiB,SAAU,EAAU,CAAE,QAAS,GAAM,CAAC,KAGvD,CACX,OAAO,oBAAoB,SAAU,EAAS,CAC9C,OAAO,oBAAoB,UAAW,EAAS,CAE3C,GACF,EAAW,oBAAoB,SAAU,EAAS,GAGtD,CAEK"}
@@ -0,0 +1,2 @@
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=t=>{let[n,r]=(0,e.useState)(()=>{if(t)return URL.createObjectURL(t)});return{value:n,revoke:()=>{n&&(URL.revokeObjectURL(n),r(void 0))},set:e=>{n&&URL.revokeObjectURL(n),r(URL.createObjectURL(e))}}};exports.useObjectUrl=t;
2
+ //# sourceMappingURL=useObjectUrl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useObjectUrl.cjs","names":[],"sources":["../../../../src/hooks/useObjectUrl/useObjectUrl.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The use object url return type */\nexport interface UseObjectUrlReturn {\n /** Current object URL */\n value?: string;\n /** Revokes the object URL */\n revoke: () => void;\n /** Creates the object URL */\n set: (object: Blob | MediaSource) => void;\n}\n\n/**\n * @name useObjectUrl\n * @description - Hook that creates and revokes an object URL for a Blob or MediaSource\n * @category Browser\n * @usage low\n *\n * @browserapi URL.createObjectURL https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n *\n * @param {Blob | MediaSource} object The object to represent as a URL\n * @returns {UseObjectUrlReturn} An object with the current object URL\n *\n * @example\n * const { value } = useObjectUrl(blob);\n */\nexport const useObjectUrl = <Value extends Blob | MediaSource | undefined>(\n object?: Value\n): UseObjectUrlReturn => {\n const [value, setValue] = useState(() => {\n if (!object) return undefined;\n return URL.createObjectURL(object);\n });\n\n const revoke = () => {\n if (!value) return;\n URL.revokeObjectURL(value);\n setValue(undefined);\n };\n\n const set = (object: Blob | MediaSource) => {\n if (value) URL.revokeObjectURL(value);\n setValue(URL.createObjectURL(object));\n };\n\n return { value, revoke, set };\n};\n"],"mappings":"uEA0BA,IAAa,EACX,GACuB,CACvB,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,cAA2B,CAClC,KACL,OAAO,IAAI,gBAAgB,EAAO,EAClC,CAaF,MAAO,CAAE,QAAO,WAXK,CACd,IACL,IAAI,gBAAgB,EAAM,CAC1B,EAAS,IAAA,GAAU,GAQG,IALX,GAA+B,CACtC,GAAO,IAAI,gBAAgB,EAAM,CACrC,EAAS,IAAI,gBAAgB,EAAO,CAAC,EAGV"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),I=({total:g=Number.POSITIVE_INFINITY,initialPage:p=1,initialPageSize:f=10,onChange:e=()=>{}}={})=>{const[a,c]=u.useState(p),[t,P]=u.useState(f),S=u.useRef(e);S.current=e;const n=Math.max(1,Math.ceil(g/t)),i=a===1,o=a===n;return{page:a,setPage:s=>{c(s),e({page:s,pageSize:t})},setPageSize:P,pageSize:t,isFirstPage:i,isLastPage:o,pageCount:n,next:()=>{if(o)return e({page:n,pageSize:t});c(s=>{const r=s+1;return e({page:r,pageSize:t}),r})},prev:()=>{if(i)return e({page:1,pageSize:t});c(s=>{const r=s-1;return e({page:r,pageSize:t}),r})}}};exports.useOffsetPagination=I;
2
- //# sourceMappingURL=useOffsetPagination.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=({total:t=1/0,initialPage:n=1,initialPageSize:r=10,onChange:i=()=>{}}={})=>{let[a,o]=(0,e.useState)(n),[s,c]=(0,e.useState)(r),l=(0,e.useRef)(i);l.current=i;let u=Math.max(1,Math.ceil(t/s)),d=a===1,f=a===u;return{page:a,setPage:e=>{o(e),i({page:e,pageSize:s})},setPageSize:c,pageSize:s,isFirstPage:d,isLastPage:f,pageCount:u,next:()=>{if(f)return i({page:u,pageSize:s});o(e=>{let t=e+1;return i({page:t,pageSize:s}),t})},prev:()=>{if(d)return i({page:1,pageSize:s});o(e=>{let t=e-1;return i({page:t,pageSize:s}),t})}}};exports.useOffsetPagination=t;
2
+ //# sourceMappingURL=useOffsetPagination.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOffsetPagination.cjs","sources":["../../../../src/hooks/useOffsetPagination/useOffsetPagination.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\n/** The use offset pagination return type */\nexport interface UseOffsetPaginationOptions {\n /** The initial page number */\n initialPage?: number;\n /** The number of items per page */\n initialPageSize?: number;\n /** The total number of items */\n total?: number;\n /** The callback function to be invoked when page changes */\n onChange?: ({ page, pageSize }: { page: number; pageSize: number }) => void;\n}\n\n/** The use offset pagination return type */\nexport interface UseOffsetPaginationReturn {\n /** Whether the current page is the first page */\n isFirstPage: boolean;\n /** Whether the current page is the last page */\n isLastPage: boolean;\n /** The current page number */\n page: number;\n /** The total number of pages */\n pageCount: number;\n /** The number of items per page */\n pageSize: number;\n /** The callback function to go to the next page */\n next: () => void;\n /** The callback function to go to the previous page */\n prev: () => void;\n /** The callback function to set the current page */\n setPage: (page: number) => void;\n /** The callback function to set the page size */\n setPageSize: (pageSize: number) => void;\n}\n\n/**\n * @name useOffsetPagination\n * @description - Hook that defines the logic when pagination\n * @category State\n * @usage medium\n *\n * @param {UseOffsetPaginationOptions} options - The options for the hook\n * @param {number} [options.total] - The total number of items\n * @param {number} [options.pageSize] - The number of items per page\n * @param {number} [options.initialPage] - The current page\n * @param {({ page, pageSize }: { page: number; pageSize: number }) => void} [options.onChange] - The callback function to be invoked when page changes\n * @returns {UseOffsetPaginationReturn} - The state of the hook\n *\n * @example\n * const { currentPage, currentPageSize, pageCount, isFirstPage, isLastPage, prev, next } = useOffsetPagination({\n * total: 100,\n * initialPageSize: 10,\n * initialPage: 1\n * });\n */\nexport const useOffsetPagination = ({\n total = Number.POSITIVE_INFINITY,\n initialPage = 1,\n initialPageSize = 10,\n onChange = () => {}\n}: UseOffsetPaginationOptions = {}): UseOffsetPaginationReturn => {\n const [page, setPage] = useState(initialPage);\n const [pageSize, setPageSize] = useState(initialPageSize);\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const pageCount = Math.max(1, Math.ceil(total / pageSize));\n\n const isFirstPage = page === 1;\n const isLastPage = page === pageCount;\n\n const next = () => {\n if (isLastPage) return onChange({ page: pageCount, pageSize });\n\n setPage((prevPage) => {\n const page = prevPage + 1;\n onChange({ page, pageSize });\n return page;\n });\n };\n\n const prev = () => {\n if (isFirstPage) return onChange({ page: 1, pageSize });\n\n setPage((prevPage) => {\n const page = prevPage - 1;\n onChange({ page, pageSize });\n return page;\n });\n };\n\n const set = (page: number) => {\n setPage(page);\n onChange({ page, pageSize });\n };\n\n return {\n page,\n setPage: set,\n setPageSize,\n pageSize,\n isFirstPage,\n isLastPage,\n pageCount,\n next,\n prev\n };\n};\n"],"names":["useOffsetPagination","total","initialPage","initialPageSize","onChange","page","setPage","useState","pageSize","setPageSize","onChangeRef","useRef","pageCount","isFirstPage","isLastPage","prevPage"],"mappings":"yGAwDaA,EAAsB,CAAC,CAClC,MAAAC,EAAQ,OAAO,kBACf,YAAAC,EAAc,EACd,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,IAAM,CAAA,CACnB,EAAgC,KAAkC,CAChE,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAASL,CAAW,EACtC,CAACM,EAAUC,CAAW,EAAIF,EAAAA,SAASJ,CAAe,EAElDO,EAAcC,EAAAA,OAAOP,CAAQ,EACnCM,EAAY,QAAUN,EAEtB,MAAMQ,EAAY,KAAK,IAAI,EAAG,KAAK,KAAKX,EAAQO,CAAQ,CAAC,EAEnDK,EAAcR,IAAS,EACvBS,EAAaT,IAASO,EA2B5B,MAAO,CACL,KAAAP,EACA,QAPWA,GAAiB,CAC5BC,EAAQD,CAAI,EACZD,EAAS,CAAE,KAAAC,EAAM,SAAAG,CAAA,CAAU,CAAA,EAM3B,YAAAC,EACA,SAAAD,EACA,YAAAK,EACA,WAAAC,EACA,UAAAF,EACA,KAjCW,IAAM,CACjB,GAAIE,EAAY,OAAOV,EAAS,CAAE,KAAMQ,EAAW,SAAAJ,EAAU,EAE7DF,EAASS,GAAa,CACpB,MAAMV,EAAOU,EAAW,EACxB,OAAAX,EAAS,CAAE,KAAAC,EAAM,SAAAG,CAAA,CAAU,EACpBH,CAAA,CACR,CAAA,EA2BD,KAxBW,IAAM,CACjB,GAAIQ,EAAa,OAAOT,EAAS,CAAE,KAAM,EAAG,SAAAI,EAAU,EAEtDF,EAASS,GAAa,CACpB,MAAMV,EAAOU,EAAW,EACxB,OAAAX,EAAS,CAAE,KAAAC,EAAM,SAAAG,CAAA,CAAU,EACpBH,CAAA,CACR,CAAA,CAiBD,CAEJ"}
1
+ {"version":3,"file":"useOffsetPagination.cjs","names":[],"sources":["../../../../src/hooks/useOffsetPagination/useOffsetPagination.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\n/** The use offset pagination return type */\nexport interface UseOffsetPaginationOptions {\n /** The initial page number */\n initialPage?: number;\n /** The number of items per page */\n initialPageSize?: number;\n /** The total number of items */\n total?: number;\n /** The callback function to be invoked when page changes */\n onChange?: ({ page, pageSize }: { page: number; pageSize: number }) => void;\n}\n\n/** The use offset pagination return type */\nexport interface UseOffsetPaginationReturn {\n /** Whether the current page is the first page */\n isFirstPage: boolean;\n /** Whether the current page is the last page */\n isLastPage: boolean;\n /** The current page number */\n page: number;\n /** The total number of pages */\n pageCount: number;\n /** The number of items per page */\n pageSize: number;\n /** The callback function to go to the next page */\n next: () => void;\n /** The callback function to go to the previous page */\n prev: () => void;\n /** The callback function to set the current page */\n setPage: (page: number) => void;\n /** The callback function to set the page size */\n setPageSize: (pageSize: number) => void;\n}\n\n/**\n * @name useOffsetPagination\n * @description - Hook that defines the logic when pagination\n * @category State\n * @usage medium\n *\n * @param {UseOffsetPaginationOptions} options - The options for the hook\n * @param {number} [options.total] - The total number of items\n * @param {number} [options.pageSize] - The number of items per page\n * @param {number} [options.initialPage] - The current page\n * @param {({ page, pageSize }: { page: number; pageSize: number }) => void} [options.onChange] - The callback function to be invoked when page changes\n * @returns {UseOffsetPaginationReturn} - The state of the hook\n *\n * @example\n * const { currentPage, currentPageSize, pageCount, isFirstPage, isLastPage, prev, next } = useOffsetPagination({\n * total: 100,\n * initialPageSize: 10,\n * initialPage: 1\n * });\n */\nexport const useOffsetPagination = ({\n total = Number.POSITIVE_INFINITY,\n initialPage = 1,\n initialPageSize = 10,\n onChange = () => {}\n}: UseOffsetPaginationOptions = {}): UseOffsetPaginationReturn => {\n const [page, setPage] = useState(initialPage);\n const [pageSize, setPageSize] = useState(initialPageSize);\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const pageCount = Math.max(1, Math.ceil(total / pageSize));\n\n const isFirstPage = page === 1;\n const isLastPage = page === pageCount;\n\n const next = () => {\n if (isLastPage) return onChange({ page: pageCount, pageSize });\n\n setPage((prevPage) => {\n const page = prevPage + 1;\n onChange({ page, pageSize });\n return page;\n });\n };\n\n const prev = () => {\n if (isFirstPage) return onChange({ page: 1, pageSize });\n\n setPage((prevPage) => {\n const page = prevPage - 1;\n onChange({ page, pageSize });\n return page;\n });\n };\n\n const set = (page: number) => {\n setPage(page);\n onChange({ page, pageSize });\n };\n\n return {\n page,\n setPage: set,\n setPageSize,\n pageSize,\n isFirstPage,\n isLastPage,\n pageCount,\n next,\n prev\n };\n};\n"],"mappings":"uEAwDA,IAAa,GAAuB,CAClC,QAAQ,IACR,cAAc,EACd,kBAAkB,GAClB,eAAiB,IACa,EAAE,GAAgC,CAChE,GAAM,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAY,CACvC,CAAC,EAAU,IAAA,EAAA,EAAA,UAAwB,EAAgB,CAEnD,GAAA,EAAA,EAAA,QAAqB,EAAS,CACpC,EAAY,QAAU,EAEtB,IAAM,EAAY,KAAK,IAAI,EAAG,KAAK,KAAK,EAAQ,EAAS,CAAC,CAEpD,EAAc,IAAS,EACvB,EAAa,IAAS,EA2B5B,MAAO,CACL,OACA,QAPW,GAAiB,CAC5B,EAAQ,EAAK,CACb,EAAS,CAAE,OAAM,WAAU,CAAC,EAM5B,cACA,WACA,cACA,aACA,YACA,SAjCiB,CACjB,GAAI,EAAY,OAAO,EAAS,CAAE,KAAM,EAAW,WAAU,CAAC,CAE9D,EAAS,GAAa,CACpB,IAAM,EAAO,EAAW,EAExB,OADA,EAAS,CAAE,OAAM,WAAU,CAAC,CACrB,GACP,EA2BF,SAxBiB,CACjB,GAAI,EAAa,OAAO,EAAS,CAAE,KAAM,EAAG,WAAU,CAAC,CAEvD,EAAS,GAAa,CACpB,IAAM,EAAO,EAAW,EAExB,OADA,EAAS,CAAE,OAAM,WAAU,CAAC,CACrB,GACP,EAkBH"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function c(n){const r=e.useRef(void 0),t=e.useRef(!1),u=e.useRef(!1);t.current&&(u.current=!0),e.useEffect(()=>{if(!t.current)return t.current=!0,r.current=n(),()=>{u.current&&typeof r.current=="function"&&r.current()}},[])}exports.useOnce=c;
2
- //# sourceMappingURL=useOnce.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);function t(t){let n=(0,e.useRef)(void 0),r=(0,e.useRef)(!1),i=(0,e.useRef)(!1);r.current&&(i.current=!0),(0,e.useEffect)(()=>{if(!r.current)return r.current=!0,n.current=t(),()=>{i.current&&typeof n.current==`function`&&n.current()}},[])}exports.useOnce=t;
2
+ //# sourceMappingURL=useOnce.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnce.cjs","sources":["../../../../src/hooks/useOnce/useOnce.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useEffectOnce\n * @description - Hook that runs an effect only once. Please do not use it in production code!\n * @category Humor\n * @usage low\n *\n * @warning - This hook will run effect only once even in strict mode. Please do not use it in production code!\n *\n * @param {EffectCallback} effect The effect to run\n *\n * @example\n * useOnce(() => console.log('effect once'));\n */\nexport function useOnce(effect: EffectCallback) {\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const hasRunRef = useRef(false);\n const hasRenderedAfterRun = useRef(false);\n\n if (hasRunRef.current) {\n hasRenderedAfterRun.current = true;\n }\n\n useEffect(() => {\n if (hasRunRef.current) return;\n\n hasRunRef.current = true;\n cleanupRef.current = effect();\n\n return () => {\n if (!hasRenderedAfterRun.current) return;\n\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n }\n };\n }, []);\n}\n"],"names":["useOnce","effect","cleanupRef","useRef","hasRunRef","hasRenderedAfterRun","useEffect"],"mappings":"yGAiBO,SAASA,EAAQC,EAAwB,CAC9C,MAAMC,EAAaC,EAAAA,OAAmC,MAAS,EACzDC,EAAYD,EAAAA,OAAO,EAAK,EACxBE,EAAsBF,EAAAA,OAAO,EAAK,EAEpCC,EAAU,UACZC,EAAoB,QAAU,IAGhCC,EAAAA,UAAU,IAAM,CACd,GAAI,CAAAF,EAAU,QAEd,OAAAA,EAAU,QAAU,GACpBF,EAAW,QAAUD,EAAA,EAEd,IAAM,CACNI,EAAoB,SAErB,OAAOH,EAAW,SAAY,YAChCA,EAAW,QAAA,CACb,CACF,EACC,EAAE,CACP"}
1
+ {"version":3,"file":"useOnce.cjs","names":[],"sources":["../../../../src/hooks/useOnce/useOnce.ts"],"sourcesContent":["import type { EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useEffectOnce\n * @description - Hook that runs an effect only once. Please do not use it in production code!\n * @category Humor\n * @usage low\n *\n * @warning - This hook will run effect only once even in strict mode. Please do not use it in production code!\n *\n * @param {EffectCallback} effect The effect to run\n *\n * @example\n * useOnce(() => console.log('effect once'));\n */\nexport function useOnce(effect: EffectCallback) {\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const hasRunRef = useRef(false);\n const hasRenderedAfterRun = useRef(false);\n\n if (hasRunRef.current) {\n hasRenderedAfterRun.current = true;\n }\n\n useEffect(() => {\n if (hasRunRef.current) return;\n\n hasRunRef.current = true;\n cleanupRef.current = effect();\n\n return () => {\n if (!hasRenderedAfterRun.current) return;\n\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n }\n };\n }, []);\n}\n"],"mappings":"uEAiBA,SAAgB,EAAQ,EAAwB,CAC9C,IAAM,GAAA,EAAA,EAAA,QAAgD,IAAA,GAAU,CAC1D,GAAA,EAAA,EAAA,QAAmB,GAAM,CACzB,GAAA,EAAA,EAAA,QAA6B,GAAM,CAErC,EAAU,UACZ,EAAoB,QAAU,KAGhC,EAAA,EAAA,eAAgB,CACV,MAAU,QAKd,MAHA,GAAU,QAAU,GACpB,EAAW,QAAU,GAAQ,KAEhB,CACN,EAAoB,SAErB,OAAO,EAAW,SAAY,YAChC,EAAW,SAAS,GAGvB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=()=>navigator.onLine,o=()=>!1,i=e=>(window.addEventListener("online",e),window.addEventListener("offline",e),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",e)}),r=()=>n.useSyncExternalStore(i,t,o);exports.useOnline=r;
2
- //# sourceMappingURL=useOnline.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>navigator.onLine,n=()=>!1,r=e=>(window.addEventListener(`online`,e),window.addEventListener(`offline`,e),()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,e)}),i=()=>(0,e.useSyncExternalStore)(r,t,n);exports.useOnline=i;
2
+ //# sourceMappingURL=useOnline.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnline.cjs","sources":["../../../../src/hooks/useOnline/useOnline.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nconst getSnapshot = () => navigator.onLine;\nconst getServerSnapshot = () => false;\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback);\n window.addEventListener('offline', callback);\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n };\n};\n\n/**\n * @name useOnline\n * @description - Hook that manages if the user is online\n * @category Browser\n * @usage medium\n *\n * @browserapi navigator.onLine https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine\n *\n * @returns {boolean} A boolean indicating if the user is online\n *\n * @example\n * const online = useOnline();\n */\nexport const useOnline = () => useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"names":["getSnapshot","getServerSnapshot","subscribe","callback","useOnline","useSyncExternalStore"],"mappings":"yGAEMA,EAAc,IAAM,UAAU,OAC9BC,EAAoB,IAAM,GAC1BC,EAAaC,IACjB,OAAO,iBAAiB,SAAUA,CAAQ,EAC1C,OAAO,iBAAiB,UAAWA,CAAQ,EACpC,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAQ,EAC7C,OAAO,oBAAoB,UAAWA,CAAQ,CAAA,GAiBrCC,EAAY,IAAMC,EAAAA,qBAAqBH,EAAWF,EAAaC,CAAiB"}
1
+ {"version":3,"file":"useOnline.cjs","names":[],"sources":["../../../../src/hooks/useOnline/useOnline.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nconst getSnapshot = () => navigator.onLine;\nconst getServerSnapshot = () => false;\nconst subscribe = (callback: () => void) => {\n window.addEventListener('online', callback);\n window.addEventListener('offline', callback);\n return () => {\n window.removeEventListener('online', callback);\n window.removeEventListener('offline', callback);\n };\n};\n\n/**\n * @name useOnline\n * @description - Hook that manages if the user is online\n * @category Browser\n * @usage medium\n *\n * @browserapi navigator.onLine https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine\n *\n * @returns {boolean} A boolean indicating if the user is online\n *\n * @example\n * const online = useOnline();\n */\nexport const useOnline = () => useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n"],"mappings":"uEAEA,IAAM,MAAoB,UAAU,OAC9B,MAA0B,GAC1B,EAAa,IACjB,OAAO,iBAAiB,SAAU,EAAS,CAC3C,OAAO,iBAAiB,UAAW,EAAS,KAC/B,CACX,OAAO,oBAAoB,SAAU,EAAS,CAC9C,OAAO,oBAAoB,UAAW,EAAS,GAiBtC,OAAA,EAAA,EAAA,sBAAuC,EAAW,EAAa,EAAkB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=()=>{if(typeof window>"u")return"undetermined";const{userAgent:e}=window.navigator;return/Macintosh|MacIntel|MacPPC|Mac68K/i.test(e)?"macos":/iPhone|iPad|iPod/i.test(e)?"ios":/Win32|Win64|Windows|WinCE/i.test(e)?"windows":/Android/i.test(e)?"android":/Linux/i.test(e)?"linux":"undetermined"},i=()=>{const[e]=n.useState(t());return e};exports.getOperatingSystem=t;exports.useOperatingSystem=i;
2
- //# sourceMappingURL=useOperatingSystem.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{if(typeof window>`u`)return`undetermined`;let{userAgent:e}=window.navigator;return/Macintosh|MacIntel|MacPPC|Mac68K/i.test(e)?`macos`:/iPhone|iPad|iPod/i.test(e)?`ios`:/Win32|Win64|Windows|WinCE/i.test(e)?`windows`:/Android/i.test(e)?`android`:/Linux/i.test(e)?`linux`:`undetermined`},n=()=>{let[n]=(0,e.useState)(t());return n};exports.getOperatingSystem=t,exports.useOperatingSystem=n;
2
+ //# sourceMappingURL=useOperatingSystem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOperatingSystem.cjs","sources":["../../../../src/hooks/useOperatingSystem/useOperatingSystem.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The operating system type */\nexport type OperatingSystem = 'android' | 'ios' | 'linux' | 'macos' | 'undetermined' | 'windows';\n\nexport const getOperatingSystem = (): OperatingSystem => {\n if (typeof window === 'undefined') return 'undetermined';\n\n const { userAgent } = window.navigator;\n\n if (/Macintosh|MacIntel|MacPPC|Mac68K/i.test(userAgent)) return 'macos';\n if (/iPhone|iPad|iPod/i.test(userAgent)) return 'ios';\n if (/Win32|Win64|Windows|WinCE/i.test(userAgent)) return 'windows';\n if (/Android/i.test(userAgent)) return 'android';\n if (/Linux/i.test(userAgent)) return 'linux';\n\n return 'undetermined';\n};\n\n/**\n * @name useOperatingSystem\n * @description - Hook that returns the operating system of the current browser\n * @category User\n * @usage low\n *\n * @returns {OperatingSystem} The operating system\n *\n * @example\n * const operatingSystem = useOperatingSystem();\n */\nexport const useOperatingSystem = () => {\n const [osOperatingSystem] = useState<OperatingSystem>(getOperatingSystem());\n return osOperatingSystem;\n};\n"],"names":["getOperatingSystem","userAgent","useOperatingSystem","osOperatingSystem","useState"],"mappings":"yGAKaA,EAAqB,IAAuB,CACvD,GAAI,OAAO,OAAW,IAAa,MAAO,eAE1C,KAAM,CAAE,UAAAC,GAAc,OAAO,UAE7B,MAAI,oCAAoC,KAAKA,CAAS,EAAU,QAC5D,oBAAoB,KAAKA,CAAS,EAAU,MAC5C,6BAA6B,KAAKA,CAAS,EAAU,UACrD,WAAW,KAAKA,CAAS,EAAU,UACnC,SAAS,KAAKA,CAAS,EAAU,QAE9B,cACT,EAaaC,EAAqB,IAAM,CACtC,KAAM,CAACC,CAAiB,EAAIC,EAAAA,SAA0BJ,GAAoB,EAC1E,OAAOG,CACT"}
1
+ {"version":3,"file":"useOperatingSystem.cjs","names":[],"sources":["../../../../src/hooks/useOperatingSystem/useOperatingSystem.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The operating system type */\nexport type OperatingSystem = 'android' | 'ios' | 'linux' | 'macos' | 'undetermined' | 'windows';\n\nexport const getOperatingSystem = (): OperatingSystem => {\n if (typeof window === 'undefined') return 'undetermined';\n\n const { userAgent } = window.navigator;\n\n if (/Macintosh|MacIntel|MacPPC|Mac68K/i.test(userAgent)) return 'macos';\n if (/iPhone|iPad|iPod/i.test(userAgent)) return 'ios';\n if (/Win32|Win64|Windows|WinCE/i.test(userAgent)) return 'windows';\n if (/Android/i.test(userAgent)) return 'android';\n if (/Linux/i.test(userAgent)) return 'linux';\n\n return 'undetermined';\n};\n\n/**\n * @name useOperatingSystem\n * @description - Hook that returns the operating system of the current browser\n * @category User\n * @usage low\n *\n * @returns {OperatingSystem} The operating system\n *\n * @example\n * const operatingSystem = useOperatingSystem();\n */\nexport const useOperatingSystem = () => {\n const [osOperatingSystem] = useState<OperatingSystem>(getOperatingSystem());\n return osOperatingSystem;\n};\n"],"mappings":"uEAKA,IAAa,MAA4C,CACvD,GAAI,OAAO,OAAW,IAAa,MAAO,eAE1C,GAAM,CAAE,aAAc,OAAO,UAQ7B,MANI,oCAAoC,KAAK,EAAU,CAAS,QAC5D,oBAAoB,KAAK,EAAU,CAAS,MAC5C,6BAA6B,KAAK,EAAU,CAAS,UACrD,WAAW,KAAK,EAAU,CAAS,UACnC,SAAS,KAAK,EAAU,CAAS,QAE9B,gBAcI,MAA2B,CACtC,GAAM,CAAC,IAAA,EAAA,EAAA,UAA+C,GAAoB,CAAC,CAC3E,OAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),p=require("../useDidUpdate/useDidUpdate.cjs"),f=(t,s)=>{const[a,r]=e.useState(t),u=e.useRef(s);u.current=s;const[i,n]=e.useState(!1);return p.useDidUpdate(()=>{i&&(r(t),n(!1))},[i]),[a,(c,o)=>(r(d=>u.current(d,c)),o.finally(()=>n(!0)))]};exports.useOptimistic=f;
2
- //# sourceMappingURL=useOptimistic.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)(n),o=(0,t.useRef)(r);o.current=r;let[s,c]=(0,t.useState)(!1);return e.useDidUpdate(()=>{s&&(a(n),c(!1))},[s]),[i,(e,t)=>(a(t=>o.current(t,e)),t.finally(()=>c(!0)))]};exports.useOptimistic=n;
2
+ //# sourceMappingURL=useOptimistic.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOptimistic.cjs","sources":["../../../../src/hooks/useOptimistic/useOptimistic.ts"],"sourcesContent":["import { useRef, useState } from 'react';\r\n\r\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\r\n\r\nexport type UseOptimisticReturn<State> = [\r\n State,\r\n (optimisticValue: State, promise: Promise<any>) => void\r\n];\r\n\r\n/**\r\n * @name useOptimistic\r\n * @description - Hook that allows get optimistic value before its update\r\n * @category Async\r\n * @usage medium\r\n *\r\n * @template State The type of the state\r\n * @param {State} state The value to be returned initially and whenever no action is pending\r\n * @param {(currentState: State, optimisticValue: State) => State} update A pure function that takes the current state and the optimistic value passed to updateOptimistic and returns the resulting optimistic state\r\n * @returns {UseOptimisticReturn<State>} The resulting optimistic state, and the function to update it\r\n *\r\n * @example\r\n * const [optimisticValue, updateOptimistic] = useOptimistic<number>(count, (currentState, optimisticValue) => currentState + optimisticValue);\r\n */\r\nexport const useOptimistic = <State, OptimisticState = State>(\r\n externalState: State,\r\n update: (currentState: State, optimisticState: OptimisticState) => State\r\n) => {\r\n const [state, setState] = useState<State>(externalState);\r\n const internalUpdateRef = useRef(update);\r\n internalUpdateRef.current = update;\r\n\r\n const [promised, setPromised] = useState(false);\r\n\r\n useDidUpdate(() => {\r\n if (!promised) return;\r\n setState(externalState);\r\n setPromised(false);\r\n }, [promised]);\r\n\r\n const updateState = (optimisticValue: OptimisticState, promise: Promise<any>) => {\r\n setState((currentState) => internalUpdateRef.current(currentState, optimisticValue));\r\n return promise.finally(() => setPromised(true));\r\n };\r\n\r\n return [state, updateState] as const;\r\n};\r\n"],"names":["useOptimistic","externalState","update","state","setState","useState","internalUpdateRef","useRef","promised","setPromised","useDidUpdate","optimisticValue","promise","currentState"],"mappings":"uJAuBaA,EAAgB,CAC3BC,EACAC,IACG,CACH,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAgBJ,CAAa,EACjDK,EAAoBC,EAAAA,OAAOL,CAAM,EACvCI,EAAkB,QAAUJ,EAE5B,KAAM,CAACM,EAAUC,CAAW,EAAIJ,EAAAA,SAAS,EAAK,EAE9CK,OAAAA,EAAAA,aAAa,IAAM,CACZF,IACLJ,EAASH,CAAa,EACtBQ,EAAY,EAAK,EAAA,EAChB,CAACD,CAAQ,CAAC,EAON,CAACL,EALY,CAACQ,EAAkCC,KACrDR,EAAUS,GAAiBP,EAAkB,QAAQO,EAAcF,CAAe,CAAC,EAC5EC,EAAQ,QAAQ,IAAMH,EAAY,EAAI,CAAC,EAGtB,CAC5B"}
1
+ {"version":3,"file":"useOptimistic.cjs","names":[],"sources":["../../../../src/hooks/useOptimistic/useOptimistic.ts"],"sourcesContent":["import { useRef, useState } from 'react';\r\n\r\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\r\n\r\nexport type UseOptimisticReturn<State> = [\r\n State,\r\n (optimisticValue: State, promise: Promise<any>) => void\r\n];\r\n\r\n/**\r\n * @name useOptimistic\r\n * @description - Hook that allows get optimistic value before its update\r\n * @category Async\r\n * @usage medium\r\n *\r\n * @template State The type of the state\r\n * @param {State} state The value to be returned initially and whenever no action is pending\r\n * @param {(currentState: State, optimisticValue: State) => State} update A pure function that takes the current state and the optimistic value passed to updateOptimistic and returns the resulting optimistic state\r\n * @returns {UseOptimisticReturn<State>} The resulting optimistic state, and the function to update it\r\n *\r\n * @example\r\n * const [optimisticValue, updateOptimistic] = useOptimistic<number>(count, (currentState, optimisticValue) => currentState + optimisticValue);\r\n */\r\nexport const useOptimistic = <State, OptimisticState = State>(\r\n externalState: State,\r\n update: (currentState: State, optimisticState: OptimisticState) => State\r\n) => {\r\n const [state, setState] = useState<State>(externalState);\r\n const internalUpdateRef = useRef(update);\r\n internalUpdateRef.current = update;\r\n\r\n const [promised, setPromised] = useState(false);\r\n\r\n useDidUpdate(() => {\r\n if (!promised) return;\r\n setState(externalState);\r\n setPromised(false);\r\n }, [promised]);\r\n\r\n const updateState = (optimisticValue: OptimisticState, promise: Promise<any>) => {\r\n setState((currentState) => internalUpdateRef.current(currentState, optimisticValue));\r\n return promise.finally(() => setPromised(true));\r\n };\r\n\r\n return [state, updateState] as const;\r\n};\r\n"],"mappings":"2HAuBA,IAAa,GACX,EACA,IACG,CACH,GAAM,CAAC,EAAO,IAAA,EAAA,EAAA,UAA4B,EAAc,CAClD,GAAA,EAAA,EAAA,QAA2B,EAAO,CACxC,EAAkB,QAAU,EAE5B,GAAM,CAAC,EAAU,IAAA,EAAA,EAAA,UAAwB,GAAM,CAa/C,OAXA,EAAA,iBAAmB,CACZ,IACL,EAAS,EAAc,CACvB,EAAY,GAAM,GACjB,CAAC,EAAS,CAAC,CAOP,CAAC,GALa,EAAkC,KACrD,EAAU,GAAiB,EAAkB,QAAQ,EAAc,EAAgB,CAAC,CAC7E,EAAQ,YAAc,EAAY,GAAK,CAAC,EAGtB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),c=()=>{const e=typeof window<"u"&&"screen"in window&&"orientation"in window.screen,n=e?window.screen.orientation:{},[i,r]=o.useState({angle:n.angle??0,orientationType:n.type});return o.useEffect(()=>{if(!e)return;const t=()=>r({angle:window.screen.orientation.angle,orientationType:window.screen.orientation.type});return window.addEventListener("orientationchange",t),()=>{window.removeEventListener("orientationchange",t)}},[]),{supported:e,value:i,lock:t=>{if(e&&typeof n.lock=="function")return n.lock(t)},unlock:()=>{e&&typeof n.unlock=="function"&&n.unlock()}}};exports.useOrientation=c;
2
- //# sourceMappingURL=useOrientation.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=()=>{let t=typeof window<`u`&&`screen`in window&&`orientation`in window.screen,n=t?window.screen.orientation:{},[r,i]=(0,e.useState)({angle:n.angle??0,orientationType:n.type});return(0,e.useEffect)(()=>{if(!t)return;let e=()=>i({angle:window.screen.orientation.angle,orientationType:window.screen.orientation.type});return window.addEventListener(`orientationchange`,e),()=>{window.removeEventListener(`orientationchange`,e)}},[]),{supported:t,value:r,lock:e=>{if(t&&typeof n.lock==`function`)return n.lock(e)},unlock:()=>{t&&typeof n.unlock==`function`&&n.unlock()}}};exports.useOrientation=t;
2
+ //# sourceMappingURL=useOrientation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOrientation.cjs","sources":["../../../../src/hooks/useOrientation/useOrientation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\r\n\r\ndeclare global {\r\n interface ScreenOrientation {\r\n lock: (orientation: OrientationLockType) => Promise<void>;\r\n }\r\n}\r\n\r\n/* The use device orientation value type */\r\nexport interface UseOrientationValue {\r\n /** The current angle */\r\n angle: number;\r\n /** The current orientation type */\r\n orientationType?: OrientationType;\r\n}\r\n\r\n/* The screen lock orientation type */\r\nexport type OrientationLockType =\r\n | 'any'\r\n | 'landscape-primary'\r\n | 'landscape-secondary'\r\n | 'landscape'\r\n | 'natural'\r\n | 'portrait-primary'\r\n | 'portrait-secondary'\r\n | 'portrait';\r\n\r\n/* The use device orientation return type */\r\nexport interface useOrientationReturn {\r\n /** Whether the screen orientation is supported */\r\n supported: boolean;\r\n /** The current screen orientation value */\r\n value: UseOrientationValue;\r\n /** Lock the screen orientation */\r\n lock: (orientation: OrientationLockType) => void;\r\n /** Unlock the screen orientation */\r\n unlock: () => void;\r\n}\r\n\r\n/**\r\n * @name useOrientation\r\n * @description - Hook that provides the current screen orientation\r\n * @category Sensors\r\n * @usage low\r\n *\r\n * @browserapi screen.orientation https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation\r\n *\r\n * @returns {useOrientationReturn} The current screen orientation\r\n *\r\n * @example\r\n * const { supported, value, lock, unlock } = useOrientation();\r\n */\r\nexport const useOrientation = (): useOrientationReturn => {\r\n const supported =\r\n typeof window !== 'undefined' && 'screen' in window && 'orientation' in window.screen;\r\n const orientation = (supported ? window.screen.orientation : {}) as ScreenOrientation;\r\n\r\n const [value, setValue] = useState<UseOrientationValue>({\r\n angle: orientation.angle ?? 0,\r\n orientationType: orientation.type\r\n });\r\n\r\n useEffect(() => {\r\n if (!supported) return;\r\n\r\n const onOrientationChange = () =>\r\n setValue({\r\n angle: window.screen.orientation.angle,\r\n orientationType: window.screen.orientation.type\r\n });\r\n\r\n window.addEventListener('orientationchange', onOrientationChange);\r\n return () => {\r\n window.removeEventListener('orientationchange', onOrientationChange);\r\n };\r\n }, []);\r\n\r\n const lock = (type: OrientationLockType) => {\r\n if (supported && typeof orientation.lock === 'function') return orientation.lock(type);\r\n };\r\n\r\n const unlock = () => {\r\n if (supported && typeof orientation.unlock === 'function') orientation.unlock();\r\n };\r\n\r\n return {\r\n supported,\r\n value,\r\n lock,\r\n unlock\r\n };\r\n};\r\n"],"names":["useOrientation","supported","orientation","value","setValue","useState","useEffect","onOrientationChange","type"],"mappings":"yGAoDaA,EAAiB,IAA4B,CACxD,MAAMC,EACJ,OAAO,OAAW,KAAe,WAAY,QAAU,gBAAiB,OAAO,OAC3EC,EAAeD,EAAY,OAAO,OAAO,YAAc,CAAA,EAEvD,CAACE,EAAOC,CAAQ,EAAIC,WAA8B,CACtD,MAAOH,EAAY,OAAS,EAC5B,gBAAiBA,EAAY,IAAA,CAC9B,EAEDI,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACL,EAAW,OAEhB,MAAMM,EAAsB,IAC1BH,EAAS,CACP,MAAO,OAAO,OAAO,YAAY,MACjC,gBAAiB,OAAO,OAAO,YAAY,IAAA,CAC5C,EAEH,cAAO,iBAAiB,oBAAqBG,CAAmB,EACzD,IAAM,CACX,OAAO,oBAAoB,oBAAqBA,CAAmB,CAAA,CACrE,EACC,EAAE,EAUE,CACL,UAAAN,EACA,MAAAE,EACA,KAXYK,GAA8B,CAC1C,GAAIP,GAAa,OAAOC,EAAY,MAAS,WAAY,OAAOA,EAAY,KAAKM,CAAI,CAAA,EAWrF,OARa,IAAM,CACfP,GAAa,OAAOC,EAAY,QAAW,cAAwB,OAAA,CAAO,CAO9E,CAEJ"}
1
+ {"version":3,"file":"useOrientation.cjs","names":[],"sources":["../../../../src/hooks/useOrientation/useOrientation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\r\n\r\ndeclare global {\r\n interface ScreenOrientation {\r\n lock: (orientation: OrientationLockType) => Promise<void>;\r\n }\r\n}\r\n\r\n/* The use device orientation value type */\r\nexport interface UseOrientationValue {\r\n /** The current angle */\r\n angle: number;\r\n /** The current orientation type */\r\n orientationType?: OrientationType;\r\n}\r\n\r\n/* The screen lock orientation type */\r\nexport type OrientationLockType =\r\n | 'any'\r\n | 'landscape-primary'\r\n | 'landscape-secondary'\r\n | 'landscape'\r\n | 'natural'\r\n | 'portrait-primary'\r\n | 'portrait-secondary'\r\n | 'portrait';\r\n\r\n/* The use device orientation return type */\r\nexport interface useOrientationReturn {\r\n /** Whether the screen orientation is supported */\r\n supported: boolean;\r\n /** The current screen orientation value */\r\n value: UseOrientationValue;\r\n /** Lock the screen orientation */\r\n lock: (orientation: OrientationLockType) => void;\r\n /** Unlock the screen orientation */\r\n unlock: () => void;\r\n}\r\n\r\n/**\r\n * @name useOrientation\r\n * @description - Hook that provides the current screen orientation\r\n * @category Sensors\r\n * @usage low\r\n *\r\n * @browserapi screen.orientation https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation\r\n *\r\n * @returns {useOrientationReturn} The current screen orientation\r\n *\r\n * @example\r\n * const { supported, value, lock, unlock } = useOrientation();\r\n */\r\nexport const useOrientation = (): useOrientationReturn => {\r\n const supported =\r\n typeof window !== 'undefined' && 'screen' in window && 'orientation' in window.screen;\r\n const orientation = (supported ? window.screen.orientation : {}) as ScreenOrientation;\r\n\r\n const [value, setValue] = useState<UseOrientationValue>({\r\n angle: orientation.angle ?? 0,\r\n orientationType: orientation.type\r\n });\r\n\r\n useEffect(() => {\r\n if (!supported) return;\r\n\r\n const onOrientationChange = () =>\r\n setValue({\r\n angle: window.screen.orientation.angle,\r\n orientationType: window.screen.orientation.type\r\n });\r\n\r\n window.addEventListener('orientationchange', onOrientationChange);\r\n return () => {\r\n window.removeEventListener('orientationchange', onOrientationChange);\r\n };\r\n }, []);\r\n\r\n const lock = (type: OrientationLockType) => {\r\n if (supported && typeof orientation.lock === 'function') return orientation.lock(type);\r\n };\r\n\r\n const unlock = () => {\r\n if (supported && typeof orientation.unlock === 'function') orientation.unlock();\r\n };\r\n\r\n return {\r\n supported,\r\n value,\r\n lock,\r\n unlock\r\n };\r\n};\r\n"],"mappings":"uEAoDA,IAAa,MAA6C,CACxD,IAAM,EACJ,OAAO,OAAW,KAAe,WAAY,QAAU,gBAAiB,OAAO,OAC3E,EAAe,EAAY,OAAO,OAAO,YAAc,EAAE,CAEzD,CAAC,EAAO,IAAA,EAAA,EAAA,UAA0C,CACtD,MAAO,EAAY,OAAS,EAC5B,gBAAiB,EAAY,KAC9B,CAAC,CAyBF,OAvBA,EAAA,EAAA,eAAgB,CACd,GAAI,CAAC,EAAW,OAEhB,IAAM,MACJ,EAAS,CACP,MAAO,OAAO,OAAO,YAAY,MACjC,gBAAiB,OAAO,OAAO,YAAY,KAC5C,CAAC,CAGJ,OADA,OAAO,iBAAiB,oBAAqB,EAAoB,KACpD,CACX,OAAO,oBAAoB,oBAAqB,EAAoB,GAErE,EAAE,CAAC,CAUC,CACL,YACA,QACA,KAXY,GAA8B,CAC1C,GAAI,GAAa,OAAO,EAAY,MAAS,WAAY,OAAO,EAAY,KAAK,EAAK,EAWtF,WARmB,CACf,GAAa,OAAO,EAAY,QAAW,YAAY,EAAY,QAAQ,EAQhF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),a=((...e)=>{const n=typeof navigator<"u"&&"OTPCredential"in navigator&&!!navigator.OTPCredential,o=typeof e[0]=="object"?e[0]:{onSuccess:e[0]},t=c.useRef(new AbortController);return{supported:n,abort:()=>{t.current.abort(),t.current=new AbortController},get:async()=>{if(n){t.current=new AbortController;try{const r=await navigator.credentials.get({otp:{transport:["sms"]},signal:t.current.signal});return o.onSuccess?.(r),r}catch(r){o.onError?.(r)}}}}});exports.useOtpCredential=a;
2
- //# sourceMappingURL=useOtpCredential.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=((...t)=>{let n=typeof navigator<`u`&&`OTPCredential`in navigator&&!!navigator.OTPCredential,r=typeof t[0]==`object`?t[0]:{onSuccess:t[0]},i=(0,e.useRef)(new AbortController);return{supported:n,abort:()=>{i.current.abort(),i.current=new AbortController},get:async()=>{if(n){i.current=new AbortController;try{let e=await navigator.credentials.get({otp:{transport:[`sms`]},signal:i.current.signal});return r.onSuccess?.(e),e}catch(e){r.onError?.(e)}}}}});exports.useOtpCredential=t;
2
+ //# sourceMappingURL=useOtpCredential.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOtpCredential.cjs","sources":["../../../../src/hooks/useOtpCredential/useOtpCredential.ts"],"sourcesContent":["import { useRef } from 'react';\r\n\r\ndeclare global {\r\n interface OTPOptions {\r\n readonly transport: string[];\r\n }\r\n\r\n interface CredentialRequestOptions {\r\n readonly otp: OTPOptions;\r\n }\r\n\r\n interface Credential {\r\n readonly code: string;\r\n }\r\n}\r\n\r\n/* The use otp credential callback type */\r\nexport type UseOtpCredentialCallback = (otp: Credential | null) => void;\r\n\r\n/* The use otp credential options type */\r\nexport interface UseOtpCredentialParams {\r\n /* The callback function to be invoked on error */\r\n onError?: (error: any) => void;\r\n /* The callback function to be invoked on success */\r\n onSuccess?: (credential: Credential | null) => void;\r\n}\r\n\r\n/* The use otp credential return type */\r\nexport interface UseOtpCredentialReturn {\r\n /* The abort function */\r\n abort: AbortController['abort'];\r\n /* The supported state of the otp credential */\r\n supported: boolean;\r\n /* The get otp credential function */\r\n get: () => Promise<Credential | null>;\r\n}\r\n\r\nexport interface UseOtpCredential {\r\n (callback?: UseOtpCredentialCallback): UseOtpCredentialReturn;\r\n\r\n (params?: UseOtpCredentialParams): UseOtpCredentialReturn;\r\n}\r\n\r\n/**\r\n * @name useOtpCredential\r\n * @description - Hook that creates an otp credential\r\n * @category Browser\r\n * @usage low\r\n *\r\n * @browserapi navigator.credentials https://developer.mozilla.org/en-US/docs/Web/API/Navigator/credentials\r\n *\r\n * @overload\r\n * @param {UseOtpCredentialCallback} callback The callback function to be invoked\r\n * @returns {UseOtpCredentialReturn}\r\n *\r\n * @example\r\n * useOtpCredential((credential) => console.log(credential));\r\n *\r\n * @overload\r\n * @param {UseOtpCredentialCallback} params.onSuccess The callback function to be invoked on success\r\n * @param {UseOtpCredentialCallback} params.onError The callback function to be invoked on error\r\n * @returns {UseOtpCredentialReturn}\r\n *\r\n * @example\r\n * useOtpCredential({ onSuccess: (credential) => console.log(credential), onError: (error) => console.log(error) });\r\n */\r\nexport const useOtpCredential = ((...params: any[]) => {\r\n const supported =\r\n typeof navigator !== 'undefined' && 'OTPCredential' in navigator && !!navigator.OTPCredential;\r\n\r\n const options =\r\n typeof params[0] === 'object'\r\n ? params[0]\r\n : {\r\n onSuccess: params[0]\r\n };\r\n\r\n const abortControllerRef = useRef<AbortController>(new AbortController());\r\n\r\n const get = async () => {\r\n if (!supported) return;\r\n\r\n abortControllerRef.current = new AbortController();\r\n try {\r\n const credential = await navigator.credentials.get({\r\n otp: { transport: ['sms'] },\r\n signal: abortControllerRef.current.signal\r\n });\r\n options.onSuccess?.(credential);\r\n\r\n return credential;\r\n } catch (error) {\r\n options.onError?.(error);\r\n }\r\n };\r\n\r\n const abort = () => {\r\n abortControllerRef.current.abort();\r\n abortControllerRef.current = new AbortController();\r\n };\r\n\r\n return { supported, abort, get };\r\n}) as UseOtpCredential;\r\n"],"names":["useOtpCredential","params","supported","options","abortControllerRef","useRef","credential","error"],"mappings":"yGAkEaA,GAAoB,IAAIC,IAAkB,CACrD,MAAMC,EACJ,OAAO,UAAc,KAAe,kBAAmB,WAAa,CAAC,CAAC,UAAU,cAE5EC,EACJ,OAAOF,EAAO,CAAC,GAAM,SACjBA,EAAO,CAAC,EACR,CACE,UAAWA,EAAO,CAAC,CAAA,EAGrBG,EAAqBC,EAAAA,OAAwB,IAAI,eAAiB,EAwBxE,MAAO,CAAE,UAAAH,EAAW,MALN,IAAM,CAClBE,EAAmB,QAAQ,MAAA,EAC3BA,EAAmB,QAAU,IAAI,eAAgB,EAGxB,IAtBf,SAAY,CACtB,GAAKF,EAEL,CAAAE,EAAmB,QAAU,IAAI,gBACjC,GAAI,CACF,MAAME,EAAa,MAAM,UAAU,YAAY,IAAI,CACjD,IAAK,CAAE,UAAW,CAAC,KAAK,CAAA,EACxB,OAAQF,EAAmB,QAAQ,MAAA,CACpC,EACD,OAAAD,EAAQ,YAAYG,CAAU,EAEvBA,CAAA,OACAC,EAAO,CACdJ,EAAQ,UAAUI,CAAK,CAAA,EACzB,CAQyB,CAC7B"}
1
+ {"version":3,"file":"useOtpCredential.cjs","names":[],"sources":["../../../../src/hooks/useOtpCredential/useOtpCredential.ts"],"sourcesContent":["import { useRef } from 'react';\r\n\r\ndeclare global {\r\n interface OTPOptions {\r\n readonly transport: string[];\r\n }\r\n\r\n interface CredentialRequestOptions {\r\n readonly otp: OTPOptions;\r\n }\r\n\r\n interface Credential {\r\n readonly code: string;\r\n }\r\n}\r\n\r\n/* The use otp credential callback type */\r\nexport type UseOtpCredentialCallback = (otp: Credential | null) => void;\r\n\r\n/* The use otp credential options type */\r\nexport interface UseOtpCredentialParams {\r\n /* The callback function to be invoked on error */\r\n onError?: (error: any) => void;\r\n /* The callback function to be invoked on success */\r\n onSuccess?: (credential: Credential | null) => void;\r\n}\r\n\r\n/* The use otp credential return type */\r\nexport interface UseOtpCredentialReturn {\r\n /* The abort function */\r\n abort: AbortController['abort'];\r\n /* The supported state of the otp credential */\r\n supported: boolean;\r\n /* The get otp credential function */\r\n get: () => Promise<Credential | null>;\r\n}\r\n\r\nexport interface UseOtpCredential {\r\n (callback?: UseOtpCredentialCallback): UseOtpCredentialReturn;\r\n\r\n (params?: UseOtpCredentialParams): UseOtpCredentialReturn;\r\n}\r\n\r\n/**\r\n * @name useOtpCredential\r\n * @description - Hook that creates an otp credential\r\n * @category Browser\r\n * @usage low\r\n *\r\n * @browserapi navigator.credentials https://developer.mozilla.org/en-US/docs/Web/API/Navigator/credentials\r\n *\r\n * @overload\r\n * @param {UseOtpCredentialCallback} callback The callback function to be invoked\r\n * @returns {UseOtpCredentialReturn}\r\n *\r\n * @example\r\n * useOtpCredential((credential) => console.log(credential));\r\n *\r\n * @overload\r\n * @param {UseOtpCredentialCallback} params.onSuccess The callback function to be invoked on success\r\n * @param {UseOtpCredentialCallback} params.onError The callback function to be invoked on error\r\n * @returns {UseOtpCredentialReturn}\r\n *\r\n * @example\r\n * useOtpCredential({ onSuccess: (credential) => console.log(credential), onError: (error) => console.log(error) });\r\n */\r\nexport const useOtpCredential = ((...params: any[]) => {\r\n const supported =\r\n typeof navigator !== 'undefined' && 'OTPCredential' in navigator && !!navigator.OTPCredential;\r\n\r\n const options =\r\n typeof params[0] === 'object'\r\n ? params[0]\r\n : {\r\n onSuccess: params[0]\r\n };\r\n\r\n const abortControllerRef = useRef<AbortController>(new AbortController());\r\n\r\n const get = async () => {\r\n if (!supported) return;\r\n\r\n abortControllerRef.current = new AbortController();\r\n try {\r\n const credential = await navigator.credentials.get({\r\n otp: { transport: ['sms'] },\r\n signal: abortControllerRef.current.signal\r\n });\r\n options.onSuccess?.(credential);\r\n\r\n return credential;\r\n } catch (error) {\r\n options.onError?.(error);\r\n }\r\n };\r\n\r\n const abort = () => {\r\n abortControllerRef.current.abort();\r\n abortControllerRef.current = new AbortController();\r\n };\r\n\r\n return { supported, abort, get };\r\n}) as UseOtpCredential;\r\n"],"mappings":"uEAkEA,IAAa,IAAqB,GAAG,IAAkB,CACrD,IAAM,EACJ,OAAO,UAAc,KAAe,kBAAmB,WAAa,CAAC,CAAC,UAAU,cAE5E,EACJ,OAAO,EAAO,IAAO,SACjB,EAAO,GACP,CACE,UAAW,EAAO,GACnB,CAED,GAAA,EAAA,EAAA,QAA6C,IAAI,gBAAkB,CAwBzE,MAAO,CAAE,YAAW,UALA,CAClB,EAAmB,QAAQ,OAAO,CAClC,EAAmB,QAAU,IAAI,iBAGR,IAtBf,SAAY,CACjB,KAEL,GAAmB,QAAU,IAAI,gBACjC,GAAI,CACF,IAAM,EAAa,MAAM,UAAU,YAAY,IAAI,CACjD,IAAK,CAAE,UAAW,CAAC,MAAM,CAAE,CAC3B,OAAQ,EAAmB,QAAQ,OACpC,CAAC,CAGF,OAFA,EAAQ,YAAY,EAAW,CAExB,QACA,EAAO,CACd,EAAQ,UAAU,EAAM,IASI"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),u=require("../useEvent/useEvent.cjs"),o=r=>{const[t,s]=n.useState(!1),e=u.useEvent(()=>{if(t)return s(!1);r?.(),s(!0)});return n.useEffect(()=>(document.addEventListener("mouseleave",e,{passive:!0}),document.addEventListener("mouseenter",e,{passive:!0}),()=>{document.removeEventListener("mouseenter",e),document.removeEventListener("mouseleave",e)}),[]),t};exports.usePageLeave=o;
2
- //# sourceMappingURL=usePageLeave.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../useEvent/useEvent.cjs`);let t=require(`react`);var n=n=>{let[r,i]=(0,t.useState)(!1),a=e.useEvent(()=>{if(r)return i(!1);n?.(),i(!0)});return(0,t.useEffect)(()=>(document.addEventListener(`mouseleave`,a,{passive:!0}),document.addEventListener(`mouseenter`,a,{passive:!0}),()=>{document.removeEventListener(`mouseenter`,a),document.removeEventListener(`mouseleave`,a)}),[]),r};exports.usePageLeave=n;
2
+ //# sourceMappingURL=usePageLeave.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePageLeave.cjs","sources":["../../../../src/hooks/usePageLeave/usePageLeave.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/**\n * @name usePageLeave\n * @description - Hook what calls given function when mouse leaves the page\n * @category Sensors\n * @usage low\n *\n * @param {() => void} [callback] The callback function what calls then mouse leaves the page\n * @returns {boolean} A boolean which determines if the mouse left the page\n *\n * @example\n * const isLeft = usePageLeave(() => console.log('on leave'))\n */\nexport const usePageLeave = (callback?: () => void) => {\n const [isLeft, setIsLeft] = useState(false);\n\n const onMouse = useEvent(() => {\n if (isLeft) return setIsLeft(false);\n callback?.();\n setIsLeft(true);\n });\n\n useEffect(() => {\n document.addEventListener('mouseleave', onMouse, { passive: true });\n document.addEventListener('mouseenter', onMouse, { passive: true });\n\n return () => {\n document.removeEventListener('mouseenter', onMouse);\n document.removeEventListener('mouseleave', onMouse);\n };\n }, []);\n\n return isLeft;\n};\n"],"names":["usePageLeave","callback","isLeft","setIsLeft","useState","onMouse","useEvent","useEffect"],"mappings":"+IAgBaA,EAAgBC,GAA0B,CACrD,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EAEpCC,EAAUC,EAAAA,SAAS,IAAM,CAC7B,GAAIJ,EAAQ,OAAOC,EAAU,EAAK,EAClCF,IAAA,EACAE,EAAU,EAAI,CAAA,CACf,EAEDI,OAAAA,EAAAA,UAAU,KACR,SAAS,iBAAiB,aAAcF,EAAS,CAAE,QAAS,GAAM,EAClE,SAAS,iBAAiB,aAAcA,EAAS,CAAE,QAAS,GAAM,EAE3D,IAAM,CACX,SAAS,oBAAoB,aAAcA,CAAO,EAClD,SAAS,oBAAoB,aAAcA,CAAO,CAAA,GAEnD,EAAE,EAEEH,CACT"}
1
+ {"version":3,"file":"usePageLeave.cjs","names":[],"sources":["../../../../src/hooks/usePageLeave/usePageLeave.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useEvent } from '../useEvent/useEvent';\n\n/**\n * @name usePageLeave\n * @description - Hook what calls given function when mouse leaves the page\n * @category Sensors\n * @usage low\n *\n * @param {() => void} [callback] The callback function what calls then mouse leaves the page\n * @returns {boolean} A boolean which determines if the mouse left the page\n *\n * @example\n * const isLeft = usePageLeave(() => console.log('on leave'))\n */\nexport const usePageLeave = (callback?: () => void) => {\n const [isLeft, setIsLeft] = useState(false);\n\n const onMouse = useEvent(() => {\n if (isLeft) return setIsLeft(false);\n callback?.();\n setIsLeft(true);\n });\n\n useEffect(() => {\n document.addEventListener('mouseleave', onMouse, { passive: true });\n document.addEventListener('mouseenter', onMouse, { passive: true });\n\n return () => {\n document.removeEventListener('mouseenter', onMouse);\n document.removeEventListener('mouseleave', onMouse);\n };\n }, []);\n\n return isLeft;\n};\n"],"mappings":"mHAgBA,IAAa,EAAgB,GAA0B,CACrD,GAAM,CAAC,EAAQ,IAAA,EAAA,EAAA,UAAsB,GAAM,CAErC,EAAU,EAAA,aAAe,CAC7B,GAAI,EAAQ,OAAO,EAAU,GAAM,CACnC,KAAY,CACZ,EAAU,GAAK,EACf,CAYF,OAVA,EAAA,EAAA,gBACE,SAAS,iBAAiB,aAAc,EAAS,CAAE,QAAS,GAAM,CAAC,CACnE,SAAS,iBAAiB,aAAc,EAAS,CAAE,QAAS,GAAM,CAAC,KAEtD,CACX,SAAS,oBAAoB,aAAc,EAAQ,CACnD,SAAS,oBAAoB,aAAc,EAAQ,GAEpD,EAAE,CAAC,CAEC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),E=require("../useEvent/useEvent.cjs"),U=require("../useRefState/useRefState.cjs"),T=require("../../utils/helpers/isTarget.cjs"),C=10;class y{x;y;constructor(t,e){this.x=t,this.y=e}update(t){this.x=t.x,this.y=t.y}getDifferenceTo(t){return new y(this.x-t.x,this.y-t.y)}getDistanceTo(t){const e=this.getDifferenceTo(t);return Math.sqrt(e.x**2+e.y**2)}getAngleTo(t){const e=this.getDifferenceTo(t);return Math.atan2(e.y,e.x)}equalsTo(t){return this.x===t.x&&this.y===t.y}moveByAngle(t,e){const o=t+Math.PI/2;return this.x+=Math.sin(o)*e,this.y-=Math.cos(o)*e,this}}class S{pointer;brush;radius;smooth=!1;points=[];lines=[];constructor({x:t,y:e,radius:o,smooth:h}){this.smooth=h,this.pointer=new y(t,e),this.brush=new y(t,e),this.radius=o,this.points=[],this.lines=[]}getBrushCoordinates(){return{x:this.brush.x,y:this.brush.y}}getPointerCoordinates(){return{x:this.pointer.x,y:this.pointer.y}}update(t){if(this.pointer.equalsTo(t))return!1;if(this.pointer.update(t),!this.smooth)return this.brush.update(t),this.points.push(this.getBrushCoordinates()),!0;const e=this.pointer.getDistanceTo(this.brush),o=this.pointer.getAngleTo(this.brush);if(Math.round((e-this.radius)*10)/10>0){const l=o+Math.PI/2;return this.brush.update({x:this.brush.x+Math.sin(l)*(e-this.radius),y:this.brush.y-Math.cos(l)*(e-this.radius)}),this.points.push(this.getBrushCoordinates()),!0}return!1}}const A=((...p)=>{const t=T.isTarget(p[0])?p[0]:void 0,e=(t?p[1]:p[0])??{},o=e?.color??"black",h=e?.opacity??1,l=e?.radius??C,s=v.useRef(new S({x:0,y:0,radius:e?.radius??C,smooth:e?.smooth??!1})),[m,b]=v.useState(!1),x=U.useRefState(),n=v.useRef(null),c=(r,u,f,a)=>{if(!n.current)return;n.current.globalAlpha=f,n.current.strokeStyle=u,n.current.lineWidth=a*2,n.current.lineCap="round",n.current.lineJoin="round";let i=r[0],g=r[1];n.current.beginPath();for(let d=1;d<r.length;d+=1){const q={x:i.x+(g.x-i.x)/2,y:i.y+(g.y-i.y)/2};n.current.quadraticCurveTo(i.x,i.y,q.x,q.y),i=r[d],g=r[d+1]}n.current.lineTo(i.x,i.y),n.current.stroke()},M=()=>{n.current&&n.current.clearRect(0,0,n.current.canvas.width,n.current.canvas.height)},w=E.useEvent(r=>{if(!m)return;e?.onMouseMove?.(r,s.current);const u={x:r.offsetX,y:r.offsetY};s.current.update(u)&&n.current&&(M(),n.current.clearRect(0,0,n.current.canvas.width,n.current.canvas.height),s.current.lines.forEach(({points:a,color:i,opacity:g,radius:d})=>c(a,i,g,d)),c(s.current.points,o,h,l))}),R=E.useEvent(r=>{if(!n.current)return;const u={x:r.offsetX,y:r.offsetY};s.current.brush.update(u),s.current.points.push(u),c(s.current.points,o,h,l),e?.onMouseDown?.(r,s.current),b(!0)}),P=E.useEvent(r=>{n.current&&(s.current.points.length&&(s.current.lines.push({points:s.current.points,color:o,opacity:h,radius:l}),s.current.points=[]),e?.onMouseUp?.(r,s.current),b(!1))}),D=()=>{n.current&&(M(),s.current.lines=[],s.current.points=[])},L=()=>{n.current&&(M(),s.current.lines.pop(),s.current.lines.forEach(({points:r,color:u,opacity:f,radius:a})=>c(r,u,f,a)))};return v.useEffect(()=>{if(!t&&!x.state)return;const r=t?T.isTarget.getElement(t):x.current;if(r)return n.current=r.getContext("2d"),e?.initialLines&&(s.current.lines=e.initialLines,e.initialLines.forEach(({points:u,color:f,opacity:a,radius:i})=>c(u,f,a,i))),r.addEventListener("mousedown",R),r.addEventListener("mousemove",w),r.addEventListener("mouseup",P),()=>{r&&(r.removeEventListener("mousedown",R),r.removeEventListener("mousemove",w),r.removeEventListener("mouseup",P))}},[t&&T.isTarget.getRawElement(t),x.state]),t?{drawing:m,clear:D,undo:L,draw:c,lines:s.current.lines}:{ref:x,drawing:m,clear:D,undo:L,draw:c,lines:s.current.lines}});exports.Paint=S;exports.Pointer=y;exports.usePaint=A;
2
- //# sourceMappingURL=usePaint.cjs.map
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/helpers/isTarget.cjs`),t=require(`../useRefState/useRefState.cjs`),n=require(`../useEvent/useEvent.cjs`);let r=require(`react`);var i=10,a=class e{x;y;constructor(e,t){this.x=e,this.y=t}update(e){this.x=e.x,this.y=e.y}getDifferenceTo(t){return new e(this.x-t.x,this.y-t.y)}getDistanceTo(e){let t=this.getDifferenceTo(e);return Math.sqrt(t.x**2+t.y**2)}getAngleTo(e){let t=this.getDifferenceTo(e);return Math.atan2(t.y,t.x)}equalsTo(e){return this.x===e.x&&this.y===e.y}moveByAngle(e,t){let n=e+Math.PI/2;return this.x+=Math.sin(n)*t,this.y-=Math.cos(n)*t,this}},o=class{pointer;brush;radius;smooth=!1;points=[];lines=[];constructor({x:e,y:t,radius:n,smooth:r}){this.smooth=r,this.pointer=new a(e,t),this.brush=new a(e,t),this.radius=n,this.points=[],this.lines=[]}getBrushCoordinates(){return{x:this.brush.x,y:this.brush.y}}getPointerCoordinates(){return{x:this.pointer.x,y:this.pointer.y}}update(e){if(this.pointer.equalsTo(e))return!1;if(this.pointer.update(e),!this.smooth)return this.brush.update(e),this.points.push(this.getBrushCoordinates()),!0;let t=this.pointer.getDistanceTo(this.brush),n=this.pointer.getAngleTo(this.brush);if(Math.round((t-this.radius)*10)/10>0){let e=n+Math.PI/2;return this.brush.update({x:this.brush.x+Math.sin(e)*(t-this.radius),y:this.brush.y-Math.cos(e)*(t-this.radius)}),this.points.push(this.getBrushCoordinates()),!0}return!1}},s=((...a)=>{let s=e.isTarget(a[0])?a[0]:void 0,c=(s?a[1]:a[0])??{},l=c?.color??`black`,u=c?.opacity??1,d=c?.radius??i,f=(0,r.useRef)(new o({x:0,y:0,radius:c?.radius??i,smooth:c?.smooth??!1})),[p,m]=(0,r.useState)(!1),h=t.useRefState(),g=(0,r.useRef)(null),_=(e,t,n,r)=>{if(!g.current)return;g.current.globalAlpha=n,g.current.strokeStyle=t,g.current.lineWidth=r*2,g.current.lineCap=`round`,g.current.lineJoin=`round`;let i=e[0],a=e[1];g.current.beginPath();for(let t=1;t<e.length;t+=1){let n={x:i.x+(a.x-i.x)/2,y:i.y+(a.y-i.y)/2};g.current.quadraticCurveTo(i.x,i.y,n.x,n.y),i=e[t],a=e[t+1]}g.current.lineTo(i.x,i.y),g.current.stroke()},v=()=>{g.current&&g.current.clearRect(0,0,g.current.canvas.width,g.current.canvas.height)},y=n.useEvent(e=>{if(!p)return;c?.onMouseMove?.(e,f.current);let t={x:e.offsetX,y:e.offsetY};f.current.update(t)&&g.current&&(v(),g.current.clearRect(0,0,g.current.canvas.width,g.current.canvas.height),f.current.lines.forEach(({points:e,color:t,opacity:n,radius:r})=>_(e,t,n,r)),_(f.current.points,l,u,d))}),b=n.useEvent(e=>{if(!g.current)return;let t={x:e.offsetX,y:e.offsetY};f.current.brush.update(t),f.current.points.push(t),_(f.current.points,l,u,d),c?.onMouseDown?.(e,f.current),m(!0)}),x=n.useEvent(e=>{g.current&&(f.current.points.length&&(f.current.lines.push({points:f.current.points,color:l,opacity:u,radius:d}),f.current.points=[]),c?.onMouseUp?.(e,f.current),m(!1))}),S=()=>{g.current&&(v(),f.current.lines=[],f.current.points=[])},C=()=>{g.current&&(v(),f.current.lines.pop(),f.current.lines.forEach(({points:e,color:t,opacity:n,radius:r})=>_(e,t,n,r)))};return(0,r.useEffect)(()=>{if(!s&&!h.state)return;let t=s?e.isTarget.getElement(s):h.current;if(t)return g.current=t.getContext(`2d`),c?.initialLines&&(f.current.lines=c.initialLines,c.initialLines.forEach(({points:e,color:t,opacity:n,radius:r})=>_(e,t,n,r))),t.addEventListener(`mousedown`,b),t.addEventListener(`mousemove`,y),t.addEventListener(`mouseup`,x),()=>{t&&(t.removeEventListener(`mousedown`,b),t.removeEventListener(`mousemove`,y),t.removeEventListener(`mouseup`,x))}},[s&&e.isTarget.getRawElement(s),h.state]),s?{drawing:p,clear:S,undo:C,draw:_,lines:f.current.lines}:{ref:h,drawing:p,clear:S,undo:C,draw:_,lines:f.current.lines}});exports.Paint=o,exports.Pointer=a,exports.usePaint=s;
2
+ //# sourceMappingURL=usePaint.cjs.map