@siberiacancode/reactuse 0.3.14 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
  3. package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
  4. package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
  5. package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
  6. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
  7. package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
  8. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
  9. package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
  10. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
  11. package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
  12. package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
  13. package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
  14. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
  15. package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
  16. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
  17. package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
  18. package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
  19. package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
  20. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
  21. package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
  22. package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
  23. package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
  24. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
  25. package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
  26. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
  27. package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
  28. package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
  29. package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
  30. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
  31. package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
  32. package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
  33. package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
  34. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
  35. package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
  36. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
  37. package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
  38. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
  39. package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
  40. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
  41. package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  42. package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
  43. package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
  44. package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
  45. package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
  46. package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
  47. package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
  48. package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
  49. package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
  50. package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
  51. package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
  52. package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
  53. package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
  54. package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
  55. package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
  56. package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
  57. package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
  58. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
  59. package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
  60. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
  61. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
  62. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
  63. package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
  64. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
  65. package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
  66. package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
  67. package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
  68. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
  69. package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
  70. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
  71. package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
  72. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
  73. package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
  74. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
  75. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  76. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
  77. package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
  78. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
  79. package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
  80. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
  81. package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
  82. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
  83. package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
  84. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
  85. package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
  86. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
  87. package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
  88. package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
  89. package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
  90. package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
  91. package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
  92. package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
  93. package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
  94. package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
  95. package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
  96. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
  97. package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
  98. package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
  99. package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
  100. package/dist/cjs/hooks/useField/useField.cjs +2 -2
  101. package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
  102. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
  103. package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
  104. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
  105. package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
  106. package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
  107. package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
  108. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
  109. package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
  110. package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
  111. package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
  112. package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
  113. package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
  114. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
  115. package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
  116. package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
  117. package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
  118. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
  119. package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
  120. package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
  121. package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
  122. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
  123. package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
  124. package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
  125. package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
  126. package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
  127. package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
  128. package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
  129. package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
  130. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
  131. package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
  132. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
  133. package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  134. package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
  135. package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
  136. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
  137. package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
  138. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
  139. package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
  140. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
  141. package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
  142. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
  143. package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
  144. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
  145. package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
  146. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
  147. package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
  148. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
  149. package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
  150. package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
  151. package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
  152. package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
  153. package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
  154. package/dist/cjs/hooks/useList/useList.cjs +2 -2
  155. package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
  156. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
  157. package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  158. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
  159. package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
  160. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
  161. package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
  162. package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
  163. package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
  164. package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
  165. package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
  166. package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
  167. package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
  168. package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
  169. package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
  170. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
  171. package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
  172. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
  173. package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
  174. package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
  175. package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
  176. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
  177. package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
  178. package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
  179. package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
  180. package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
  181. package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
  182. package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
  183. package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
  184. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
  185. package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  186. package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
  187. package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
  188. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
  189. package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
  190. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
  191. package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
  192. package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
  193. package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
  194. package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
  195. package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
  196. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
  197. package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
  198. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
  199. package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
  200. package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
  201. package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
  202. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
  203. package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
  204. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
  205. package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
  206. package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
  207. package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
  208. package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
  209. package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
  210. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
  211. package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
  212. package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
  213. package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
  214. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
  215. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
  216. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
  217. package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
  218. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
  219. package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
  220. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
  221. package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
  222. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
  223. package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
  224. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
  225. package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
  226. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
  227. package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
  228. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
  229. package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
  230. package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
  231. package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
  232. package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
  233. package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
  234. package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
  235. package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
  236. package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
  237. package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
  238. package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
  239. package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
  240. package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
  241. package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
  242. package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
  243. package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
  244. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
  245. package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
  246. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
  247. package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
  248. package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
  249. package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
  250. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
  251. package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
  252. package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
  253. package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
  254. package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
  255. package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
  256. package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
  257. package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
  258. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
  259. package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  260. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
  261. package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
  262. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
  263. package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
  264. package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
  265. package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
  266. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
  267. package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
  268. package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
  269. package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
  270. package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
  271. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
  272. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
  273. package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
  274. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
  275. package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
  276. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
  277. package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
  278. package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
  279. package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
  280. package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
  281. package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
  282. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
  283. package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
  284. package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
  285. package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
  286. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
  287. package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
  288. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
  289. package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
  290. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
  291. package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
  292. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
  293. package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
  294. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
  295. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
  296. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
  297. package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
  298. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
  299. package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
  300. package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
  301. package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
  302. package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
  303. package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
  304. package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
  305. package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
  306. package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
  307. package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
  308. package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
  309. package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
  310. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
  311. package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
  312. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
  313. package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
  314. package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
  315. package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
  316. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
  317. package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
  318. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
  319. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  320. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
  321. package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
  322. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
  323. package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
  324. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
  325. package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
  326. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
  327. package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
  328. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
  329. package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
  330. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
  331. package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
  332. package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
  333. package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
  334. package/dist/cjs/index.cjs +1 -2
  335. package/dist/cjs/utils/helpers/copy.cjs +2 -2
  336. package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
  337. package/dist/cjs/utils/helpers/debounce.cjs +2 -2
  338. package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
  339. package/dist/cjs/utils/helpers/getDate.cjs +2 -2
  340. package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
  341. package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
  342. package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
  343. package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
  344. package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
  345. package/dist/cjs/utils/helpers/throttle.cjs +2 -2
  346. package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
  347. package/dist/esm/helpers/createContext/createContext.mjs +32 -33
  348. package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
  349. package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
  350. package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
  351. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
  352. package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
  353. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
  354. package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
  355. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
  356. package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
  357. package/dist/esm/helpers/createStore/createStore.mjs +25 -29
  358. package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
  359. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
  360. package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
  361. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
  362. package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
  363. package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
  364. package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
  365. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
  366. package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
  367. package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
  368. package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
  369. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
  370. package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
  371. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
  372. package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
  373. package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
  374. package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
  375. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
  376. package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
  377. package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
  378. package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
  379. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
  380. package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
  381. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
  382. package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
  383. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
  384. package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
  385. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
  386. package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
  387. package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
  388. package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
  389. package/dist/esm/hooks/useConst/useConst.mjs +7 -6
  390. package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
  391. package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
  392. package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
  393. package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
  394. package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
  395. package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
  396. package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
  397. package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
  398. package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
  399. package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
  400. package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
  401. package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
  402. package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
  403. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
  404. package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
  405. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
  406. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
  407. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
  408. package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
  409. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
  410. package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
  411. package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
  412. package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
  413. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
  414. package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
  415. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
  416. package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
  417. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
  418. package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
  419. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
  420. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  421. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
  422. package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
  423. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
  424. package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
  425. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
  426. package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
  427. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
  428. package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
  429. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
  430. package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
  431. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
  432. package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
  433. package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
  434. package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
  435. package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
  436. package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
  437. package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
  438. package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
  439. package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
  440. package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
  441. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
  442. package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
  443. package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
  444. package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
  445. package/dist/esm/hooks/useField/useField.mjs +61 -67
  446. package/dist/esm/hooks/useField/useField.mjs.map +1 -1
  447. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
  448. package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
  449. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
  450. package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
  451. package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
  452. package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
  453. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
  454. package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
  455. package/dist/esm/hooks/useFps/useFps.mjs +18 -22
  456. package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
  457. package/dist/esm/hooks/useFul/useFul.mjs +8 -7
  458. package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
  459. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
  460. package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
  461. package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
  462. package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
  463. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
  464. package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
  465. package/dist/esm/hooks/useHash/useHash.mjs +24 -26
  466. package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
  467. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
  468. package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
  469. package/dist/esm/hooks/useHover/useHover.mjs +30 -25
  470. package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
  471. package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
  472. package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
  473. package/dist/esm/hooks/useImage/useImage.mjs +24 -26
  474. package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
  475. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
  476. package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
  477. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
  478. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
  479. package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
  480. package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
  481. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
  482. package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
  483. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
  484. package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
  485. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
  486. package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
  487. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
  488. package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
  489. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
  490. package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
  491. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
  492. package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
  493. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
  494. package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
  495. package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
  496. package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
  497. package/dist/esm/hooks/useLess/useLess.mjs +9 -8
  498. package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
  499. package/dist/esm/hooks/useList/useList.mjs +22 -22
  500. package/dist/esm/hooks/useList/useList.mjs.map +1 -1
  501. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
  502. package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
  503. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
  504. package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
  505. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
  506. package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
  507. package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
  508. package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
  509. package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
  510. package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
  511. package/dist/esm/hooks/useMap/useMap.mjs +21 -20
  512. package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
  513. package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
  514. package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
  515. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
  516. package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
  517. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
  518. package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
  519. package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
  520. package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
  521. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
  522. package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
  523. package/dist/esm/hooks/useMount/useMount.mjs +7 -6
  524. package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
  525. package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
  526. package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
  527. package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
  528. package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
  529. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
  530. package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
  531. package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
  532. package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
  533. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
  534. package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
  535. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
  536. package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
  537. package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
  538. package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
  539. package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
  540. package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
  541. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
  542. package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
  543. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
  544. package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
  545. package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
  546. package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
  547. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
  548. package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
  549. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
  550. package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
  551. package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
  552. package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
  553. package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
  554. package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
  555. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
  556. package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
  557. package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
  558. package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
  559. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
  560. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
  561. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
  562. package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
  563. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
  564. package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
  565. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
  566. package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
  567. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
  568. package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
  569. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
  570. package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
  571. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
  572. package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
  573. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
  574. package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
  575. package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
  576. package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
  577. package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
  578. package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
  579. package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
  580. package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
  581. package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
  582. package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
  583. package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
  584. package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
  585. package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
  586. package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
  587. package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
  588. package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
  589. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
  590. package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
  591. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
  592. package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
  593. package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
  594. package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
  595. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
  596. package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
  597. package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
  598. package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
  599. package/dist/esm/hooks/useScript/useScript.mjs +28 -31
  600. package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
  601. package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
  602. package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
  603. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
  604. package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
  605. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
  606. package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
  607. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
  608. package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
  609. package/dist/esm/hooks/useSet/useSet.mjs +30 -29
  610. package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
  611. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
  612. package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
  613. package/dist/esm/hooks/useShare/useShare.mjs +18 -14
  614. package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
  615. package/dist/esm/hooks/useSize/useSize.mjs +40 -30
  616. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
  617. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
  618. package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
  619. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
  620. package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
  621. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
  622. package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
  623. package/dist/esm/hooks/useStep/useStep.mjs +27 -28
  624. package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
  625. package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
  626. package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
  627. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
  628. package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
  629. package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
  630. package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
  631. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
  632. package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
  633. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
  634. package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
  635. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
  636. package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
  637. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
  638. package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
  639. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
  640. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
  641. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
  642. package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
  643. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
  644. package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
  645. package/dist/esm/hooks/useTime/useTime.mjs +14 -13
  646. package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
  647. package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
  648. package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
  649. package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
  650. package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
  651. package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
  652. package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
  653. package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
  654. package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
  655. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
  656. package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
  657. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
  658. package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
  659. package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
  660. package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
  661. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
  662. package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
  663. package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
  664. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  665. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
  666. package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
  667. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
  668. package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
  669. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
  670. package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
  671. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
  672. package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
  673. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
  674. package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
  675. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
  676. package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
  677. package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
  678. package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
  679. package/dist/esm/index.mjs +173 -394
  680. package/dist/esm/utils/helpers/copy.mjs +18 -18
  681. package/dist/esm/utils/helpers/copy.mjs.map +1 -1
  682. package/dist/esm/utils/helpers/debounce.mjs +10 -10
  683. package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
  684. package/dist/esm/utils/helpers/getDate.mjs +20 -16
  685. package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
  686. package/dist/esm/utils/helpers/getRetry.mjs +6 -5
  687. package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
  688. package/dist/esm/utils/helpers/isTarget.mjs +10 -19
  689. package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
  690. package/dist/esm/utils/helpers/throttle.mjs +20 -20
  691. package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
  692. package/dist/types/helpers/index.d.ts +1 -0
  693. package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
  694. package/dist/types/hooks/browser.d.ts +2 -0
  695. package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
  696. package/dist/types/hooks/useField/useField.d.ts +3 -3
  697. package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
  698. package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
  699. package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
  700. package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
  701. package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
  702. package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
  703. package/package.json +5 -5
  704. package/dist/cjs/_virtual/client.cjs +0 -2
  705. package/dist/cjs/_virtual/client.cjs.map +0 -1
  706. package/dist/cjs/_virtual/client2.cjs +0 -2
  707. package/dist/cjs/_virtual/client2.cjs.map +0 -1
  708. package/dist/cjs/_virtual/index.cjs +0 -2
  709. package/dist/cjs/_virtual/index.cjs.map +0 -1
  710. package/dist/cjs/_virtual/react-dom-client.development.cjs +0 -2
  711. package/dist/cjs/_virtual/react-dom-client.development.cjs.map +0 -1
  712. package/dist/cjs/_virtual/react-dom-client.production.cjs +0 -2
  713. package/dist/cjs/_virtual/react-dom-client.production.cjs.map +0 -1
  714. package/dist/cjs/_virtual/scheduler.development.cjs +0 -2
  715. package/dist/cjs/_virtual/scheduler.development.cjs.map +0 -1
  716. package/dist/cjs/_virtual/scheduler.production.cjs +0 -2
  717. package/dist/cjs/_virtual/scheduler.production.cjs.map +0 -1
  718. package/dist/cjs/index.cjs.map +0 -1
  719. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.cjs +0 -215
  720. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.cjs.map +0 -1
  721. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.cjs +0 -10
  722. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.cjs.map +0 -1
  723. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.cjs +0 -2
  724. package/dist/cjs/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.cjs.map +0 -1
  725. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.cjs +0 -2
  726. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.cjs.map +0 -1
  727. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.cjs +0 -2
  728. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.cjs.map +0 -1
  729. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.cjs +0 -2
  730. package/dist/cjs/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.cjs.map +0 -1
  731. package/dist/esm/_virtual/client.mjs +0 -6
  732. package/dist/esm/_virtual/client.mjs.map +0 -1
  733. package/dist/esm/_virtual/client2.mjs +0 -5
  734. package/dist/esm/_virtual/client2.mjs.map +0 -1
  735. package/dist/esm/_virtual/index.mjs +0 -5
  736. package/dist/esm/_virtual/index.mjs.map +0 -1
  737. package/dist/esm/_virtual/react-dom-client.development.mjs +0 -5
  738. package/dist/esm/_virtual/react-dom-client.development.mjs.map +0 -1
  739. package/dist/esm/_virtual/react-dom-client.production.mjs +0 -5
  740. package/dist/esm/_virtual/react-dom-client.production.mjs.map +0 -1
  741. package/dist/esm/_virtual/scheduler.development.mjs +0 -5
  742. package/dist/esm/_virtual/scheduler.development.mjs.map +0 -1
  743. package/dist/esm/_virtual/scheduler.production.mjs +0 -5
  744. package/dist/esm/_virtual/scheduler.production.mjs.map +0 -1
  745. package/dist/esm/index.mjs.map +0 -1
  746. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.mjs +0 -17019
  747. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.mjs.map +0 -1
  748. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.mjs +0 -9745
  749. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.mjs.map +0 -1
  750. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.mjs +0 -24
  751. package/dist/esm/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.mjs.map +0 -1
  752. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.mjs +0 -228
  753. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.mjs.map +0 -1
  754. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.mjs +0 -225
  755. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.mjs.map +0 -1
  756. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.mjs +0 -11
  757. package/dist/esm/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=(e=new Date)=>{const s=e.getSeconds(),o=e.getMinutes(),t=e.getHours(),r=t%12===0?12:t%12,c=t>=12?"pm":"am",m=e.getDate(),n=e.getMonth()+1,i=e.getFullYear(),a=e.getTime();return{seconds:s,minutes:o,hours:t,meridiemHours:{value:r,type:c},day:m,month:n,year:i,timestamp:a}};exports.getDate=u;
2
- //# sourceMappingURL=getDate.cjs.map
1
+ var e=(e=new Date)=>{let t=e.getSeconds(),n=e.getMinutes(),r=e.getHours(),i=r%12==0?12:r%12,a=r>=12?`pm`:`am`,o=e.getDate(),s=e.getMonth()+1,c=e.getFullYear(),l=e.getTime();return{seconds:t,minutes:n,hours:r,meridiemHours:{value:i,type:a},day:o,month:s,year:c,timestamp:l}};exports.getDate=e;
2
+ //# sourceMappingURL=getDate.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDate.cjs","sources":["../../../../src/utils/helpers/getDate.ts"],"sourcesContent":["export const getDate = (now: Date = new Date()) => {\n const seconds = now.getSeconds();\n const minutes = now.getMinutes();\n const hours = now.getHours();\n const meridiemHours = hours % 12 === 0 ? 12 : hours % 12;\n const meridiemType = hours >= 12 ? 'pm' : 'am';\n const day = now.getDate();\n const month = now.getMonth() + 1;\n const year = now.getFullYear();\n const timestamp = now.getTime();\n\n return {\n seconds,\n minutes,\n hours,\n meridiemHours: { value: meridiemHours, type: meridiemType },\n day,\n month,\n year,\n timestamp\n };\n};\n"],"names":["getDate","now","seconds","minutes","hours","meridiemHours","meridiemType","day","month","year","timestamp"],"mappings":"gFAAO,MAAMA,EAAU,CAACC,EAAY,IAAI,OAAW,CACjD,MAAMC,EAAUD,EAAI,WAAA,EACdE,EAAUF,EAAI,WAAA,EACdG,EAAQH,EAAI,SAAA,EACZI,EAAgBD,EAAQ,KAAO,EAAI,GAAKA,EAAQ,GAChDE,EAAeF,GAAS,GAAK,KAAO,KACpCG,EAAMN,EAAI,QAAA,EACVO,EAAQP,EAAI,SAAA,EAAa,EACzBQ,EAAOR,EAAI,YAAA,EACXS,EAAYT,EAAI,QAAA,EAEtB,MAAO,CACL,QAAAC,EACA,QAAAC,EACA,MAAAC,EACA,cAAe,CAAE,MAAOC,EAAe,KAAMC,CAAA,EAC7C,IAAAC,EACA,MAAAC,EACA,KAAAC,EACA,UAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"getDate.cjs","names":[],"sources":["../../../../src/utils/helpers/getDate.ts"],"sourcesContent":["export const getDate = (now: Date = new Date()) => {\n const seconds = now.getSeconds();\n const minutes = now.getMinutes();\n const hours = now.getHours();\n const meridiemHours = hours % 12 === 0 ? 12 : hours % 12;\n const meridiemType = hours >= 12 ? 'pm' : 'am';\n const day = now.getDate();\n const month = now.getMonth() + 1;\n const year = now.getFullYear();\n const timestamp = now.getTime();\n\n return {\n seconds,\n minutes,\n hours,\n meridiemHours: { value: meridiemHours, type: meridiemType },\n day,\n month,\n year,\n timestamp\n };\n};\n"],"mappings":"AAAA,IAAa,GAAW,EAAY,IAAI,OAAW,CACjD,IAAM,EAAU,EAAI,YAAY,CAC1B,EAAU,EAAI,YAAY,CAC1B,EAAQ,EAAI,UAAU,CACtB,EAAgB,EAAQ,IAAO,EAAI,GAAK,EAAQ,GAChD,EAAe,GAAS,GAAK,KAAO,KACpC,EAAM,EAAI,SAAS,CACnB,EAAQ,EAAI,UAAU,CAAG,EACzB,EAAO,EAAI,aAAa,CACxB,EAAY,EAAI,SAAS,CAE/B,MAAO,CACL,UACA,UACA,QACA,cAAe,CAAE,MAAO,EAAe,KAAM,EAAc,CAC3D,MACA,QACA,OACA,YACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=e=>typeof e=="number"?e:e?1:0;exports.getRetry=t;
2
- //# sourceMappingURL=getRetry.cjs.map
1
+ var e=e=>typeof e==`number`?e:e?1:0;exports.getRetry=e;
2
+ //# sourceMappingURL=getRetry.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getRetry.cjs","sources":["../../../../src/utils/helpers/getRetry.ts"],"sourcesContent":["export const getRetry = (retry: boolean | number) => {\n if (typeof retry === 'number') return retry;\n return retry ? 1 : 0;\n};\n"],"names":["getRetry","retry"],"mappings":"gFAAO,MAAMA,EAAYC,GACnB,OAAOA,GAAU,SAAiBA,EAC/BA,EAAQ,EAAI"}
1
+ {"version":3,"file":"getRetry.cjs","names":[],"sources":["../../../../src/utils/helpers/getRetry.ts"],"sourcesContent":["export const getRetry = (retry: boolean | number) => {\n if (typeof retry === 'number') return retry;\n return retry ? 1 : 0;\n};\n"],"mappings":"AAAA,IAAa,EAAY,GACnB,OAAO,GAAU,SAAiB,EAC/B,EAAQ,EAAI"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=Symbol("target"),i=e=>({value:e,type:t}),s=e=>typeof e=="object"&&"current"in e,u=e=>typeof e=="function"&&"state"in e&&"current"in e,o=e=>typeof e=="object"&&e&&"type"in e&&e.type===t&&"value"in e,n=e=>s(e)||u(e)||o(e),c=e=>"current"in e?e.current:typeof e.value=="function"?e.value():typeof e.value=="string"?document.querySelector(e.value):(e.value instanceof Document||e.value instanceof Window||e.value instanceof Element,e.value),l=e=>e&&"state"in e&&e.state,f=e=>u(e)?e.state:o(e)?e.value:e;n.wrap=i;n.getElement=c;n.getRefState=l;n.getRawElement=f;exports.getRawElement=f;exports.getRefState=l;exports.isBrowserTarget=o;exports.isRef=s;exports.isRefState=u;exports.isTarget=n;exports.target=i;exports.targetSymbol=t;
2
- //# sourceMappingURL=isTarget.cjs.map
1
+ var e=Symbol(`target`),t=t=>({value:t,type:e}),n=e=>typeof e==`object`&&`current`in e,r=e=>typeof e==`function`&&`state`in e&&`current`in e,i=t=>typeof t==`object`&&t&&`type`in t&&t.type===e&&`value`in t,a=e=>n(e)||r(e)||i(e),o=e=>`current`in e?e.current:typeof e.value==`function`?e.value():typeof e.value==`string`?document.querySelector(e.value):(e.value instanceof Document||e.value instanceof Window||e.value instanceof Element,e.value),s=e=>e&&`state`in e&&e.state,c=e=>r(e)?e.state:i(e)?e.value:e;a.wrap=t,a.getElement=o,a.getRefState=s,a.getRawElement=c,exports.getRawElement=c,exports.getRefState=s,exports.isBrowserTarget=i,exports.isRef=n,exports.isRefState=r,exports.isTarget=a,exports.target=t,exports.targetSymbol=e;
2
+ //# sourceMappingURL=isTarget.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"isTarget.cjs","sources":["../../../../src/utils/helpers/isTarget.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\n\r\nexport const targetSymbol = Symbol('target');\r\n\r\nexport type Target = (() => Element) | string | Document | Element | Window;\r\ninterface BrowserTarget {\r\n type: symbol;\r\n value: Target;\r\n}\r\ninterface StateRef<Value> {\r\n (node: Value): void;\r\n current: Value;\r\n state: Value;\r\n}\r\n\r\nexport type HookTarget =\r\n | BrowserTarget\r\n | RefObject<Element | null | undefined>\r\n | StateRef<Element | null | undefined>;\r\n\r\nexport const target = (target: Target) => ({\r\n value: target,\r\n type: targetSymbol\r\n});\r\n\r\nexport const isRef = (target: HookTarget) => typeof target === 'object' && 'current' in target;\r\n\r\nexport const isRefState = (target: HookTarget) =>\r\n typeof target === 'function' && 'state' in target && 'current' in target;\r\n\r\nexport const isBrowserTarget = (target: HookTarget) =>\r\n typeof target === 'object' &&\r\n target &&\r\n 'type' in target &&\r\n target.type === targetSymbol &&\r\n 'value' in target;\r\n\r\nexport const isTarget = (target: HookTarget) =>\r\n isRef(target) || isRefState(target) || isBrowserTarget(target);\r\n\r\nconst getElement = (target: HookTarget) => {\r\n if ('current' in target) {\r\n return target.current;\r\n }\r\n\r\n if (typeof target.value === 'function') {\r\n return target.value();\r\n }\r\n\r\n if (typeof target.value === 'string') {\r\n return document.querySelector(target.value);\r\n }\r\n\r\n if (target.value instanceof Document) {\r\n return target.value;\r\n }\r\n\r\n if (target.value instanceof Window) {\r\n return target.value;\r\n }\r\n\r\n if (target.value instanceof Element) {\r\n return target.value;\r\n }\r\n\r\n return target.value;\r\n};\r\nexport const getRefState = (target?: HookTarget) => target && 'state' in target && target.state;\r\nexport const getRawElement = (target: HookTarget) => {\r\n if (isRefState(target)) return target.state;\r\n if (isBrowserTarget(target)) return (target as BrowserTarget).value;\r\n\r\n return target;\r\n};\r\n\r\nisTarget.wrap = target;\r\nisTarget.getElement = getElement;\r\nisTarget.getRefState = getRefState;\r\nisTarget.getRawElement = getRawElement;\r\n"],"names":["targetSymbol","target","isRef","isRefState","isBrowserTarget","isTarget","getElement","getRefState","getRawElement"],"mappings":"gFAEO,MAAMA,SAAsB,QAAQ,EAkB9BC,EAAUA,IAAoB,CACzC,MAAOA,EACP,KAAMD,CACR,GAEaE,EAASD,GAAuB,OAAOA,GAAW,UAAY,YAAaA,EAE3EE,EAAcF,GACzB,OAAOA,GAAW,YAAc,UAAWA,GAAU,YAAaA,EAEvDG,EAAmBH,GAC9B,OAAOA,GAAW,UAClBA,GACA,SAAUA,GACVA,EAAO,OAASD,GAChB,UAAWC,EAEAI,EAAYJ,GACvBC,EAAMD,CAAM,GAAKE,EAAWF,CAAM,GAAKG,EAAgBH,CAAM,EAEzDK,EAAcL,GACd,YAAaA,EACRA,EAAO,QAGZ,OAAOA,EAAO,OAAU,WACnBA,EAAO,MAAA,EAGZ,OAAOA,EAAO,OAAU,SACnB,SAAS,cAAcA,EAAO,KAAK,GAGxCA,EAAO,iBAAiB,UAIxBA,EAAO,iBAAiB,QAIxBA,EAAO,iBAAiB,QACnBA,EAAO,OAKLM,EAAeN,GAAwBA,GAAU,UAAWA,GAAUA,EAAO,MAC7EO,EAAiBP,GACxBE,EAAWF,CAAM,EAAUA,EAAO,MAClCG,EAAgBH,CAAM,EAAWA,EAAyB,MAEvDA,EAGTI,EAAS,KAAOJ,EAChBI,EAAS,WAAaC,EACtBD,EAAS,YAAcE,EACvBF,EAAS,cAAgBG"}
1
+ {"version":3,"file":"isTarget.cjs","names":[],"sources":["../../../../src/utils/helpers/isTarget.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\n\r\nexport const targetSymbol = Symbol('target');\r\n\r\nexport type Target = (() => Element) | string | Document | Element | Window;\r\ninterface BrowserTarget {\r\n type: symbol;\r\n value: Target;\r\n}\r\ninterface StateRef<Value> {\r\n (node: Value): void;\r\n current: Value;\r\n state: Value;\r\n}\r\n\r\nexport type HookTarget =\r\n | BrowserTarget\r\n | RefObject<Element | null | undefined>\r\n | StateRef<Element | null | undefined>;\r\n\r\nexport const target = (target: Target) => ({\r\n value: target,\r\n type: targetSymbol\r\n});\r\n\r\nexport const isRef = (target: HookTarget) => typeof target === 'object' && 'current' in target;\r\n\r\nexport const isRefState = (target: HookTarget) =>\r\n typeof target === 'function' && 'state' in target && 'current' in target;\r\n\r\nexport const isBrowserTarget = (target: HookTarget) =>\r\n typeof target === 'object' &&\r\n target &&\r\n 'type' in target &&\r\n target.type === targetSymbol &&\r\n 'value' in target;\r\n\r\nexport const isTarget = (target: HookTarget) =>\r\n isRef(target) || isRefState(target) || isBrowserTarget(target);\r\n\r\nconst getElement = (target: HookTarget) => {\r\n if ('current' in target) {\r\n return target.current;\r\n }\r\n\r\n if (typeof target.value === 'function') {\r\n return target.value();\r\n }\r\n\r\n if (typeof target.value === 'string') {\r\n return document.querySelector(target.value);\r\n }\r\n\r\n if (target.value instanceof Document) {\r\n return target.value;\r\n }\r\n\r\n if (target.value instanceof Window) {\r\n return target.value;\r\n }\r\n\r\n if (target.value instanceof Element) {\r\n return target.value;\r\n }\r\n\r\n return target.value;\r\n};\r\nexport const getRefState = (target?: HookTarget) => target && 'state' in target && target.state;\r\nexport const getRawElement = (target: HookTarget) => {\r\n if (isRefState(target)) return target.state;\r\n if (isBrowserTarget(target)) return (target as BrowserTarget).value;\r\n\r\n return target;\r\n};\r\n\r\nisTarget.wrap = target;\r\nisTarget.getElement = getElement;\r\nisTarget.getRefState = getRefState;\r\nisTarget.getRawElement = getRawElement;\r\n"],"mappings":"AAEA,IAAa,EAAe,OAAO,SAAS,CAkB/B,EAAU,IAAoB,CACzC,MAAO,EACP,KAAM,EACP,EAEY,EAAS,GAAuB,OAAO,GAAW,UAAY,YAAa,EAE3E,EAAc,GACzB,OAAO,GAAW,YAAc,UAAW,GAAU,YAAa,EAEvD,EAAmB,GAC9B,OAAO,GAAW,UAClB,GACA,SAAU,GACV,EAAO,OAAS,GAChB,UAAW,EAEA,EAAY,GACvB,EAAM,EAAO,EAAI,EAAW,EAAO,EAAI,EAAgB,EAAO,CAE1D,EAAc,GACd,YAAa,EACR,EAAO,QAGZ,OAAO,EAAO,OAAU,WACnB,EAAO,OAAO,CAGnB,OAAO,EAAO,OAAU,SACnB,SAAS,cAAc,EAAO,MAAM,EAGzC,EAAO,iBAAiB,UAIxB,EAAO,iBAAiB,QAIxB,EAAO,iBAAiB,QACnB,EAAO,OAKL,EAAe,GAAwB,GAAU,UAAW,GAAU,EAAO,MAC7E,EAAiB,GACxB,EAAW,EAAO,CAAS,EAAO,MAClC,EAAgB,EAAO,CAAU,EAAyB,MAEvD,EAGT,EAAS,KAAO,EAChB,EAAS,WAAa,EACtB,EAAS,YAAc,EACvB,EAAS,cAAgB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=(l,r)=>{let e=!1,t=null;const i=()=>{if(!t){e=!1;return}l.apply(void 0,t),t=null,setTimeout(i,r)};return function(...o){if(e){t=o;return}l.apply(this,o),e=!0,setTimeout(i,r)}};exports.throttle=u;
2
- //# sourceMappingURL=throttle.cjs.map
1
+ var e=(e,t)=>{let n=!1,r=null,i=()=>{if(!r){n=!1;return}e.apply(void 0,r),r=null,setTimeout(i,t)};return function(...a){if(n){r=a;return}e.apply(this,a),n=!0,setTimeout(i,t)}};exports.throttle=e;
2
+ //# sourceMappingURL=throttle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.cjs","sources":["../../../../src/utils/helpers/throttle.ts"],"sourcesContent":["export const throttle = <Params extends any[]>(\n callback: (...args: Params) => void,\n delay: number\n): ((...args: Params) => void) => {\n let isCalled = false;\n let lastArgs: Params | null = null;\n\n const timer = () => {\n if (!lastArgs) {\n isCalled = false;\n return;\n }\n\n callback.apply(this, lastArgs);\n lastArgs = null;\n setTimeout(timer, delay);\n };\n\n return function (this: any, ...args: Params) {\n if (isCalled) {\n lastArgs = args;\n return;\n }\n\n callback.apply(this, args);\n isCalled = true;\n setTimeout(timer, delay);\n };\n};\n"],"names":["throttle","callback","delay","isCalled","lastArgs","timer","args"],"mappings":"gFAAO,MAAMA,EAAW,CACtBC,EACAC,IACgC,CAChC,IAAIC,EAAW,GACXC,EAA0B,KAE9B,MAAMC,EAAQ,IAAM,CAClB,GAAI,CAACD,EAAU,CACbD,EAAW,GACX,MAAA,CAGFF,EAAS,MAAM,OAAMG,CAAQ,EAC7BA,EAAW,KACX,WAAWC,EAAOH,CAAK,CAAA,EAGzB,OAAO,YAAwBI,EAAc,CAC3C,GAAIH,EAAU,CACZC,EAAWE,EACX,MAAA,CAGFL,EAAS,MAAM,KAAMK,CAAI,EACzBH,EAAW,GACX,WAAWE,EAAOH,CAAK,CAAA,CAE3B"}
1
+ {"version":3,"file":"throttle.cjs","names":[],"sources":["../../../../src/utils/helpers/throttle.ts"],"sourcesContent":["export const throttle = <Params extends any[]>(\n callback: (...args: Params) => void,\n delay: number\n): ((...args: Params) => void) => {\n let isCalled = false;\n let lastArgs: Params | null = null;\n\n const timer = () => {\n if (!lastArgs) {\n isCalled = false;\n return;\n }\n\n callback.apply(this, lastArgs);\n lastArgs = null;\n setTimeout(timer, delay);\n };\n\n return function (this: any, ...args: Params) {\n if (isCalled) {\n lastArgs = args;\n return;\n }\n\n callback.apply(this, args);\n isCalled = true;\n setTimeout(timer, delay);\n };\n};\n"],"mappings":"AAAA,IAAa,GACX,EACA,IACgC,CAChC,IAAI,EAAW,GACX,EAA0B,KAExB,MAAc,CAClB,GAAI,CAAC,EAAU,CACb,EAAW,GACX,OAGF,EAAS,MAAA,IAAA,GAAY,EAAS,CAC9B,EAAW,KACX,WAAW,EAAO,EAAM,EAG1B,OAAO,SAAqB,GAAG,EAAc,CAC3C,GAAI,EAAU,CACZ,EAAW,EACX,OAGF,EAAS,MAAM,KAAM,EAAK,CAC1B,EAAW,GACX,WAAW,EAAO,EAAM"}
@@ -1,34 +1,33 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import { createContext as m, useContext as x, useState as v, useMemo as d } from "react";
3
- const P = (n = void 0, o = {}) => {
4
- const t = m({
5
- value: n,
6
- set: () => {
7
- }
8
- });
9
- t.displayName = o.name;
10
- function i(r) {
11
- const e = x(t);
12
- if (!e && o.strict)
13
- throw new Error(`Context hook ${o.name} must be used inside a Provider`);
14
- return r ? r(e.value) : e;
15
- }
16
- return {
17
- useSelect: i,
18
- instance: t,
19
- Provider: ({ children: r, initialValue: e }) => {
20
- const [s, a] = v(e ?? n), c = d(
21
- () => ({
22
- value: s,
23
- set: a
24
- }),
25
- [s]
26
- );
27
- return /* @__PURE__ */ u(t, { value: c, children: r });
28
- }
29
- };
1
+ import { createContext as e, useContext as t, useMemo as n, useState as r } from "react";
2
+ import { jsx as i } from "react/jsx-runtime";
3
+ //#region src/helpers/createContext/createContext.tsx
4
+ var a = (a = void 0, o = {}) => {
5
+ let s = e({
6
+ value: a,
7
+ set: () => {}
8
+ });
9
+ s.displayName = o.name;
10
+ function c(e) {
11
+ let n = t(s);
12
+ if (!n && o.strict) throw Error(`Context hook ${o.name} must be used inside a Provider`);
13
+ return e ? e(n.value) : n;
14
+ }
15
+ return {
16
+ useSelect: c,
17
+ instance: s,
18
+ Provider: ({ children: e, initialValue: t }) => {
19
+ let [o, c] = r(t ?? a);
20
+ return /* @__PURE__ */ i(s, {
21
+ value: n(() => ({
22
+ value: o,
23
+ set: c
24
+ }), [o]),
25
+ children: e
26
+ });
27
+ }
28
+ };
30
29
  };
31
- export {
32
- P as createContext
33
- };
34
- //# sourceMappingURL=createContext.mjs.map
30
+ //#endregion
31
+ export { a as createContext };
32
+
33
+ //# sourceMappingURL=createContext.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createContext.mjs","sources":["../../../../src/helpers/createContext/createContext.tsx"],"sourcesContent":["import type { JSX, ReactNode } from 'react';\r\n\r\nimport { createContext as createReactContext, useContext, useMemo, useState } from 'react';\r\n\r\n/** The create context options type */\r\nexport interface CreateContextOptions {\r\n /** Display name for the context (useful for debugging) */\r\n name?: string;\r\n /** Whether to throw an error if context is used outside of Provider */\r\n strict?: boolean;\r\n}\r\n\r\n/** The context value type */\r\nexport interface ContextValue<Value> {\r\n /** The context value */\r\n value: Value | undefined;\r\n /** The context set function */\r\n set: (value: Value) => void;\r\n}\r\n\r\n/** The provider props type */\r\nexport interface ProviderProps<Value> {\r\n /** The children */\r\n children?: ReactNode;\r\n /** The initial value */\r\n initialValue?: Value;\r\n}\r\n\r\n/** The create context return type */\r\nexport interface CreateContextReturn<Value> {\r\n /** The context instance */\r\n instance: React.Context<ContextValue<Value>>;\r\n /** The provider component */\r\n Provider: (props: ProviderProps<Value>) => JSX.Element;\r\n /** The selector hook */\r\n useSelect: {\r\n <Selected>(selector: (value: Value) => Selected): Selected;\r\n (): ContextValue<Value>;\r\n };\r\n}\r\n\r\n/**\r\n * @name createContext\r\n * @description - Creates a typed context with additional utilities\r\n * @category Helpers\r\n * @usage high\r\n *\r\n * @template Value - The type of value that will be stored in the context\r\n * @param {Value | undefined} [defaultValue] - Default value for the context\r\n * @param {CreateContextOptions<Value>} [options] - Additional options for context creation\r\n * @returns {CreateContextReturn<Value>} Object containing context utilities and components\r\n *\r\n * @example\r\n * const { useSelect, instance, Provider } = createContext<number>(0);\r\n */\r\nexport const createContext = <Value,>(\r\n defaultValue: Value | undefined = undefined,\r\n options: CreateContextOptions = {}\r\n): CreateContextReturn<Value> => {\r\n const Context = createReactContext<{\r\n value: Value | undefined;\r\n set: (value: Value) => void;\r\n }>({\r\n value: defaultValue,\r\n set: () => {}\r\n });\r\n\r\n Context.displayName = options.name;\r\n\r\n function useSelect(): ContextValue<Value>;\r\n function useSelect<Selected>(selector: (value: Value) => Selected): Selected;\r\n function useSelect<Selected>(selector?: (value: Value) => Selected) {\r\n const context = useContext(Context);\r\n\r\n if (!context && options.strict) {\r\n throw new Error(`Context hook ${options.name} must be used inside a Provider`);\r\n }\r\n\r\n if (!selector) {\r\n return context;\r\n }\r\n\r\n return selector(context.value as Value);\r\n }\r\n\r\n const Provider = ({ children, initialValue }: ProviderProps<Value>) => {\r\n const [profile, setProfile] = useState<Value | undefined>(initialValue ?? defaultValue);\r\n\r\n const value = useMemo(\r\n () => ({\r\n value: profile,\r\n set: setProfile\r\n }),\r\n [profile]\r\n );\r\n\r\n return <Context value={value}>{children}</Context>;\r\n };\r\n\r\n return {\r\n useSelect,\r\n instance: Context,\r\n Provider\r\n } as const;\r\n};\r\n"],"names":["createContext","defaultValue","options","Context","createReactContext","useSelect","selector","context","useContext","children","initialValue","profile","setProfile","useState","value","useMemo","jsx"],"mappings":";;AAuDO,MAAMA,IAAgB,CAC3BC,IAAkC,QAClCC,IAAgC,CAAA,MACD;AAC/B,QAAMC,IAAUC,EAGb;AAAA,IACD,OAAOH;AAAA,IACP,KAAK,MAAM;AAAA,IAAA;AAAA,EAAC,CACb;AAED,EAAAE,EAAQ,cAAcD,EAAQ;AAI9B,WAASG,EAAoBC,GAAuC;AAClE,UAAMC,IAAUC,EAAWL,CAAO;AAElC,QAAI,CAACI,KAAWL,EAAQ;AACtB,YAAM,IAAI,MAAM,gBAAgBA,EAAQ,IAAI,iCAAiC;AAG/E,WAAKI,IAIEA,EAASC,EAAQ,KAAc,IAH7BA;AAAA,EAG6B;AAiBxC,SAAO;AAAA,IACL,WAAAF;AAAA,IACA,UAAUF;AAAA,IACV,UAjBe,CAAC,EAAE,UAAAM,GAAU,cAAAC,QAAyC;AACrE,YAAM,CAACC,GAASC,CAAU,IAAIC,EAA4BH,KAAgBT,CAAY,GAEhFa,IAAQC;AAAA,QACZ,OAAO;AAAA,UACL,OAAOJ;AAAA,UACP,KAAKC;AAAA,QAAA;AAAA,QAEP,CAACD,CAAO;AAAA,MAAA;AAGV,aAAO,gBAAAK,EAACb,GAAA,EAAQ,OAAAW,GAAe,UAAAL,EAAA,CAAS;AAAA,IAAA;AAAA,EAMxC;AAEJ;"}
1
+ {"version":3,"file":"createContext.mjs","names":[],"sources":["../../../../src/helpers/createContext/createContext.tsx"],"sourcesContent":["import type { JSX, ReactNode } from 'react';\r\n\r\nimport { createContext as createReactContext, useContext, useMemo, useState } from 'react';\r\n\r\n/** The create context options type */\r\nexport interface CreateContextOptions {\r\n /** Display name for the context (useful for debugging) */\r\n name?: string;\r\n /** Whether to throw an error if context is used outside of Provider */\r\n strict?: boolean;\r\n}\r\n\r\n/** The context value type */\r\nexport interface ContextValue<Value> {\r\n /** The context value */\r\n value: Value | undefined;\r\n /** The context set function */\r\n set: (value: Value) => void;\r\n}\r\n\r\n/** The provider props type */\r\nexport interface ProviderProps<Value> {\r\n /** The children */\r\n children?: ReactNode;\r\n /** The initial value */\r\n initialValue?: Value;\r\n}\r\n\r\n/** The create context return type */\r\nexport interface CreateContextReturn<Value> {\r\n /** The context instance */\r\n instance: React.Context<ContextValue<Value>>;\r\n /** The provider component */\r\n Provider: (props: ProviderProps<Value>) => JSX.Element;\r\n /** The selector hook */\r\n useSelect: {\r\n <Selected>(selector: (value: Value) => Selected): Selected;\r\n (): ContextValue<Value>;\r\n };\r\n}\r\n\r\n/**\r\n * @name createContext\r\n * @description - Creates a typed context with additional utilities\r\n * @category Helpers\r\n * @usage high\r\n *\r\n * @template Value - The type of value that will be stored in the context\r\n * @param {Value | undefined} [defaultValue] - Default value for the context\r\n * @param {CreateContextOptions<Value>} [options] - Additional options for context creation\r\n * @returns {CreateContextReturn<Value>} Object containing context utilities and components\r\n *\r\n * @example\r\n * const { useSelect, instance, Provider } = createContext<number>(0);\r\n */\r\nexport const createContext = <Value,>(\r\n defaultValue: Value | undefined = undefined,\r\n options: CreateContextOptions = {}\r\n): CreateContextReturn<Value> => {\r\n const Context = createReactContext<{\r\n value: Value | undefined;\r\n set: (value: Value) => void;\r\n }>({\r\n value: defaultValue,\r\n set: () => {}\r\n });\r\n\r\n Context.displayName = options.name;\r\n\r\n function useSelect(): ContextValue<Value>;\r\n function useSelect<Selected>(selector: (value: Value) => Selected): Selected;\r\n function useSelect<Selected>(selector?: (value: Value) => Selected) {\r\n const context = useContext(Context);\r\n\r\n if (!context && options.strict) {\r\n throw new Error(`Context hook ${options.name} must be used inside a Provider`);\r\n }\r\n\r\n if (!selector) {\r\n return context;\r\n }\r\n\r\n return selector(context.value as Value);\r\n }\r\n\r\n const Provider = ({ children, initialValue }: ProviderProps<Value>) => {\r\n const [profile, setProfile] = useState<Value | undefined>(initialValue ?? defaultValue);\r\n\r\n const value = useMemo(\r\n () => ({\r\n value: profile,\r\n set: setProfile\r\n }),\r\n [profile]\r\n );\r\n\r\n return <Context value={value}>{children}</Context>;\r\n };\r\n\r\n return {\r\n useSelect,\r\n instance: Context,\r\n Provider\r\n } as const;\r\n};\r\n"],"mappings":";;;AAuDA,IAAa,KACX,IAAkC,KAAA,GAClC,IAAgC,EAAE,KACH;CAC/B,IAAM,IAAU,EAGb;EACD,OAAO;EACP,WAAW;EACZ,CAAC;AAEF,GAAQ,cAAc,EAAQ;CAI9B,SAAS,EAAoB,GAAuC;EAClE,IAAM,IAAU,EAAW,EAAQ;AAEnC,MAAI,CAAC,KAAW,EAAQ,OACtB,OAAU,MAAM,gBAAgB,EAAQ,KAAK,iCAAiC;AAOhF,SAJK,IAIE,EAAS,EAAQ,MAAe,GAH9B;;AAoBX,QAAO;EACL;EACA,UAAU;EACV,WAjBgB,EAAE,aAAU,sBAAyC;GACrE,IAAM,CAAC,GAAS,KAAc,EAA4B,KAAgB,EAAa;AAUvF,UAAO,kBAAC,GAAD;IAAgB,OART,SACL;KACL,OAAO;KACP,KAAK;KACN,GACD,CAAC,EAAQ,CACV;IAE8B;IAAmB,CAAA;;EAOnD"}
@@ -1,13 +1,20 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { createContext as c, useContext as u } from "react";
3
- const C = (o) => {
4
- const t = c(null);
5
- return { Provider: ({ children: e, params: r }) => {
6
- const n = o(...r);
7
- return /* @__PURE__ */ s(t.Provider, { value: n, children: e });
8
- }, use: () => u(t) };
1
+ import { createContext as e, useContext as t } from "react";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ //#region src/helpers/createContextHook/createContextHook.tsx
4
+ var r = (r) => {
5
+ let i = e(null);
6
+ return {
7
+ Provider: ({ children: e, params: t }) => {
8
+ let a = r(...t);
9
+ return /* @__PURE__ */ n(i.Provider, {
10
+ value: a,
11
+ children: e
12
+ });
13
+ },
14
+ use: () => t(i)
15
+ };
9
16
  };
10
- export {
11
- C as createContextHook
12
- };
13
- //# sourceMappingURL=createContextHook.mjs.map
17
+ //#endregion
18
+ export { r as createContextHook };
19
+
20
+ //# sourceMappingURL=createContextHook.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createContextHook.mjs","sources":["../../../../src/helpers/createContextHook/createContextHook.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { createContext, useContext } from 'react';\n\n/**\n * @name createContextHook\n * @description - Hook that runs inside a Provider; Provider accepts params (the hook's arguments). Use when you need a scoped instance per subtree.\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @param useHook - The hook to run in the Provider (e.g. useMediaQuery)\n * @returns { Provider, use } — Provider takes params; use() returns the value and must be used inside Provider\n *\n * @example\n * const { Provider, use } = createContextHook(useMediaQuery);\n * <Provider params={[\"(max-width: 768px)\"]}>\n * <Component />\n * </Provider>\n * const matches = use();\n */\nexport const createContextHook = <Hook extends (...args: any[]) => any>(useHook: Hook) => {\n type Value = ReturnType<Hook>;\n const Context = createContext<Value | null>(null);\n\n const Provider = ({ children, params }: { children: ReactNode; params: Parameters<Hook> }) => {\n const value = useHook(...params) as Value;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n const use = () => useContext(Context);\n\n return { Provider, use };\n};\n"],"names":["createContextHook","useHook","Context","createContext","children","params","value","jsx","useContext"],"mappings":";;AAsBO,MAAMA,IAAoB,CAAuCC,MAAkB;AAExF,QAAMC,IAAUC,EAA4B,IAAI;AAShD,SAAO,EAAE,UAPQ,CAAC,EAAE,UAAAC,GAAU,QAAAC,QAAgE;AAC5F,UAAMC,IAAQL,EAAQ,GAAGI,CAAM;AAC/B,WAAO,gBAAAE,EAACL,EAAQ,UAAR,EAAiB,OAAAI,GAAe,UAAAF,EAAA,CAAS;AAAA,EAAA,GAKhC,KAFP,MAAMI,EAAWN,CAAO,EAEjB;AACrB;"}
1
+ {"version":3,"file":"createContextHook.mjs","names":[],"sources":["../../../../src/helpers/createContextHook/createContextHook.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { createContext, useContext } from 'react';\n\n/**\n * @name createContextHook\n * @description - Hook that runs inside a Provider; Provider accepts params (the hook's arguments). Use when you need a scoped instance per subtree.\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @param useHook - The hook to run in the Provider (e.g. useMediaQuery)\n * @returns { Provider, use } — Provider takes params; use() returns the value and must be used inside Provider\n *\n * @example\n * const { Provider, use } = createContextHook(useMediaQuery);\n * <Provider params={[\"(max-width: 768px)\"]}>\n * <Component />\n * </Provider>\n * const matches = use();\n */\nexport const createContextHook = <Hook extends (...args: any[]) => any>(useHook: Hook) => {\n type Value = ReturnType<Hook>;\n const Context = createContext<Value | null>(null);\n\n const Provider = ({ children, params }: { children: ReactNode; params: Parameters<Hook> }) => {\n const value = useHook(...params) as Value;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n const use = () => useContext(Context);\n\n return { Provider, use };\n};\n"],"mappings":";;;AAsBA,IAAa,KAA2D,MAAkB;CAExF,IAAM,IAAU,EAA4B,KAAK;AASjD,QAAO;EAAE,WAPS,EAAE,aAAU,gBAAgE;GAC5F,IAAM,IAAQ,EAAQ,GAAG,EAAO;AAChC,UAAO,kBAAC,EAAQ,UAAT;IAAyB;IAAQ;IAA4B,CAAA;;EAKnD,WAFD,EAAW,EAAQ;EAEb"}
@@ -1,34 +1,35 @@
1
- import { useState as a, useRef as v, useEffect as S } from "react";
2
- const E = () => {
3
- const r = /* @__PURE__ */ new Map(), b = (e, t) => {
4
- r.get(e)?.forEach((n) => n(t));
5
- }, c = (e, t) => {
6
- const s = e, n = r.get(s);
7
- n && (n.delete(t), n.size || r.delete(s));
8
- }, o = (e, t) => {
9
- const s = e;
10
- return r.has(s) || r.set(s, /* @__PURE__ */ new Set()), r.get(e).add(t), () => {
11
- c(e, t);
12
- };
13
- };
14
- return {
15
- push: b,
16
- subscribe: o,
17
- unsubscribe: c,
18
- useSubscribe: (e, t) => {
19
- const [s, n] = a(void 0), u = v(t);
20
- return u.current = t, S(() => {
21
- const f = o(e, (i) => {
22
- n(i), u.current?.(i);
23
- });
24
- return () => {
25
- f();
26
- };
27
- }, [e]), s;
28
- }
29
- };
1
+ import { useEffect as e, useRef as t, useState as n } from "react";
2
+ //#region src/helpers/createEventEmitter/createEventEmitter.ts
3
+ var r = () => {
4
+ let r = /* @__PURE__ */ new Map(), i = (e, t) => {
5
+ r.get(e)?.forEach((e) => e(t));
6
+ }, a = (e, t) => {
7
+ let n = e, i = r.get(n);
8
+ i && (i.delete(t), i.size || r.delete(n));
9
+ }, o = (e, t) => {
10
+ let n = e;
11
+ return r.has(n) || r.set(n, /* @__PURE__ */ new Set()), r.get(e).add(t), () => {
12
+ a(e, t);
13
+ };
14
+ };
15
+ return {
16
+ push: i,
17
+ subscribe: o,
18
+ unsubscribe: a,
19
+ useSubscribe: (r, i) => {
20
+ let [a, s] = n(void 0), c = t(i);
21
+ return c.current = i, e(() => {
22
+ let e = o(r, (e) => {
23
+ s(e), c.current?.(e);
24
+ });
25
+ return () => {
26
+ e();
27
+ };
28
+ }, [r]), a;
29
+ }
30
+ };
30
31
  };
31
- export {
32
- E as createEventEmitter
33
- };
34
- //# sourceMappingURL=createEventEmitter.mjs.map
32
+ //#endregion
33
+ export { r as createEventEmitter };
34
+
35
+ //# sourceMappingURL=createEventEmitter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createEventEmitter.mjs","sources":["../../../../src/helpers/createEventEmitter/createEventEmitter.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/**\n * @name createEventEmitter\n * @description - Creates a type-safe event emitter\n * @category Helpers\n * @usage low\n *\n * @template Events - The type of events and their data\n * @returns {EventEmitterApi<Events>} - Object containing event emitter methods and hook\n *\n * @example\n * const { push, subscribe, unsubscribe, useSubscribe } = createEventEmitter<{ foo: number }>();\n */\nexport const createEventEmitter = <Events extends Record<string, any> = Record<string, any>>() => {\n type ListenerMap = Map<string, Set<(data: any) => void>>;\n const listeners: ListenerMap = new Map();\n\n const push = <Event extends keyof Events>(event: Event, data: Events[Event]) => {\n const eventListeners = listeners.get(event as string);\n eventListeners?.forEach((listener) => listener(data));\n };\n\n const unsubscribe = <Key extends keyof Events>(\n event: Key,\n listener: (data: Events[Key]) => void\n ) => {\n const eventKey = event as string;\n const eventListeners = listeners.get(eventKey);\n if (!eventListeners) return;\n eventListeners.delete(listener);\n if (!eventListeners.size) listeners.delete(eventKey);\n };\n\n const subscribe = <Key extends keyof Events>(\n event: Key,\n listener: (data: Events[Key]) => void\n ) => {\n const eventKey = event as string;\n if (!listeners.has(eventKey)) listeners.set(eventKey, new Set());\n const eventListeners = listeners.get(event as string)!;\n eventListeners.add(listener);\n\n return () => {\n unsubscribe(event, listener);\n };\n };\n\n const useSubscribe = <Event extends keyof Events>(\n event: Event,\n listener?: (data: Events[Event]) => void\n ) => {\n const [data, setData] = useState<Events[Event] | undefined>(undefined);\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n\n useEffect(() => {\n const onSubscribe = (data: Events[Event]) => {\n setData(data);\n listenerRef.current?.(data);\n };\n\n const unsubscribe = subscribe(event, onSubscribe);\n return () => {\n unsubscribe();\n };\n }, [event]);\n\n return data;\n };\n\n return {\n push,\n subscribe,\n unsubscribe,\n useSubscribe\n };\n};\n"],"names":["createEventEmitter","listeners","push","event","data","listener","unsubscribe","eventKey","eventListeners","subscribe","setData","useState","listenerRef","useRef","useEffect"],"mappings":";AAcO,MAAMA,IAAqB,MAAgE;AAEhG,QAAMC,wBAA6B,IAAA,GAE7BC,IAAO,CAA6BC,GAAcC,MAAwB;AAE9E,IADuBH,EAAU,IAAIE,CAAe,GACpC,QAAQ,CAACE,MAAaA,EAASD,CAAI,CAAC;AAAA,EAAA,GAGhDE,IAAc,CAClBH,GACAE,MACG;AACH,UAAME,IAAWJ,GACXK,IAAiBP,EAAU,IAAIM,CAAQ;AAC7C,IAAKC,MACLA,EAAe,OAAOH,CAAQ,GACzBG,EAAe,QAAMP,EAAU,OAAOM,CAAQ;AAAA,EAAA,GAG/CE,IAAY,CAChBN,GACAE,MACG;AACH,UAAME,IAAWJ;AACjB,WAAKF,EAAU,IAAIM,CAAQ,OAAa,IAAIA,GAAU,oBAAI,KAAK,GACxCN,EAAU,IAAIE,CAAe,EACrC,IAAIE,CAAQ,GAEpB,MAAM;AACX,MAAAC,EAAYH,GAAOE,CAAQ;AAAA,IAAA;AAAA,EAC7B;AA0BF,SAAO;AAAA,IACL,MAAAH;AAAA,IACA,WAAAO;AAAA,IACA,aAAAH;AAAA,IACA,cA3BmB,CACnBH,GACAE,MACG;AACH,YAAM,CAACD,GAAMM,CAAO,IAAIC,EAAoC,MAAS,GAC/DC,IAAcC,EAAOR,CAAQ;AACnC,aAAAO,EAAY,UAAUP,GAEtBS,EAAU,MAAM;AAMd,cAAMR,IAAcG,EAAUN,GALV,CAACC,MAAwB;AAC3C,UAAAM,EAAQN,CAAI,GACZQ,EAAY,UAAUR,CAAI;AAAA,QAAA,CAGoB;AAChD,eAAO,MAAM;AACXE,UAAAA,EAAAA;AAAAA,QAAY;AAAA,MACd,GACC,CAACH,CAAK,CAAC,GAEHC;AAAA,IAAA;AAAA,EAOP;AAEJ;"}
1
+ {"version":3,"file":"createEventEmitter.mjs","names":[],"sources":["../../../../src/helpers/createEventEmitter/createEventEmitter.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/**\n * @name createEventEmitter\n * @description - Creates a type-safe event emitter\n * @category Helpers\n * @usage low\n *\n * @template Events - The type of events and their data\n * @returns {EventEmitterApi<Events>} - Object containing event emitter methods and hook\n *\n * @example\n * const { push, subscribe, unsubscribe, useSubscribe } = createEventEmitter<{ foo: number }>();\n */\nexport const createEventEmitter = <Events extends Record<string, any> = Record<string, any>>() => {\n type ListenerMap = Map<string, Set<(data: any) => void>>;\n const listeners: ListenerMap = new Map();\n\n const push = <Event extends keyof Events>(event: Event, data: Events[Event]) => {\n const eventListeners = listeners.get(event as string);\n eventListeners?.forEach((listener) => listener(data));\n };\n\n const unsubscribe = <Key extends keyof Events>(\n event: Key,\n listener: (data: Events[Key]) => void\n ) => {\n const eventKey = event as string;\n const eventListeners = listeners.get(eventKey);\n if (!eventListeners) return;\n eventListeners.delete(listener);\n if (!eventListeners.size) listeners.delete(eventKey);\n };\n\n const subscribe = <Key extends keyof Events>(\n event: Key,\n listener: (data: Events[Key]) => void\n ) => {\n const eventKey = event as string;\n if (!listeners.has(eventKey)) listeners.set(eventKey, new Set());\n const eventListeners = listeners.get(event as string)!;\n eventListeners.add(listener);\n\n return () => {\n unsubscribe(event, listener);\n };\n };\n\n const useSubscribe = <Event extends keyof Events>(\n event: Event,\n listener?: (data: Events[Event]) => void\n ) => {\n const [data, setData] = useState<Events[Event] | undefined>(undefined);\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n\n useEffect(() => {\n const onSubscribe = (data: Events[Event]) => {\n setData(data);\n listenerRef.current?.(data);\n };\n\n const unsubscribe = subscribe(event, onSubscribe);\n return () => {\n unsubscribe();\n };\n }, [event]);\n\n return data;\n };\n\n return {\n push,\n subscribe,\n unsubscribe,\n useSubscribe\n };\n};\n"],"mappings":";;AAcA,IAAa,UAAqF;CAEhG,IAAM,oBAAyB,IAAI,KAAK,EAElC,KAAoC,GAAc,MAAwB;AACvD,IAAU,IAAI,EAAgB,EACrC,SAAS,MAAa,EAAS,EAAK,CAAC;IAGjD,KACJ,GACA,MACG;EACH,IAAM,IAAW,GACX,IAAiB,EAAU,IAAI,EAAS;AACzC,QACL,EAAe,OAAO,EAAS,EAC1B,EAAe,QAAM,EAAU,OAAO,EAAS;IAGhD,KACJ,GACA,MACG;EACH,IAAM,IAAW;AAKjB,SAJK,EAAU,IAAI,EAAS,IAAE,EAAU,IAAI,mBAAU,IAAI,KAAK,CAAC,EACzC,EAAU,IAAI,EAAgB,CACtC,IAAI,EAAS,QAEf;AACX,KAAY,GAAO,EAAS;;;AA2BhC,QAAO;EACL;EACA;EACA;EACA,eA1BA,GACA,MACG;GACH,IAAM,CAAC,GAAM,KAAW,EAAoC,KAAA,EAAU,EAChE,IAAc,EAAO,EAAS;AAepC,UAdA,EAAY,UAAU,GAEtB,QAAgB;IAMd,IAAM,IAAc,EAAU,IALT,MAAwB;AAE3C,KADA,EAAQ,EAAK,EACb,EAAY,UAAU,EAAK;MAGoB;AACjD,iBAAa;AACX,QAAa;;MAEd,CAAC,EAAM,CAAC,EAEJ;;EAQR"}
@@ -1,54 +1,54 @@
1
- import { createContext as v, useRef as d, useMemo as f, startTransition as m, createElement as x, useContext as h, useState as C } from "react";
2
- import { useIsomorphicLayoutEffect as l } from "../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
3
- import { useEvent as P } from "../../hooks/useEvent/useEvent.mjs";
4
- const S = (c) => (e) => {
5
- const t = d(e.value), n = f(
6
- () => ({
7
- value: t,
8
- listeners: /* @__PURE__ */ new Set()
9
- }),
10
- []
11
- );
12
- return l(() => {
13
- Object.is(t.current, e.value) || (t.current = e.value, m(() => {
14
- n.listeners.forEach((s) => {
15
- s(t.current);
16
- });
17
- }));
18
- }, [e.value]), x(c, { value: n }, e.children);
19
- }, E = (c, r, e = {}) => {
20
- const t = h(c);
21
- if (!t && e.strict)
22
- throw new Error(`Context hook ${e.name} must be used inside a Provider`);
23
- const [n, s] = C({
24
- selected: r(t.value.current),
25
- value: t.value.current
26
- }), o = P((i) => {
27
- s((u) => {
28
- if (Object.is(u.value, i)) return u;
29
- const a = r(i);
30
- return Object.is(u.selected, a) ? u : { value: i, selected: a };
31
- });
32
- });
33
- return l(() => (t.listeners.add(o), () => {
34
- t.listeners.delete(o);
35
- }), [t.listeners]), n.selected;
36
- }, w = (c = void 0, r = {}) => {
37
- const e = v({
38
- value: { current: c },
39
- listeners: /* @__PURE__ */ new Set()
40
- }), t = S(e.Provider);
41
- e.displayName = r.name;
42
- function n(s) {
43
- return E(
44
- e,
45
- s ?? ((o) => o),
46
- r
47
- );
48
- }
49
- return { instance: e, Provider: t, useSelector: n };
1
+ import { useIsomorphicLayoutEffect as e } from "../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
2
+ import { useEvent as t } from "../../hooks/useEvent/useEvent.mjs";
3
+ import { createContext as n, createElement as r, startTransition as i, useContext as a, useMemo as o, useRef as s, useState as c } from "react";
4
+ //#region src/helpers/createReactiveContext/createReactiveContext.ts
5
+ var l = (t) => (n) => {
6
+ let a = s(n.value), c = o(() => ({
7
+ value: a,
8
+ listeners: /* @__PURE__ */ new Set()
9
+ }), []);
10
+ return e(() => {
11
+ Object.is(a.current, n.value) || (a.current = n.value, i(() => {
12
+ c.listeners.forEach((e) => {
13
+ e(a.current);
14
+ });
15
+ }));
16
+ }, [n.value]), r(t, { value: c }, n.children);
17
+ }, u = (n, r, i = {}) => {
18
+ let o = a(n);
19
+ if (!o && i.strict) throw Error(`Context hook ${i.name} must be used inside a Provider`);
20
+ let [s, l] = c({
21
+ selected: r(o.value.current),
22
+ value: o.value.current
23
+ }), u = t((e) => {
24
+ l((t) => {
25
+ if (Object.is(t.value, e)) return t;
26
+ let n = r(e);
27
+ return Object.is(t.selected, n) ? t : {
28
+ value: e,
29
+ selected: n
30
+ };
31
+ });
32
+ });
33
+ return e(() => (o.listeners.add(u), () => {
34
+ o.listeners.delete(u);
35
+ }), [o.listeners]), s.selected;
36
+ }, d = (e = void 0, t = {}) => {
37
+ let r = n({
38
+ value: { current: e },
39
+ listeners: /* @__PURE__ */ new Set()
40
+ }), i = l(r.Provider);
41
+ r.displayName = t.name;
42
+ function a(e) {
43
+ return u(r, e ?? ((e) => e), t);
44
+ }
45
+ return {
46
+ instance: r,
47
+ Provider: i,
48
+ useSelector: a
49
+ };
50
50
  };
51
- export {
52
- w as createReactiveContext
53
- };
54
- //# sourceMappingURL=createReactiveContext.mjs.map
51
+ //#endregion
52
+ export { d as createReactiveContext };
53
+
54
+ //# sourceMappingURL=createReactiveContext.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createReactiveContext.mjs","sources":["../../../../src/helpers/createReactiveContext/createReactiveContext.ts"],"sourcesContent":["import type { Context, FC, Provider, ProviderProps, RefObject } from 'react';\n\nimport {\n createContext,\n createElement,\n startTransition,\n useContext,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport { useEvent, useIsomorphicLayoutEffect } from '@/hooks';\n\n/** The create reactive context options type */\nexport interface CreateReactiveContextOptions {\n /** Display name for the context (useful for debugging) */\n name?: string;\n /** Whether to throw an error if context is used outside of Provider */\n strict?: boolean;\n}\n\n/** The create reactive context return type */\nexport interface CreateReactiveContextReturn<Value> {\n /** The context instance */\n instance: Context<ReactiveContextValue<Value>>;\n /** The Provider component for the context */\n Provider: Provider<Value>;\n /** A hook to select a part of the context state */\n useSelector: <Selected>(selector?: (state: Value) => Selected) => Selected;\n}\n\ntype ContextListener<Value> = (value: Value) => void;\n\ninterface ReactiveContextValue<Value> {\n /** The listeners for the context */\n listeners: Set<ContextListener<Value>>;\n /** The value for the context */\n value: RefObject<Value>;\n}\n\nconst createProvider = <Value>(originalProvider: Provider<ReactiveContextValue<Value>>) => {\n const Provider: FC<ProviderProps<Value>> = (props) => {\n const valueRef = useRef(props.value);\n const contextValue = useMemo<ReactiveContextValue<Value>>(\n () => ({\n value: valueRef,\n listeners: new Set()\n }),\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!Object.is(valueRef.current, props.value)) {\n valueRef.current = props.value;\n\n startTransition(() => {\n contextValue.listeners.forEach((listener) => {\n listener(valueRef.current);\n });\n });\n }\n }, [props.value]);\n\n return createElement(originalProvider, { value: contextValue }, props.children);\n };\n\n return Provider as unknown as Provider<ReactiveContextValue<Value>>;\n};\n\nconst createReactiveContextSelector = <Value, Selected>(\n Context: Context<ReactiveContextValue<Value>>,\n selector: (state: Value) => Selected,\n options: CreateReactiveContextOptions = {}\n) => {\n const context = useContext(Context);\n\n if (!context && options.strict) {\n throw new Error(`Context hook ${options.name} must be used inside a Provider`);\n }\n\n const [value, setValue] = useState({\n selected: selector(context.value.current),\n value: context.value.current\n });\n\n const dispatch = useEvent((newValue: Value) => {\n setValue((prevValue) => {\n if (Object.is(prevValue.value, newValue)) return prevValue;\n\n const newSelected = selector(newValue);\n if (Object.is(prevValue.selected, newSelected)) return prevValue;\n\n return { value: newValue, selected: newSelected };\n });\n });\n\n useIsomorphicLayoutEffect(() => {\n context.listeners.add(dispatch);\n return () => {\n context.listeners.delete(dispatch);\n };\n }, [context.listeners]);\n\n return value.selected;\n};\n\n/**\n * @name createReactiveContext\n * @description - Creates a typed context selector with optimized updates for state selection\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @template Value - The type of value that will be stored in the context\n * @param {Value | undefined} [defaultValue] - Default value for the context\n * @param {CreateReactiveContextOptions<Value>} [options] - Additional options for context creation\n * @returns {CreateReactiveContextReturn<Value>} Object containing context utilities and components\n *\n * @example\n * const { Provider, useSelector, instance } = createReactiveContext<number>(0);\n */\nexport const createReactiveContext = <Value extends Record<string, any>>(\n defaultValue: Value | undefined = undefined,\n options: CreateReactiveContextOptions = {}\n) => {\n const Context = createContext<ReactiveContextValue<Value>>({\n value: { current: defaultValue as Value },\n listeners: new Set()\n });\n\n const Provider = createProvider(Context.Provider) as unknown as Provider<Value>;\n\n Context.displayName = options.name;\n\n function useSelector(): Value;\n function useSelector<SelectedValue>(selector: (state: Value) => SelectedValue): SelectedValue;\n function useSelector<SelectedValue>(selector?: (state: Value) => SelectedValue) {\n return createReactiveContextSelector(\n Context as unknown as Context<ReactiveContextValue<Value>>,\n selector ?? ((state) => state as unknown as SelectedValue),\n options\n );\n }\n\n return { instance: Context, Provider, useSelector };\n};\n"],"names":["createProvider","originalProvider","props","valueRef","useRef","contextValue","useMemo","useIsomorphicLayoutEffect","startTransition","listener","createElement","createReactiveContextSelector","Context","selector","options","context","useContext","value","setValue","useState","dispatch","useEvent","newValue","prevValue","newSelected","createReactiveContext","defaultValue","createContext","Provider","useSelector","state"],"mappings":";;;AAyCA,MAAMA,IAAiB,CAAQC,MACc,CAACC,MAAU;AACpD,QAAMC,IAAWC,EAAOF,EAAM,KAAK,GAC7BG,IAAeC;AAAA,IACnB,OAAO;AAAA,MACL,OAAOH;AAAA,MACP,+BAAe,IAAA;AAAA,IAAI;AAAA,IAErB,CAAA;AAAA,EAAC;AAGH,SAAAI,EAA0B,MAAM;AAC9B,IAAK,OAAO,GAAGJ,EAAS,SAASD,EAAM,KAAK,MAC1CC,EAAS,UAAUD,EAAM,OAEzBM,EAAgB,MAAM;AACpB,MAAAH,EAAa,UAAU,QAAQ,CAACI,MAAa;AAC3C,QAAAA,EAASN,EAAS,OAAO;AAAA,MAAA,CAC1B;AAAA,IAAA,CACF;AAAA,EACH,GACC,CAACD,EAAM,KAAK,CAAC,GAETQ,EAAcT,GAAkB,EAAE,OAAOI,EAAA,GAAgBH,EAAM,QAAQ;AAAA,GAM5ES,IAAgC,CACpCC,GACAC,GACAC,IAAwC,CAAA,MACrC;AACH,QAAMC,IAAUC,EAAWJ,CAAO;AAElC,MAAI,CAACG,KAAWD,EAAQ;AACtB,UAAM,IAAI,MAAM,gBAAgBA,EAAQ,IAAI,iCAAiC;AAG/E,QAAM,CAACG,GAAOC,CAAQ,IAAIC,EAAS;AAAA,IACjC,UAAUN,EAASE,EAAQ,MAAM,OAAO;AAAA,IACxC,OAAOA,EAAQ,MAAM;AAAA,EAAA,CACtB,GAEKK,IAAWC,EAAS,CAACC,MAAoB;AAC7C,IAAAJ,EAAS,CAACK,MAAc;AACtB,UAAI,OAAO,GAAGA,EAAU,OAAOD,CAAQ,EAAG,QAAOC;AAEjD,YAAMC,IAAcX,EAASS,CAAQ;AACrC,aAAI,OAAO,GAAGC,EAAU,UAAUC,CAAW,IAAUD,IAEhD,EAAE,OAAOD,GAAU,UAAUE,EAAA;AAAA,IAAY,CACjD;AAAA,EAAA,CACF;AAED,SAAAjB,EAA0B,OACxBQ,EAAQ,UAAU,IAAIK,CAAQ,GACvB,MAAM;AACX,IAAAL,EAAQ,UAAU,OAAOK,CAAQ;AAAA,EAAA,IAElC,CAACL,EAAQ,SAAS,CAAC,GAEfE,EAAM;AACf,GAkBaQ,IAAwB,CACnCC,IAAkC,QAClCZ,IAAwC,CAAA,MACrC;AACH,QAAMF,IAAUe,EAA2C;AAAA,IACzD,OAAO,EAAE,SAASD,EAAA;AAAA,IAClB,+BAAe,IAAA;AAAA,EAAI,CACpB,GAEKE,IAAW5B,EAAeY,EAAQ,QAAQ;AAEhD,EAAAA,EAAQ,cAAcE,EAAQ;AAI9B,WAASe,EAA2BhB,GAA4C;AAC9E,WAAOF;AAAA,MACLC;AAAA,MACAC,MAAa,CAACiB,MAAUA;AAAA,MACxBhB;AAAA,IAAA;AAAA,EACF;AAGF,SAAO,EAAE,UAAUF,GAAS,UAAAgB,GAAU,aAAAC,EAAA;AACxC;"}
1
+ {"version":3,"file":"createReactiveContext.mjs","names":[],"sources":["../../../../src/helpers/createReactiveContext/createReactiveContext.ts"],"sourcesContent":["import type { Context, FC, Provider, ProviderProps, RefObject } from 'react';\n\nimport {\n createContext,\n createElement,\n startTransition,\n useContext,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport { useEvent, useIsomorphicLayoutEffect } from '@/hooks';\n\n/** The create reactive context options type */\nexport interface CreateReactiveContextOptions {\n /** Display name for the context (useful for debugging) */\n name?: string;\n /** Whether to throw an error if context is used outside of Provider */\n strict?: boolean;\n}\n\n/** The create reactive context return type */\nexport interface CreateReactiveContextReturn<Value> {\n /** The context instance */\n instance: Context<ReactiveContextValue<Value>>;\n /** The Provider component for the context */\n Provider: Provider<Value>;\n /** A hook to select a part of the context state */\n useSelector: <Selected>(selector?: (state: Value) => Selected) => Selected;\n}\n\ntype ContextListener<Value> = (value: Value) => void;\n\ninterface ReactiveContextValue<Value> {\n /** The listeners for the context */\n listeners: Set<ContextListener<Value>>;\n /** The value for the context */\n value: RefObject<Value>;\n}\n\nconst createProvider = <Value>(originalProvider: Provider<ReactiveContextValue<Value>>) => {\n const Provider: FC<ProviderProps<Value>> = (props) => {\n const valueRef = useRef(props.value);\n const contextValue = useMemo<ReactiveContextValue<Value>>(\n () => ({\n value: valueRef,\n listeners: new Set()\n }),\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!Object.is(valueRef.current, props.value)) {\n valueRef.current = props.value;\n\n startTransition(() => {\n contextValue.listeners.forEach((listener) => {\n listener(valueRef.current);\n });\n });\n }\n }, [props.value]);\n\n return createElement(originalProvider, { value: contextValue }, props.children);\n };\n\n return Provider as unknown as Provider<ReactiveContextValue<Value>>;\n};\n\nconst createReactiveContextSelector = <Value, Selected>(\n Context: Context<ReactiveContextValue<Value>>,\n selector: (state: Value) => Selected,\n options: CreateReactiveContextOptions = {}\n) => {\n const context = useContext(Context);\n\n if (!context && options.strict) {\n throw new Error(`Context hook ${options.name} must be used inside a Provider`);\n }\n\n const [value, setValue] = useState({\n selected: selector(context.value.current),\n value: context.value.current\n });\n\n const dispatch = useEvent((newValue: Value) => {\n setValue((prevValue) => {\n if (Object.is(prevValue.value, newValue)) return prevValue;\n\n const newSelected = selector(newValue);\n if (Object.is(prevValue.selected, newSelected)) return prevValue;\n\n return { value: newValue, selected: newSelected };\n });\n });\n\n useIsomorphicLayoutEffect(() => {\n context.listeners.add(dispatch);\n return () => {\n context.listeners.delete(dispatch);\n };\n }, [context.listeners]);\n\n return value.selected;\n};\n\n/**\n * @name createReactiveContext\n * @description - Creates a typed context selector with optimized updates for state selection\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @template Value - The type of value that will be stored in the context\n * @param {Value | undefined} [defaultValue] - Default value for the context\n * @param {CreateReactiveContextOptions<Value>} [options] - Additional options for context creation\n * @returns {CreateReactiveContextReturn<Value>} Object containing context utilities and components\n *\n * @example\n * const { Provider, useSelector, instance } = createReactiveContext<number>(0);\n */\nexport const createReactiveContext = <Value extends Record<string, any>>(\n defaultValue: Value | undefined = undefined,\n options: CreateReactiveContextOptions = {}\n) => {\n const Context = createContext<ReactiveContextValue<Value>>({\n value: { current: defaultValue as Value },\n listeners: new Set()\n });\n\n const Provider = createProvider(Context.Provider) as unknown as Provider<Value>;\n\n Context.displayName = options.name;\n\n function useSelector(): Value;\n function useSelector<SelectedValue>(selector: (state: Value) => SelectedValue): SelectedValue;\n function useSelector<SelectedValue>(selector?: (state: Value) => SelectedValue) {\n return createReactiveContextSelector(\n Context as unknown as Context<ReactiveContextValue<Value>>,\n selector ?? ((state) => state as unknown as SelectedValue),\n options\n );\n }\n\n return { instance: Context, Provider, useSelector };\n};\n"],"mappings":";;;;AAyCA,IAAM,KAAyB,OACe,MAAU;CACpD,IAAM,IAAW,EAAO,EAAM,MAAM,EAC9B,IAAe,SACZ;EACL,OAAO;EACP,2BAAW,IAAI,KAAK;EACrB,GACD,EAAE,CACH;AAcD,QAZA,QAAgC;AAC9B,EAAK,OAAO,GAAG,EAAS,SAAS,EAAM,MAAM,KAC3C,EAAS,UAAU,EAAM,OAEzB,QAAsB;AACpB,KAAa,UAAU,SAAS,MAAa;AAC3C,MAAS,EAAS,QAAQ;KAC1B;IACF;IAEH,CAAC,EAAM,MAAM,CAAC,EAEV,EAAc,GAAkB,EAAE,OAAO,GAAc,EAAE,EAAM,SAAS;GAM7E,KACJ,GACA,GACA,IAAwC,EAAE,KACvC;CACH,IAAM,IAAU,EAAW,EAAQ;AAEnC,KAAI,CAAC,KAAW,EAAQ,OACtB,OAAU,MAAM,gBAAgB,EAAQ,KAAK,iCAAiC;CAGhF,IAAM,CAAC,GAAO,KAAY,EAAS;EACjC,UAAU,EAAS,EAAQ,MAAM,QAAQ;EACzC,OAAO,EAAQ,MAAM;EACtB,CAAC,EAEI,IAAW,GAAU,MAAoB;AAC7C,KAAU,MAAc;AACtB,OAAI,OAAO,GAAG,EAAU,OAAO,EAAS,CAAE,QAAO;GAEjD,IAAM,IAAc,EAAS,EAAS;AAGtC,UAFI,OAAO,GAAG,EAAU,UAAU,EAAY,GAAS,IAEhD;IAAE,OAAO;IAAU,UAAU;IAAa;IACjD;GACF;AASF,QAPA,SACE,EAAQ,UAAU,IAAI,EAAS,QAClB;AACX,IAAQ,UAAU,OAAO,EAAS;KAEnC,CAAC,EAAQ,UAAU,CAAC,EAEhB,EAAM;GAmBF,KACX,IAAkC,KAAA,GAClC,IAAwC,EAAE,KACvC;CACH,IAAM,IAAU,EAA2C;EACzD,OAAO,EAAE,SAAS,GAAuB;EACzC,2BAAW,IAAI,KAAK;EACrB,CAAC,EAEI,IAAW,EAAe,EAAQ,SAAS;AAEjD,GAAQ,cAAc,EAAQ;CAI9B,SAAS,EAA2B,GAA4C;AAC9E,SAAO,EACL,GACA,OAAc,MAAU,IACxB,EACD;;AAGH,QAAO;EAAE,UAAU;EAAS;EAAU;EAAa"}
@@ -1,42 +1,37 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { useSyncExternalStore as d, useEffect as m } from "react";
3
- import { c as a } from "../../_virtual/client.mjs";
4
- const c = (n) => {
5
- const e = document.createElement("div"), t = a.createRoot(e);
6
- return t.render(n), () => {
7
- t.unmount(), e.remove();
8
- };
9
- }, p = (n) => {
10
- if (typeof window > "u") {
11
- const t = (...r) => n(...r);
12
- return t.useShared = t, t;
13
- }
14
- const e = {
15
- state: void 0,
16
- listeners: /* @__PURE__ */ new Set(),
17
- mounted: !1,
18
- unmount: void 0
19
- };
20
- return function(...r) {
21
- return e.mounted || (e.mounted = !0, queueMicrotask(() => {
22
- const o = () => {
23
- const s = n(...r);
24
- return m(() => {
25
- e.state = s, e.listeners.forEach((u) => u());
26
- }, [s]), null;
27
- };
28
- e.unmount = c(/* @__PURE__ */ i(o, {}));
29
- })), d(
30
- (o) => (e.listeners.add(o), () => {
31
- e.listeners.delete(o), e.listeners.size < 0 && e.unmount && (e.unmount(), e.unmount = void 0, e.state = void 0, e.mounted = !1);
32
- }),
33
- () => e.state,
34
- () => e.state
35
- );
36
- };
1
+ import { useEffect as e, useSyncExternalStore as t } from "react";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { createRoot as r } from "react-dom/client";
4
+ //#region src/helpers/createSharedHook/createSharedHook.tsx
5
+ var i = (e) => {
6
+ let t = document.createElement("div"), n = r(t);
7
+ return n.render(e), () => {
8
+ n.unmount(), t.remove();
9
+ };
10
+ }, a = (r) => {
11
+ if (typeof window > "u") {
12
+ let e = (...e) => r(...e);
13
+ return e.useShared = e, e;
14
+ }
15
+ let a = {
16
+ state: void 0,
17
+ listeners: /* @__PURE__ */ new Set(),
18
+ mounted: !1,
19
+ unmount: void 0
20
+ };
21
+ return function(...o) {
22
+ return a.mounted || (a.mounted = !0, queueMicrotask(() => {
23
+ a.unmount = i(/* @__PURE__ */ n(() => {
24
+ let t = r(...o);
25
+ return e(() => {
26
+ a.state = t, a.listeners.forEach((e) => e());
27
+ }, [t]), null;
28
+ }, {}));
29
+ })), t((e) => (a.listeners.add(e), () => {
30
+ a.listeners.delete(e), a.listeners.size < 0 && a.unmount && (a.unmount(), a.unmount = void 0, a.state = void 0, a.mounted = !1);
31
+ }), () => a.state, () => a.state);
32
+ };
37
33
  };
38
- export {
39
- p as createSharedHook,
40
- c as mount
41
- };
42
- //# sourceMappingURL=createSharedHook.mjs.map
34
+ //#endregion
35
+ export { a as createSharedHook, i as mount };
36
+
37
+ //# sourceMappingURL=createSharedHook.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSharedHook.mjs","sources":["../../../../src/helpers/createSharedHook/createSharedHook.tsx"],"sourcesContent":["import { useEffect, useSyncExternalStore } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nexport const mount = (component: React.ReactNode) => {\n const container = document.createElement('div');\n const root = createRoot(container);\n root.render(component);\n return () => {\n root.unmount();\n container.remove();\n };\n};\n\n/**\n * @name createSharedHook\n * @description - One shared instance of the hook globally. First subscriber's args are used; when subscribers hit zero, the runner unmounts.\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @template Hook - The hook to create a shared instance of\n * @param {Hook} useHook - The hook to create a shared instance of\n * @returns {Hook & { useShared: typeof useShared }} - The shared hook\n *\n * @example\n * const useSharedMediaQuery = createSharedHook(useMediaQuery);\n * const matches = useSharedMediaQuery(\"(max-width: 768px)\");\n */\nexport const createSharedHook = <Hook extends (...args: any[]) => any>(useHook: Hook) => {\n if (typeof window === 'undefined') {\n const fn = (...args: Parameters<Hook>) => useHook(...args);\n fn.useShared = fn;\n return fn;\n }\n\n type Value = ReturnType<Hook>;\n const store = {\n state: undefined as Value | undefined,\n listeners: new Set<() => void>(),\n mounted: false,\n unmount: undefined as (() => void) | undefined\n };\n\n return function useShared(...args: Parameters<Hook>): Value {\n if (!store.mounted) {\n store.mounted = true;\n queueMicrotask(() => {\n const HookContainer = () => {\n const value = useHook(...args) as Value;\n useEffect(() => {\n store.state = value;\n store.listeners.forEach((l) => l());\n }, [value]);\n return null;\n };\n\n store.unmount = mount(<HookContainer />);\n });\n }\n\n return useSyncExternalStore(\n (callback) => {\n store.listeners.add(callback);\n return () => {\n store.listeners.delete(callback);\n if (store.listeners.size < 0 && store.unmount) {\n store.unmount();\n store.unmount = undefined;\n store.state = undefined;\n store.mounted = false;\n }\n };\n },\n () => store.state,\n () => store.state\n ) as Value;\n };\n};\n"],"names":["mount","component","container","root","createRoot","createSharedHook","useHook","fn","args","store","HookContainer","value","useEffect","l","jsx","useSyncExternalStore","callback"],"mappings":";;;AAGO,MAAMA,IAAQ,CAACC,MAA+B;AACnD,QAAMC,IAAY,SAAS,cAAc,KAAK,GACxCC,IAAOC,EAAAA,WAAWF,CAAS;AACjC,SAAAC,EAAK,OAAOF,CAAS,GACd,MAAM;AACX,IAAAE,EAAK,QAAA,GACLD,EAAU,OAAA;AAAA,EAAO;AAErB,GAkBaG,IAAmB,CAAuCC,MAAkB;AACvF,MAAI,OAAO,SAAW,KAAa;AACjC,UAAMC,IAAK,IAAIC,MAA2BF,EAAQ,GAAGE,CAAI;AACzD,WAAAD,EAAG,YAAYA,GACRA;AAAA,EAAA;AAIT,QAAME,IAAQ;AAAA,IACZ,OAAO;AAAA,IACP,+BAAe,IAAA;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EAAA;AAGX,SAAO,YAAsBD,GAA+B;AAC1D,WAAKC,EAAM,YACTA,EAAM,UAAU,IAChB,eAAe,MAAM;AACnB,YAAMC,IAAgB,MAAM;AAC1B,cAAMC,IAAQL,EAAQ,GAAGE,CAAI;AAC7B,eAAAI,EAAU,MAAM;AACd,UAAAH,EAAM,QAAQE,GACdF,EAAM,UAAU,QAAQ,CAACI,MAAMA,GAAG;AAAA,QAAA,GACjC,CAACF,CAAK,CAAC,GACH;AAAA,MAAA;AAGT,MAAAF,EAAM,UAAUT,EAAM,gBAAAc,EAACJ,GAAA,CAAA,CAAc,CAAE;AAAA,IAAA,CACxC,IAGIK;AAAA,MACL,CAACC,OACCP,EAAM,UAAU,IAAIO,CAAQ,GACrB,MAAM;AACX,QAAAP,EAAM,UAAU,OAAOO,CAAQ,GAC3BP,EAAM,UAAU,OAAO,KAAKA,EAAM,YACpCA,EAAM,QAAA,GACNA,EAAM,UAAU,QAChBA,EAAM,QAAQ,QACdA,EAAM,UAAU;AAAA,MAClB;AAAA,MAGJ,MAAMA,EAAM;AAAA,MACZ,MAAMA,EAAM;AAAA,IAAA;AAAA,EACd;AAEJ;"}
1
+ {"version":3,"file":"createSharedHook.mjs","names":[],"sources":["../../../../src/helpers/createSharedHook/createSharedHook.tsx"],"sourcesContent":["import { useEffect, useSyncExternalStore } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nexport const mount = (component: React.ReactNode) => {\n const container = document.createElement('div');\n const root = createRoot(container);\n root.render(component);\n return () => {\n root.unmount();\n container.remove();\n };\n};\n\n/**\n * @name createSharedHook\n * @description - One shared instance of the hook globally. First subscriber's args are used; when subscribers hit zero, the runner unmounts.\n * @category Helpers\n * @usage low\n *\n * @warning - For complex interfaces, we strongly recommend using state management solutions outside of React like createStore, reatom, effector, or zustand instead of context\n *\n * @template Hook - The hook to create a shared instance of\n * @param {Hook} useHook - The hook to create a shared instance of\n * @returns {Hook & { useShared: typeof useShared }} - The shared hook\n *\n * @example\n * const useSharedMediaQuery = createSharedHook(useMediaQuery);\n * const matches = useSharedMediaQuery(\"(max-width: 768px)\");\n */\nexport const createSharedHook = <Hook extends (...args: any[]) => any>(useHook: Hook) => {\n if (typeof window === 'undefined') {\n const fn = (...args: Parameters<Hook>) => useHook(...args);\n fn.useShared = fn;\n return fn;\n }\n\n type Value = ReturnType<Hook>;\n const store = {\n state: undefined as Value | undefined,\n listeners: new Set<() => void>(),\n mounted: false,\n unmount: undefined as (() => void) | undefined\n };\n\n return function useShared(...args: Parameters<Hook>): Value {\n if (!store.mounted) {\n store.mounted = true;\n queueMicrotask(() => {\n const HookContainer = () => {\n const value = useHook(...args) as Value;\n useEffect(() => {\n store.state = value;\n store.listeners.forEach((l) => l());\n }, [value]);\n return null;\n };\n\n store.unmount = mount(<HookContainer />);\n });\n }\n\n return useSyncExternalStore(\n (callback) => {\n store.listeners.add(callback);\n return () => {\n store.listeners.delete(callback);\n if (store.listeners.size < 0 && store.unmount) {\n store.unmount();\n store.unmount = undefined;\n store.state = undefined;\n store.mounted = false;\n }\n };\n },\n () => store.state,\n () => store.state\n ) as Value;\n };\n};\n"],"mappings":";;;;AAGA,IAAa,KAAS,MAA+B;CACnD,IAAM,IAAY,SAAS,cAAc,MAAM,EACzC,IAAO,EAAW,EAAU;AAElC,QADA,EAAK,OAAO,EAAU,QACT;AAEX,EADA,EAAK,SAAS,EACd,EAAU,QAAQ;;GAoBT,KAA0D,MAAkB;AACvF,KAAI,OAAO,SAAW,KAAa;EACjC,IAAM,KAAM,GAAG,MAA2B,EAAQ,GAAG,EAAK;AAE1D,SADA,EAAG,YAAY,GACR;;CAIT,IAAM,IAAQ;EACZ,OAAO,KAAA;EACP,2BAAW,IAAI,KAAiB;EAChC,SAAS;EACT,SAAS,KAAA;EACV;AAED,QAAO,SAAmB,GAAG,GAA+B;AAiB1D,SAhBK,EAAM,YACT,EAAM,UAAU,IAChB,qBAAqB;AAUnB,KAAM,UAAU,EAAM,wBATM;IAC1B,IAAM,IAAQ,EAAQ,GAAG,EAAK;AAK9B,WAJA,QAAgB;AAEd,KADA,EAAM,QAAQ,GACd,EAAM,UAAU,SAAS,MAAM,GAAG,CAAC;OAClC,CAAC,EAAM,CAAC,EACJ;MAGa,EAAiB,CAAA,CAAC;IACxC,GAGG,GACJ,OACC,EAAM,UAAU,IAAI,EAAS,QAChB;AAEX,GADA,EAAM,UAAU,OAAO,EAAS,EAC5B,EAAM,UAAU,OAAO,KAAK,EAAM,YACpC,EAAM,SAAS,EACf,EAAM,UAAU,KAAA,GAChB,EAAM,QAAQ,KAAA,GACd,EAAM,UAAU;YAIhB,EAAM,aACN,EAAM,MACb"}