@mantine/hooks 7.13.5-alpha.1 → 7.13.5-alpha.2

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 (433) hide show
  1. package/cjs/index.cjs +164 -0
  2. package/cjs/index.cjs.map +1 -0
  3. package/cjs/use-callback-ref/use-callback-ref.cjs +15 -0
  4. package/cjs/use-callback-ref/use-callback-ref.cjs.map +1 -0
  5. package/cjs/use-click-outside/use-click-outside.cjs +29 -0
  6. package/cjs/use-click-outside/use-click-outside.cjs.map +1 -0
  7. package/cjs/use-clipboard/use-clipboard.cjs +31 -0
  8. package/cjs/use-clipboard/use-clipboard.cjs.map +1 -0
  9. package/cjs/use-color-scheme/use-color-scheme.cjs +11 -0
  10. package/cjs/use-color-scheme/use-color-scheme.cjs.map +1 -0
  11. package/cjs/use-counter/use-counter.cjs +22 -0
  12. package/cjs/use-counter/use-counter.cjs.map +1 -0
  13. package/cjs/use-debounced-callback/use-debounced-callback.cjs +21 -0
  14. package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -0
  15. package/cjs/use-debounced-state/use-debounced-state.cjs +31 -0
  16. package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -0
  17. package/cjs/use-debounced-value/use-debounced-value.cjs +34 -0
  18. package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -0
  19. package/cjs/use-did-update/use-did-update.cjs +24 -0
  20. package/cjs/use-did-update/use-did-update.cjs.map +1 -0
  21. package/cjs/use-disclosure/use-disclosure.cjs +34 -0
  22. package/cjs/use-disclosure/use-disclosure.cjs.map +1 -0
  23. package/cjs/use-document-title/use-document-title.cjs +15 -0
  24. package/cjs/use-document-title/use-document-title.cjs.map +1 -0
  25. package/cjs/use-document-visibility/use-document-visibility.cjs +17 -0
  26. package/cjs/use-document-visibility/use-document-visibility.cjs.map +1 -0
  27. package/cjs/use-event-listener/use-event-listener.cjs +19 -0
  28. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -0
  29. package/cjs/use-eye-dropper/use-eye-dropper.cjs +29 -0
  30. package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -0
  31. package/cjs/use-favicon/use-favicon.cjs +37 -0
  32. package/cjs/use-favicon/use-favicon.cjs.map +1 -0
  33. package/cjs/use-fetch/use-fetch.cjs +51 -0
  34. package/cjs/use-fetch/use-fetch.cjs.map +1 -0
  35. package/cjs/use-focus-return/use-focus-return.cjs +36 -0
  36. package/cjs/use-focus-return/use-focus-return.cjs.map +1 -0
  37. package/cjs/use-focus-trap/create-aria-hider.cjs +45 -0
  38. package/cjs/use-focus-trap/create-aria-hider.cjs.map +1 -0
  39. package/cjs/use-focus-trap/scope-tab.cjs +34 -0
  40. package/cjs/use-focus-trap/scope-tab.cjs.map +1 -0
  41. package/cjs/use-focus-trap/tabbable.cjs +58 -0
  42. package/cjs/use-focus-trap/tabbable.cjs.map +1 -0
  43. package/cjs/use-focus-trap/use-focus-trap.cjs +83 -0
  44. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -0
  45. package/cjs/use-focus-within/use-focus-within.cjs +50 -0
  46. package/cjs/use-focus-within/use-focus-within.cjs.map +1 -0
  47. package/cjs/use-force-update/use-force-update.cjs +13 -0
  48. package/cjs/use-force-update/use-force-update.cjs.map +1 -0
  49. package/cjs/use-fullscreen/use-fullscreen.cjs +99 -0
  50. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -0
  51. package/cjs/use-hash/use-hash.cjs +31 -0
  52. package/cjs/use-hash/use-hash.cjs.map +1 -0
  53. package/cjs/use-headroom/use-headroom.cjs +81 -0
  54. package/cjs/use-headroom/use-headroom.cjs.map +1 -0
  55. package/cjs/use-hotkeys/parse-hotkey.cjs +66 -0
  56. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -0
  57. package/cjs/use-hotkeys/use-hotkeys.cjs +35 -0
  58. package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -0
  59. package/cjs/use-hover/use-hover.cjs +26 -0
  60. package/cjs/use-hover/use-hover.cjs.map +1 -0
  61. package/cjs/use-id/use-id.cjs +25 -0
  62. package/cjs/use-id/use-id.cjs.map +1 -0
  63. package/cjs/use-id/use-react-id.cjs +17 -0
  64. package/cjs/use-id/use-react-id.cjs.map +1 -0
  65. package/cjs/use-idle/use-idle.cjs +43 -0
  66. package/cjs/use-idle/use-idle.cjs.map +1 -0
  67. package/cjs/use-in-viewport/use-in-viewport.cjs +29 -0
  68. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -0
  69. package/cjs/use-input-state/use-input-state.cjs +31 -0
  70. package/cjs/use-input-state/use-input-state.cjs.map +1 -0
  71. package/cjs/use-intersection/use-intersection.cjs +30 -0
  72. package/cjs/use-intersection/use-intersection.cjs.map +1 -0
  73. package/cjs/use-interval/use-interval.cjs +44 -0
  74. package/cjs/use-interval/use-interval.cjs.map +1 -0
  75. package/cjs/use-is-first-render/use-is-first-render.cjs +16 -0
  76. package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -0
  77. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +9 -0
  78. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -0
  79. package/cjs/use-list-state/use-list-state.cjs +76 -0
  80. package/cjs/use-list-state/use-list-state.cjs.map +1 -0
  81. package/cjs/use-local-storage/create-storage.cjs +143 -0
  82. package/cjs/use-local-storage/create-storage.cjs.map +1 -0
  83. package/cjs/use-local-storage/use-local-storage.cjs +13 -0
  84. package/cjs/use-local-storage/use-local-storage.cjs.map +1 -0
  85. package/cjs/use-logger/use-logger.cjs +19 -0
  86. package/cjs/use-logger/use-logger.cjs.map +1 -0
  87. package/cjs/use-map/use-map.cjs +28 -0
  88. package/cjs/use-map/use-map.cjs.map +1 -0
  89. package/cjs/use-media-query/use-media-query.cjs +40 -0
  90. package/cjs/use-media-query/use-media-query.cjs.map +1 -0
  91. package/cjs/use-merged-ref/use-merged-ref.cjs +25 -0
  92. package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -0
  93. package/cjs/use-mounted/use-mounted.cjs +13 -0
  94. package/cjs/use-mounted/use-mounted.cjs.map +1 -0
  95. package/cjs/use-mouse/use-mouse.cjs +43 -0
  96. package/cjs/use-mouse/use-mouse.cjs.map +1 -0
  97. package/cjs/use-move/use-move.cjs +102 -0
  98. package/cjs/use-move/use-move.cjs.map +1 -0
  99. package/cjs/use-mutation-observer/use-mutation-observer.cjs +23 -0
  100. package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -0
  101. package/cjs/use-network/use-network.cjs +51 -0
  102. package/cjs/use-network/use-network.cjs.map +1 -0
  103. package/cjs/use-orientation/use-orientation.cjs +21 -0
  104. package/cjs/use-orientation/use-orientation.cjs.map +1 -0
  105. package/cjs/use-os/use-os.cjs +60 -0
  106. package/cjs/use-os/use-os.cjs.map +1 -0
  107. package/cjs/use-page-leave/use-page-leave.cjs +14 -0
  108. package/cjs/use-page-leave/use-page-leave.cjs.map +1 -0
  109. package/cjs/use-pagination/use-pagination.cjs +78 -0
  110. package/cjs/use-pagination/use-pagination.cjs.map +1 -0
  111. package/cjs/use-previous/use-previous.cjs +15 -0
  112. package/cjs/use-previous/use-previous.cjs.map +1 -0
  113. package/cjs/use-queue/use-queue.cjs +36 -0
  114. package/cjs/use-queue/use-queue.cjs.map +1 -0
  115. package/cjs/use-reduced-motion/use-reduced-motion.cjs +11 -0
  116. package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -0
  117. package/cjs/use-resize-observer/use-resize-observer.cjs +54 -0
  118. package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -0
  119. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +94 -0
  120. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -0
  121. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs +7 -0
  122. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs.map +1 -0
  123. package/cjs/use-scroll-into-view/utils/get-relative-position.cjs +66 -0
  124. package/cjs/use-scroll-into-view/utils/get-relative-position.cjs.map +1 -0
  125. package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs +17 -0
  126. package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs.map +1 -0
  127. package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs +19 -0
  128. package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs.map +1 -0
  129. package/cjs/use-session-storage/use-session-storage.cjs +13 -0
  130. package/cjs/use-session-storage/use-session-storage.cjs.map +1 -0
  131. package/cjs/use-set/use-set.cjs +28 -0
  132. package/cjs/use-set/use-set.cjs.map +1 -0
  133. package/cjs/use-set-state/use-set-state.cjs +19 -0
  134. package/cjs/use-set-state/use-set-state.cjs.map +1 -0
  135. package/cjs/use-shallow-effect/use-shallow-effect.cjs +38 -0
  136. package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -0
  137. package/cjs/use-state-history/use-state-history.cjs +43 -0
  138. package/cjs/use-state-history/use-state-history.cjs.map +1 -0
  139. package/cjs/use-text-selection/use-text-selection.cjs +23 -0
  140. package/cjs/use-text-selection/use-text-selection.cjs.map +1 -0
  141. package/cjs/use-throttled-callback/use-throttled-callback.cjs +54 -0
  142. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -0
  143. package/cjs/use-throttled-state/use-throttled-state.cjs +15 -0
  144. package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -0
  145. package/cjs/use-throttled-value/use-throttled-value.cjs +25 -0
  146. package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -0
  147. package/cjs/use-timeout/use-timeout.cjs +35 -0
  148. package/cjs/use-timeout/use-timeout.cjs.map +1 -0
  149. package/cjs/use-toggle/use-toggle.cjs +16 -0
  150. package/cjs/use-toggle/use-toggle.cjs.map +1 -0
  151. package/cjs/use-uncontrolled/use-uncontrolled.cjs +27 -0
  152. package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -0
  153. package/cjs/use-validated-state/use-validated-state.cjs +27 -0
  154. package/cjs/use-validated-state/use-validated-state.cjs.map +1 -0
  155. package/cjs/use-viewport-size/use-viewport-size.cjs +25 -0
  156. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -0
  157. package/cjs/use-window-event/use-window-event.cjs +14 -0
  158. package/cjs/use-window-event/use-window-event.cjs.map +1 -0
  159. package/cjs/use-window-scroll/use-window-scroll.cjs +33 -0
  160. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -0
  161. package/cjs/utils/clamp/clamp.cjs +18 -0
  162. package/cjs/utils/clamp/clamp.cjs.map +1 -0
  163. package/cjs/utils/lower-first/lower-first.cjs +9 -0
  164. package/cjs/utils/lower-first/lower-first.cjs.map +1 -0
  165. package/cjs/utils/random-id/random-id.cjs +9 -0
  166. package/cjs/utils/random-id/random-id.cjs.map +1 -0
  167. package/cjs/utils/range/range.cjs +14 -0
  168. package/cjs/utils/range/range.cjs.map +1 -0
  169. package/cjs/utils/shallow-equal/shallow-equal.cjs +29 -0
  170. package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -0
  171. package/cjs/utils/upper-first/upper-first.cjs +9 -0
  172. package/cjs/utils/upper-first/upper-first.cjs.map +1 -0
  173. package/esm/index.mjs +77 -0
  174. package/esm/index.mjs.map +1 -0
  175. package/esm/use-callback-ref/use-callback-ref.mjs +13 -0
  176. package/esm/use-callback-ref/use-callback-ref.mjs.map +1 -0
  177. package/esm/use-click-outside/use-click-outside.mjs +27 -0
  178. package/esm/use-click-outside/use-click-outside.mjs.map +1 -0
  179. package/esm/use-clipboard/use-clipboard.mjs +29 -0
  180. package/esm/use-clipboard/use-clipboard.mjs.map +1 -0
  181. package/esm/use-color-scheme/use-color-scheme.mjs +9 -0
  182. package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -0
  183. package/esm/use-counter/use-counter.mjs +20 -0
  184. package/esm/use-counter/use-counter.mjs.map +1 -0
  185. package/esm/use-debounced-callback/use-debounced-callback.mjs +19 -0
  186. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -0
  187. package/esm/use-debounced-state/use-debounced-state.mjs +29 -0
  188. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -0
  189. package/esm/use-debounced-value/use-debounced-value.mjs +32 -0
  190. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -0
  191. package/esm/use-did-update/use-did-update.mjs +22 -0
  192. package/esm/use-did-update/use-did-update.mjs.map +1 -0
  193. package/esm/use-disclosure/use-disclosure.mjs +32 -0
  194. package/esm/use-disclosure/use-disclosure.mjs.map +1 -0
  195. package/esm/use-document-title/use-document-title.mjs +13 -0
  196. package/esm/use-document-title/use-document-title.mjs.map +1 -0
  197. package/esm/use-document-visibility/use-document-visibility.mjs +15 -0
  198. package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -0
  199. package/esm/use-event-listener/use-event-listener.mjs +17 -0
  200. package/esm/use-event-listener/use-event-listener.mjs.map +1 -0
  201. package/esm/use-eye-dropper/use-eye-dropper.mjs +27 -0
  202. package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -0
  203. package/esm/use-favicon/use-favicon.mjs +35 -0
  204. package/esm/use-favicon/use-favicon.mjs.map +1 -0
  205. package/esm/use-fetch/use-fetch.mjs +49 -0
  206. package/esm/use-fetch/use-fetch.mjs.map +1 -0
  207. package/esm/use-focus-return/use-focus-return.mjs +34 -0
  208. package/esm/use-focus-return/use-focus-return.mjs.map +1 -0
  209. package/esm/use-focus-trap/create-aria-hider.mjs +43 -0
  210. package/esm/use-focus-trap/create-aria-hider.mjs.map +1 -0
  211. package/esm/use-focus-trap/scope-tab.mjs +32 -0
  212. package/esm/use-focus-trap/scope-tab.mjs.map +1 -0
  213. package/esm/use-focus-trap/tabbable.mjs +53 -0
  214. package/esm/use-focus-trap/tabbable.mjs.map +1 -0
  215. package/esm/use-focus-trap/use-focus-trap.mjs +81 -0
  216. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -0
  217. package/esm/use-focus-within/use-focus-within.mjs +48 -0
  218. package/esm/use-focus-within/use-focus-within.mjs.map +1 -0
  219. package/esm/use-force-update/use-force-update.mjs +11 -0
  220. package/esm/use-force-update/use-force-update.mjs.map +1 -0
  221. package/esm/use-fullscreen/use-fullscreen.mjs +97 -0
  222. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -0
  223. package/esm/use-hash/use-hash.mjs +29 -0
  224. package/esm/use-hash/use-hash.mjs.map +1 -0
  225. package/esm/use-headroom/use-headroom.mjs +76 -0
  226. package/esm/use-headroom/use-headroom.mjs.map +1 -0
  227. package/esm/use-hotkeys/parse-hotkey.mjs +62 -0
  228. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -0
  229. package/esm/use-hotkeys/use-hotkeys.mjs +33 -0
  230. package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -0
  231. package/esm/use-hover/use-hover.mjs +24 -0
  232. package/esm/use-hover/use-hover.mjs.map +1 -0
  233. package/esm/use-id/use-id.mjs +23 -0
  234. package/esm/use-id/use-id.mjs.map +1 -0
  235. package/esm/use-id/use-react-id.mjs +11 -0
  236. package/esm/use-id/use-react-id.mjs.map +1 -0
  237. package/esm/use-idle/use-idle.mjs +41 -0
  238. package/esm/use-idle/use-idle.mjs.map +1 -0
  239. package/esm/use-in-viewport/use-in-viewport.mjs +27 -0
  240. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -0
  241. package/esm/use-input-state/use-input-state.mjs +28 -0
  242. package/esm/use-input-state/use-input-state.mjs.map +1 -0
  243. package/esm/use-intersection/use-intersection.mjs +28 -0
  244. package/esm/use-intersection/use-intersection.mjs.map +1 -0
  245. package/esm/use-interval/use-interval.mjs +42 -0
  246. package/esm/use-interval/use-interval.mjs.map +1 -0
  247. package/esm/use-is-first-render/use-is-first-render.mjs +14 -0
  248. package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -0
  249. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +7 -0
  250. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -0
  251. package/esm/use-list-state/use-list-state.mjs +74 -0
  252. package/esm/use-list-state/use-list-state.mjs.map +1 -0
  253. package/esm/use-local-storage/create-storage.mjs +140 -0
  254. package/esm/use-local-storage/create-storage.mjs.map +1 -0
  255. package/esm/use-local-storage/use-local-storage.mjs +10 -0
  256. package/esm/use-local-storage/use-local-storage.mjs.map +1 -0
  257. package/esm/use-logger/use-logger.mjs +17 -0
  258. package/esm/use-logger/use-logger.mjs.map +1 -0
  259. package/esm/use-map/use-map.mjs +26 -0
  260. package/esm/use-map/use-map.mjs.map +1 -0
  261. package/esm/use-media-query/use-media-query.mjs +38 -0
  262. package/esm/use-media-query/use-media-query.mjs.map +1 -0
  263. package/esm/use-merged-ref/use-merged-ref.mjs +21 -0
  264. package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -0
  265. package/esm/use-mounted/use-mounted.mjs +11 -0
  266. package/esm/use-mounted/use-mounted.mjs.map +1 -0
  267. package/esm/use-mouse/use-mouse.mjs +41 -0
  268. package/esm/use-mouse/use-mouse.mjs.map +1 -0
  269. package/esm/use-move/use-move.mjs +99 -0
  270. package/esm/use-move/use-move.mjs.map +1 -0
  271. package/esm/use-mutation-observer/use-mutation-observer.mjs +21 -0
  272. package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -0
  273. package/esm/use-network/use-network.mjs +49 -0
  274. package/esm/use-network/use-network.mjs.map +1 -0
  275. package/esm/use-orientation/use-orientation.mjs +19 -0
  276. package/esm/use-orientation/use-orientation.mjs.map +1 -0
  277. package/esm/use-os/use-os.mjs +58 -0
  278. package/esm/use-os/use-os.mjs.map +1 -0
  279. package/esm/use-page-leave/use-page-leave.mjs +12 -0
  280. package/esm/use-page-leave/use-page-leave.mjs.map +1 -0
  281. package/esm/use-pagination/use-pagination.mjs +75 -0
  282. package/esm/use-pagination/use-pagination.mjs.map +1 -0
  283. package/esm/use-previous/use-previous.mjs +13 -0
  284. package/esm/use-previous/use-previous.mjs.map +1 -0
  285. package/esm/use-queue/use-queue.mjs +34 -0
  286. package/esm/use-queue/use-queue.mjs.map +1 -0
  287. package/esm/use-reduced-motion/use-reduced-motion.mjs +9 -0
  288. package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -0
  289. package/esm/use-resize-observer/use-resize-observer.mjs +51 -0
  290. package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -0
  291. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +92 -0
  292. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -0
  293. package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs +5 -0
  294. package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs.map +1 -0
  295. package/esm/use-scroll-into-view/utils/get-relative-position.mjs +64 -0
  296. package/esm/use-scroll-into-view/utils/get-relative-position.mjs.map +1 -0
  297. package/esm/use-scroll-into-view/utils/get-scroll-start.mjs +15 -0
  298. package/esm/use-scroll-into-view/utils/get-scroll-start.mjs.map +1 -0
  299. package/esm/use-scroll-into-view/utils/set-scroll-param.mjs +17 -0
  300. package/esm/use-scroll-into-view/utils/set-scroll-param.mjs.map +1 -0
  301. package/esm/use-session-storage/use-session-storage.mjs +10 -0
  302. package/esm/use-session-storage/use-session-storage.mjs.map +1 -0
  303. package/esm/use-set/use-set.mjs +26 -0
  304. package/esm/use-set/use-set.mjs.map +1 -0
  305. package/esm/use-set-state/use-set-state.mjs +17 -0
  306. package/esm/use-set-state/use-set-state.mjs.map +1 -0
  307. package/esm/use-shallow-effect/use-shallow-effect.mjs +36 -0
  308. package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -0
  309. package/esm/use-state-history/use-state-history.mjs +41 -0
  310. package/esm/use-state-history/use-state-history.mjs.map +1 -0
  311. package/esm/use-text-selection/use-text-selection.mjs +21 -0
  312. package/esm/use-text-selection/use-text-selection.mjs.map +1 -0
  313. package/esm/use-throttled-callback/use-throttled-callback.mjs +51 -0
  314. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -0
  315. package/esm/use-throttled-state/use-throttled-state.mjs +13 -0
  316. package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -0
  317. package/esm/use-throttled-value/use-throttled-value.mjs +23 -0
  318. package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -0
  319. package/esm/use-timeout/use-timeout.mjs +33 -0
  320. package/esm/use-timeout/use-timeout.mjs.map +1 -0
  321. package/esm/use-toggle/use-toggle.mjs +14 -0
  322. package/esm/use-toggle/use-toggle.mjs.map +1 -0
  323. package/esm/use-uncontrolled/use-uncontrolled.mjs +25 -0
  324. package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -0
  325. package/esm/use-validated-state/use-validated-state.mjs +25 -0
  326. package/esm/use-validated-state/use-validated-state.mjs.map +1 -0
  327. package/esm/use-viewport-size/use-viewport-size.mjs +23 -0
  328. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -0
  329. package/esm/use-window-event/use-window-event.mjs +12 -0
  330. package/esm/use-window-event/use-window-event.mjs.map +1 -0
  331. package/esm/use-window-scroll/use-window-scroll.mjs +31 -0
  332. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -0
  333. package/esm/utils/clamp/clamp.mjs +16 -0
  334. package/esm/utils/clamp/clamp.mjs.map +1 -0
  335. package/esm/utils/lower-first/lower-first.mjs +7 -0
  336. package/esm/utils/lower-first/lower-first.mjs.map +1 -0
  337. package/esm/utils/random-id/random-id.mjs +7 -0
  338. package/esm/utils/random-id/random-id.mjs.map +1 -0
  339. package/esm/utils/range/range.mjs +12 -0
  340. package/esm/utils/range/range.mjs.map +1 -0
  341. package/esm/utils/shallow-equal/shallow-equal.mjs +27 -0
  342. package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -0
  343. package/esm/utils/upper-first/upper-first.mjs +7 -0
  344. package/esm/utils/upper-first/upper-first.mjs.map +1 -0
  345. package/lib/index.d.mts +78 -0
  346. package/lib/index.d.ts +78 -0
  347. package/lib/use-callback-ref/use-callback-ref.d.ts +1 -0
  348. package/lib/use-click-outside/use-click-outside.d.ts +1 -0
  349. package/lib/use-clipboard/use-clipboard.d.ts +8 -0
  350. package/lib/use-color-scheme/use-color-scheme.d.ts +2 -0
  351. package/lib/use-counter/use-counter.d.ts +9 -0
  352. package/lib/use-debounced-callback/use-debounced-callback.d.ts +1 -0
  353. package/lib/use-debounced-state/use-debounced-state.d.ts +4 -0
  354. package/lib/use-debounced-value/use-debounced-value.d.ts +3 -0
  355. package/lib/use-did-update/use-did-update.d.ts +2 -0
  356. package/lib/use-disclosure/use-disclosure.d.ts +8 -0
  357. package/lib/use-document-title/use-document-title.d.ts +1 -0
  358. package/lib/use-document-visibility/use-document-visibility.d.ts +1 -0
  359. package/lib/use-event-listener/use-event-listener.d.ts +1 -0
  360. package/lib/use-eye-dropper/use-eye-dropper.d.ts +11 -0
  361. package/lib/use-favicon/use-favicon.d.ts +1 -0
  362. package/lib/use-fetch/use-fetch.d.ts +10 -0
  363. package/lib/use-focus-return/use-focus-return.d.ts +7 -0
  364. package/lib/use-focus-trap/create-aria-hider.d.ts +1 -0
  365. package/lib/use-focus-trap/scope-tab.d.ts +1 -0
  366. package/lib/use-focus-trap/tabbable.d.ts +4 -0
  367. package/lib/use-focus-trap/use-focus-trap.d.ts +1 -0
  368. package/lib/use-focus-within/use-focus-within.d.ts +8 -0
  369. package/lib/use-force-update/use-force-update.d.ts +1 -0
  370. package/lib/use-fullscreen/use-fullscreen.d.ts +5 -0
  371. package/lib/use-hash/use-hash.d.ts +5 -0
  372. package/lib/use-headroom/use-headroom.d.ts +17 -0
  373. package/lib/use-hotkeys/parse-hotkey.d.ts +19 -0
  374. package/lib/use-hotkeys/use-hotkeys.d.ts +5 -0
  375. package/lib/use-hover/use-hover.d.ts +4 -0
  376. package/lib/use-id/use-id.d.ts +1 -0
  377. package/lib/use-id/use-react-id.d.ts +1 -0
  378. package/lib/use-idle/use-idle.d.ts +4 -0
  379. package/lib/use-in-viewport/use-in-viewport.d.ts +4 -0
  380. package/lib/use-input-state/use-input-state.d.ts +2 -0
  381. package/lib/use-intersection/use-intersection.d.ts +4 -0
  382. package/lib/use-interval/use-interval.d.ts +11 -0
  383. package/lib/use-is-first-render/use-is-first-render.d.ts +1 -0
  384. package/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts +2 -0
  385. package/lib/use-list-state/use-list-state.d.ts +24 -0
  386. package/lib/use-local-storage/create-storage.d.ts +15 -0
  387. package/lib/use-local-storage/use-local-storage.d.ts +3 -0
  388. package/lib/use-logger/use-logger.d.ts +1 -0
  389. package/lib/use-map/use-map.d.ts +1 -0
  390. package/lib/use-media-query/use-media-query.d.ts +4 -0
  391. package/lib/use-merged-ref/use-merged-ref.d.ts +6 -0
  392. package/lib/use-mounted/use-mounted.d.ts +1 -0
  393. package/lib/use-mouse/use-mouse.d.ts +7 -0
  394. package/lib/use-move/use-move.d.ts +17 -0
  395. package/lib/use-mutation-observer/use-mutation-observer.d.ts +2 -0
  396. package/lib/use-network/use-network.d.ts +12 -0
  397. package/lib/use-orientation/use-orientation.d.ts +4 -0
  398. package/lib/use-os/use-os.d.ts +6 -0
  399. package/lib/use-page-leave/use-page-leave.d.ts +1 -0
  400. package/lib/use-pagination/use-pagination.d.ts +24 -0
  401. package/lib/use-previous/use-previous.d.ts +1 -0
  402. package/lib/use-queue/use-queue.d.ts +10 -0
  403. package/lib/use-reduced-motion/use-reduced-motion.d.ts +2 -0
  404. package/lib/use-resize-observer/use-resize-observer.d.ts +8 -0
  405. package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +28 -0
  406. package/lib/use-scroll-into-view/utils/ease-in-out-quad.d.ts +1 -0
  407. package/lib/use-scroll-into-view/utils/get-relative-position.d.ts +1 -0
  408. package/lib/use-scroll-into-view/utils/get-scroll-start.d.ts +1 -0
  409. package/lib/use-scroll-into-view/utils/set-scroll-param.d.ts +1 -0
  410. package/lib/use-session-storage/use-session-storage.d.ts +3 -0
  411. package/lib/use-set/use-set.d.ts +1 -0
  412. package/lib/use-set-state/use-set-state.d.ts +1 -0
  413. package/lib/use-shallow-effect/use-shallow-effect.d.ts +1 -0
  414. package/lib/use-state-history/use-state-history.d.ts +11 -0
  415. package/lib/use-text-selection/use-text-selection.d.ts +1 -0
  416. package/lib/use-throttled-callback/use-throttled-callback.d.ts +2 -0
  417. package/lib/use-throttled-state/use-throttled-state.d.ts +1 -0
  418. package/lib/use-throttled-value/use-throttled-value.d.ts +1 -0
  419. package/lib/use-timeout/use-timeout.d.ts +6 -0
  420. package/lib/use-toggle/use-toggle.d.ts +1 -0
  421. package/lib/use-uncontrolled/use-uncontrolled.d.ts +12 -0
  422. package/lib/use-validated-state/use-validated-state.d.ts +5 -0
  423. package/lib/use-viewport-size/use-viewport-size.d.ts +4 -0
  424. package/lib/use-window-event/use-window-event.d.ts +1 -0
  425. package/lib/use-window-scroll/use-window-scroll.d.ts +7 -0
  426. package/lib/utils/clamp/clamp.d.ts +1 -0
  427. package/lib/utils/index.d.ts +6 -0
  428. package/lib/utils/lower-first/lower-first.d.ts +1 -0
  429. package/lib/utils/random-id/random-id.d.ts +1 -0
  430. package/lib/utils/range/range.d.ts +1 -0
  431. package/lib/utils/shallow-equal/shallow-equal.d.ts +1 -0
  432. package/lib/utils/upper-first/upper-first.d.ts +1 -0
  433. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function getFullscreenElement() {
7
+ const _document = window.document;
8
+ const fullscreenElement = _document.fullscreenElement || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement;
9
+ return fullscreenElement;
10
+ }
11
+ function exitFullscreen() {
12
+ const _document = window.document;
13
+ if (typeof _document.exitFullscreen === "function") {
14
+ return _document.exitFullscreen();
15
+ }
16
+ if (typeof _document.msExitFullscreen === "function") {
17
+ return _document.msExitFullscreen();
18
+ }
19
+ if (typeof _document.webkitExitFullscreen === "function") {
20
+ return _document.webkitExitFullscreen();
21
+ }
22
+ if (typeof _document.mozCancelFullScreen === "function") {
23
+ return _document.mozCancelFullScreen();
24
+ }
25
+ return null;
26
+ }
27
+ function enterFullScreen(element) {
28
+ const _element = element;
29
+ return _element.requestFullscreen?.() || _element.msRequestFullscreen?.() || _element.webkitEnterFullscreen?.() || _element.webkitRequestFullscreen?.() || _element.mozRequestFullscreen?.();
30
+ }
31
+ const prefixes = ["", "webkit", "moz", "ms"];
32
+ function addEvents(element, {
33
+ onFullScreen,
34
+ onError
35
+ }) {
36
+ prefixes.forEach((prefix) => {
37
+ element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);
38
+ element.addEventListener(`${prefix}fullscreenerror`, onError);
39
+ });
40
+ return () => {
41
+ prefixes.forEach((prefix) => {
42
+ element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);
43
+ element.removeEventListener(`${prefix}fullscreenerror`, onError);
44
+ });
45
+ };
46
+ }
47
+ function useFullscreen() {
48
+ const [fullscreen, setFullscreen] = React.useState(false);
49
+ const _ref = React.useRef();
50
+ const handleFullscreenChange = React.useCallback(
51
+ (event) => {
52
+ setFullscreen(event.target === getFullscreenElement());
53
+ },
54
+ [setFullscreen]
55
+ );
56
+ const handleFullscreenError = React.useCallback(
57
+ (event) => {
58
+ setFullscreen(false);
59
+ console.error(
60
+ `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`
61
+ );
62
+ },
63
+ [setFullscreen]
64
+ );
65
+ const toggle = React.useCallback(async () => {
66
+ if (!getFullscreenElement()) {
67
+ await enterFullScreen(_ref.current);
68
+ } else {
69
+ await exitFullscreen();
70
+ }
71
+ }, []);
72
+ const ref = React.useCallback((element) => {
73
+ if (element === null) {
74
+ _ref.current = window.document.documentElement;
75
+ } else {
76
+ _ref.current = element;
77
+ }
78
+ }, []);
79
+ React.useEffect(() => {
80
+ if (!_ref.current && window.document) {
81
+ _ref.current = window.document.documentElement;
82
+ return addEvents(_ref.current, {
83
+ onFullScreen: handleFullscreenChange,
84
+ onError: handleFullscreenError
85
+ });
86
+ }
87
+ if (_ref.current) {
88
+ return addEvents(_ref.current, {
89
+ onFullScreen: handleFullscreenChange,
90
+ onError: handleFullscreenError
91
+ });
92
+ }
93
+ return void 0;
94
+ }, [_ref.current]);
95
+ return { ref, toggle, fullscreen };
96
+ }
97
+
98
+ exports.useFullscreen = useFullscreen;
99
+ //# sourceMappingURL=use-fullscreen.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-fullscreen.cjs","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nfunction exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') {\n return _document.exitFullscreen();\n }\n if (typeof _document.msExitFullscreen === 'function') {\n return _document.msExitFullscreen();\n }\n if (typeof _document.webkitExitFullscreen === 'function') {\n return _document.webkitExitFullscreen();\n }\n if (typeof _document.mozCancelFullScreen === 'function') {\n return _document.mozCancelFullScreen();\n }\n\n return null;\n}\n\nfunction enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitEnterFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await enterFullScreen(_ref.current!);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n }, []);\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n if (_ref.current) {\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, [_ref.current]);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":["useState","useRef","useCallback","useEffect"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useWindowEvent = require('../use-window-event/use-window-event.cjs');
6
+
7
+ function useHash({ getInitialValueInEffect = true } = {}) {
8
+ const [hash, setHash] = React.useState(
9
+ getInitialValueInEffect ? "" : window.location.hash || ""
10
+ );
11
+ const setHashHandler = (value) => {
12
+ const valueWithHash = value.startsWith("#") ? value : `#${value}`;
13
+ window.location.hash = valueWithHash;
14
+ setHash(valueWithHash);
15
+ };
16
+ useWindowEvent.useWindowEvent("hashchange", () => {
17
+ const newHash = window.location.hash;
18
+ if (hash !== newHash) {
19
+ setHash(newHash);
20
+ }
21
+ });
22
+ React.useEffect(() => {
23
+ if (getInitialValueInEffect) {
24
+ setHash(window.location.hash);
25
+ }
26
+ }, []);
27
+ return [hash, setHashHandler];
28
+ }
29
+
30
+ exports.useHash = useHash;
31
+ //# sourceMappingURL=use-hash.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hash.cjs","sources":["../../src/use-hash/use-hash.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseHashOptions {\n getInitialValueInEffect?: boolean;\n}\n\nexport function useHash({ getInitialValueInEffect = true }: UseHashOptions = {}) {\n const [hash, setHash] = useState<string>(\n getInitialValueInEffect ? '' : window.location.hash || ''\n );\n\n const setHashHandler = (value: string) => {\n const valueWithHash = value.startsWith('#') ? value : `#${value}`;\n window.location.hash = valueWithHash;\n setHash(valueWithHash);\n };\n\n useWindowEvent('hashchange', () => {\n const newHash = window.location.hash;\n if (hash !== newHash) {\n setHash(newHash);\n }\n });\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setHash(window.location.hash);\n }\n }, []);\n\n return [hash, setHashHandler] as const;\n}\n"],"names":["useState","useWindowEvent","useEffect"],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
6
+ var useWindowScroll = require('../use-window-scroll/use-window-scroll.cjs');
7
+
8
+ const isFixed = (current, fixedAt) => current <= fixedAt;
9
+ const isPinnedOrReleased = (current, fixedAt, isCurrentlyPinnedRef, isScrollingUp, onPin, onRelease) => {
10
+ const isInFixedPosition = isFixed(current, fixedAt);
11
+ if (isInFixedPosition && !isCurrentlyPinnedRef.current) {
12
+ isCurrentlyPinnedRef.current = true;
13
+ onPin?.();
14
+ } else if (!isInFixedPosition && isScrollingUp && !isCurrentlyPinnedRef.current) {
15
+ isCurrentlyPinnedRef.current = true;
16
+ onPin?.();
17
+ } else if (!isInFixedPosition && isCurrentlyPinnedRef.current) {
18
+ isCurrentlyPinnedRef.current = false;
19
+ onRelease?.();
20
+ }
21
+ };
22
+ const useScrollDirection = () => {
23
+ const [lastScrollTop, setLastScrollTop] = React.useState(0);
24
+ const [isScrollingUp, setIsScrollingUp] = React.useState(false);
25
+ const [isResizing, setIsResizing] = React.useState(false);
26
+ React.useEffect(() => {
27
+ let resizeTimer;
28
+ const onResize = () => {
29
+ setIsResizing(true);
30
+ clearTimeout(resizeTimer);
31
+ resizeTimer = setTimeout(() => {
32
+ setIsResizing(false);
33
+ }, 300);
34
+ };
35
+ const onScroll = () => {
36
+ if (isResizing) {
37
+ return;
38
+ }
39
+ const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
40
+ setIsScrollingUp(currentScrollTop < lastScrollTop);
41
+ setLastScrollTop(currentScrollTop);
42
+ };
43
+ window.addEventListener("scroll", onScroll);
44
+ window.addEventListener("resize", onResize);
45
+ return () => {
46
+ window.removeEventListener("scroll", onScroll);
47
+ window.removeEventListener("resize", onResize);
48
+ };
49
+ }, [lastScrollTop, isResizing]);
50
+ return isScrollingUp;
51
+ };
52
+ function useHeadroom({ fixedAt = 0, onPin, onFix, onRelease } = {}) {
53
+ const isCurrentlyPinnedRef = React.useRef(false);
54
+ const isScrollingUp = useScrollDirection();
55
+ const [{ y: scrollPosition }] = useWindowScroll.useWindowScroll();
56
+ useIsomorphicEffect.useIsomorphicEffect(() => {
57
+ isPinnedOrReleased(
58
+ scrollPosition,
59
+ fixedAt,
60
+ isCurrentlyPinnedRef,
61
+ isScrollingUp,
62
+ onPin,
63
+ onRelease
64
+ );
65
+ }, [scrollPosition]);
66
+ useIsomorphicEffect.useIsomorphicEffect(() => {
67
+ if (isFixed(scrollPosition, fixedAt)) {
68
+ onFix?.();
69
+ }
70
+ }, [scrollPosition, fixedAt, onFix]);
71
+ if (isFixed(scrollPosition, fixedAt) || isScrollingUp) {
72
+ return true;
73
+ }
74
+ return false;
75
+ }
76
+
77
+ exports.isFixed = isFixed;
78
+ exports.isPinnedOrReleased = isPinnedOrReleased;
79
+ exports.useHeadroom = useHeadroom;
80
+ exports.useScrollDirection = useScrollDirection;
81
+ //# sourceMappingURL=use-headroom.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-headroom.cjs","sources":["../../src/use-headroom/use-headroom.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\nimport { useWindowScroll } from '../use-window-scroll/use-window-scroll';\n\nexport const isFixed = (current: number, fixedAt: number) => current <= fixedAt;\nexport const isPinned = (current: number, previous: number) => current <= previous;\nexport const isReleased = (current: number, previous: number, fixedAt: number) =>\n !isPinned(current, previous) && !isFixed(current, fixedAt);\n\nexport const isPinnedOrReleased = (\n current: number,\n fixedAt: number,\n isCurrentlyPinnedRef: React.MutableRefObject<boolean>,\n isScrollingUp: boolean,\n onPin?: () => void,\n onRelease?: () => void\n) => {\n const isInFixedPosition = isFixed(current, fixedAt);\n if (isInFixedPosition && !isCurrentlyPinnedRef.current) {\n isCurrentlyPinnedRef.current = true;\n onPin?.();\n } else if (!isInFixedPosition && isScrollingUp && !isCurrentlyPinnedRef.current) {\n isCurrentlyPinnedRef.current = true;\n onPin?.();\n } else if (!isInFixedPosition && isCurrentlyPinnedRef.current) {\n isCurrentlyPinnedRef.current = false;\n onRelease?.();\n }\n};\n\nexport const useScrollDirection = () => {\n const [lastScrollTop, setLastScrollTop] = useState(0);\n const [isScrollingUp, setIsScrollingUp] = useState(false);\n const [isResizing, setIsResizing] = useState(false);\n\n useEffect(() => {\n let resizeTimer: NodeJS.Timeout | undefined;\n\n const onResize = () => {\n setIsResizing(true);\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(() => {\n setIsResizing(false);\n }, 300); // Reset the resizing flag after a timeout\n };\n\n const onScroll = () => {\n if (isResizing) {\n return; // Skip scroll events if resizing is in progress\n }\n const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;\n setIsScrollingUp(currentScrollTop < lastScrollTop);\n setLastScrollTop(currentScrollTop);\n };\n\n window.addEventListener('scroll', onScroll);\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n };\n }, [lastScrollTop, isResizing]);\n\n return isScrollingUp;\n};\n\ninterface UseHeadroomInput {\n /** Number in px at which element should be fixed */\n fixedAt?: number;\n\n /** Called when element is pinned */\n onPin?: () => void;\n\n /** Called when element is at fixed position */\n onFix?: () => void;\n\n /** Called when element is unpinned */\n onRelease?: () => void;\n}\n\nexport function useHeadroom({ fixedAt = 0, onPin, onFix, onRelease }: UseHeadroomInput = {}) {\n const isCurrentlyPinnedRef = useRef(false);\n const isScrollingUp = useScrollDirection();\n const [{ y: scrollPosition }] = useWindowScroll();\n\n useIsomorphicEffect(() => {\n isPinnedOrReleased(\n scrollPosition,\n fixedAt,\n isCurrentlyPinnedRef,\n isScrollingUp,\n onPin,\n onRelease\n );\n }, [scrollPosition]);\n\n useIsomorphicEffect(() => {\n if (isFixed(scrollPosition, fixedAt)) {\n onFix?.();\n }\n }, [scrollPosition, fixedAt, onFix]);\n\n if (isFixed(scrollPosition, fixedAt) || isScrollingUp) {\n return true;\n }\n\n return false;\n}\n"],"names":["useState","useEffect","useRef","useWindowScroll","useIsomorphicEffect"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ function parseHotkey(hotkey) {
5
+ const keys = hotkey.toLowerCase().split("+").map((part) => part.trim());
6
+ const modifiers = {
7
+ alt: keys.includes("alt"),
8
+ ctrl: keys.includes("ctrl"),
9
+ meta: keys.includes("meta"),
10
+ mod: keys.includes("mod"),
11
+ shift: keys.includes("shift")
12
+ };
13
+ const reservedKeys = ["alt", "ctrl", "meta", "shift", "mod"];
14
+ const freeKey = keys.find((key) => !reservedKeys.includes(key));
15
+ return {
16
+ ...modifiers,
17
+ key: freeKey
18
+ };
19
+ }
20
+ function isExactHotkey(hotkey, event) {
21
+ const { alt, ctrl, meta, mod, shift, key } = hotkey;
22
+ const { altKey, ctrlKey, metaKey, shiftKey, key: pressedKey } = event;
23
+ if (alt !== altKey) {
24
+ return false;
25
+ }
26
+ if (mod) {
27
+ if (!ctrlKey && !metaKey) {
28
+ return false;
29
+ }
30
+ } else {
31
+ if (ctrl !== ctrlKey) {
32
+ return false;
33
+ }
34
+ if (meta !== metaKey) {
35
+ return false;
36
+ }
37
+ }
38
+ if (shift !== shiftKey) {
39
+ return false;
40
+ }
41
+ if (key && (pressedKey.toLowerCase() === key.toLowerCase() || event.code.replace("Key", "").toLowerCase() === key.toLowerCase())) {
42
+ return true;
43
+ }
44
+ return false;
45
+ }
46
+ function getHotkeyMatcher(hotkey) {
47
+ return (event) => isExactHotkey(parseHotkey(hotkey), event);
48
+ }
49
+ function getHotkeyHandler(hotkeys) {
50
+ return (event) => {
51
+ const _event = "nativeEvent" in event ? event.nativeEvent : event;
52
+ hotkeys.forEach(([hotkey, handler, options = { preventDefault: true }]) => {
53
+ if (getHotkeyMatcher(hotkey)(_event)) {
54
+ if (options.preventDefault) {
55
+ event.preventDefault();
56
+ }
57
+ handler(_event);
58
+ }
59
+ });
60
+ };
61
+ }
62
+
63
+ exports.getHotkeyHandler = getHotkeyHandler;
64
+ exports.getHotkeyMatcher = getHotkeyMatcher;
65
+ exports.parseHotkey = parseHotkey;
66
+ //# sourceMappingURL=parse-hotkey.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-hotkey.cjs","sources":["../../src/use-hotkeys/parse-hotkey.ts"],"sourcesContent":["export type KeyboardModifiers = {\n alt: boolean;\n ctrl: boolean;\n meta: boolean;\n mod: boolean;\n shift: boolean;\n};\n\nexport type Hotkey = KeyboardModifiers & {\n key?: string;\n};\n\ntype CheckHotkeyMatch = (event: KeyboardEvent) => boolean;\n\nexport function parseHotkey(hotkey: string): Hotkey {\n const keys = hotkey\n .toLowerCase()\n .split('+')\n .map((part) => part.trim());\n\n const modifiers: KeyboardModifiers = {\n alt: keys.includes('alt'),\n ctrl: keys.includes('ctrl'),\n meta: keys.includes('meta'),\n mod: keys.includes('mod'),\n shift: keys.includes('shift'),\n };\n\n const reservedKeys = ['alt', 'ctrl', 'meta', 'shift', 'mod'];\n\n const freeKey = keys.find((key) => !reservedKeys.includes(key));\n\n return {\n ...modifiers,\n key: freeKey,\n };\n}\n\nfunction isExactHotkey(hotkey: Hotkey, event: KeyboardEvent): boolean {\n const { alt, ctrl, meta, mod, shift, key } = hotkey;\n const { altKey, ctrlKey, metaKey, shiftKey, key: pressedKey } = event;\n\n if (alt !== altKey) {\n return false;\n }\n\n if (mod) {\n if (!ctrlKey && !metaKey) {\n return false;\n }\n } else {\n if (ctrl !== ctrlKey) {\n return false;\n }\n if (meta !== metaKey) {\n return false;\n }\n }\n if (shift !== shiftKey) {\n return false;\n }\n\n if (\n key &&\n (pressedKey.toLowerCase() === key.toLowerCase() ||\n event.code.replace('Key', '').toLowerCase() === key.toLowerCase())\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function getHotkeyMatcher(hotkey: string): CheckHotkeyMatch {\n return (event) => isExactHotkey(parseHotkey(hotkey), event);\n}\n\nexport interface HotkeyItemOptions {\n preventDefault?: boolean;\n}\n\ntype HotkeyItem = [string, (event: any) => void, HotkeyItemOptions?];\n\nexport function getHotkeyHandler(hotkeys: HotkeyItem[]) {\n return (event: React.KeyboardEvent<HTMLElement> | KeyboardEvent) => {\n const _event = 'nativeEvent' in event ? event.nativeEvent : event;\n hotkeys.forEach(([hotkey, handler, options = { preventDefault: true }]) => {\n if (getHotkeyMatcher(hotkey)(_event)) {\n if (options.preventDefault) {\n event.preventDefault();\n }\n\n handler(_event);\n }\n });\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var parseHotkey = require('./parse-hotkey.cjs');
6
+
7
+ function shouldFireEvent(event, tagsToIgnore, triggerOnContentEditable = false) {
8
+ if (event.target instanceof HTMLElement) {
9
+ if (triggerOnContentEditable) {
10
+ return !tagsToIgnore.includes(event.target.tagName);
11
+ }
12
+ return !event.target.isContentEditable && !tagsToIgnore.includes(event.target.tagName);
13
+ }
14
+ return true;
15
+ }
16
+ function useHotkeys(hotkeys, tagsToIgnore = ["INPUT", "TEXTAREA", "SELECT"], triggerOnContentEditable = false) {
17
+ React.useEffect(() => {
18
+ const keydownListener = (event) => {
19
+ hotkeys.forEach(([hotkey, handler, options = { preventDefault: true }]) => {
20
+ if (parseHotkey.getHotkeyMatcher(hotkey)(event) && shouldFireEvent(event, tagsToIgnore, triggerOnContentEditable)) {
21
+ if (options.preventDefault) {
22
+ event.preventDefault();
23
+ }
24
+ handler(event);
25
+ }
26
+ });
27
+ };
28
+ document.documentElement.addEventListener("keydown", keydownListener);
29
+ return () => document.documentElement.removeEventListener("keydown", keydownListener);
30
+ }, [hotkeys]);
31
+ }
32
+
33
+ exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
34
+ exports.useHotkeys = useHotkeys;
35
+ //# sourceMappingURL=use-hotkeys.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hotkeys.cjs","sources":["../../src/use-hotkeys/use-hotkeys.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { getHotkeyHandler, getHotkeyMatcher, HotkeyItemOptions } from './parse-hotkey';\n\nexport type { HotkeyItemOptions };\nexport { getHotkeyHandler };\n\nexport type HotkeyItem = [string, (event: KeyboardEvent) => void, HotkeyItemOptions?];\n\nfunction shouldFireEvent(\n event: KeyboardEvent,\n tagsToIgnore: string[],\n triggerOnContentEditable = false\n) {\n if (event.target instanceof HTMLElement) {\n if (triggerOnContentEditable) {\n return !tagsToIgnore.includes(event.target.tagName);\n }\n\n return !event.target.isContentEditable && !tagsToIgnore.includes(event.target.tagName);\n }\n\n return true;\n}\n\nexport function useHotkeys(\n hotkeys: HotkeyItem[],\n tagsToIgnore: string[] = ['INPUT', 'TEXTAREA', 'SELECT'],\n triggerOnContentEditable = false\n) {\n useEffect(() => {\n const keydownListener = (event: KeyboardEvent) => {\n hotkeys.forEach(([hotkey, handler, options = { preventDefault: true }]) => {\n if (\n getHotkeyMatcher(hotkey)(event) &&\n shouldFireEvent(event, tagsToIgnore, triggerOnContentEditable)\n ) {\n if (options.preventDefault) {\n event.preventDefault();\n }\n\n handler(event);\n }\n });\n };\n\n document.documentElement.addEventListener('keydown', keydownListener);\n return () => document.documentElement.removeEventListener('keydown', keydownListener);\n }, [hotkeys]);\n}\n"],"names":["useEffect","getHotkeyMatcher"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useHover() {
7
+ const [hovered, setHovered] = React.useState(false);
8
+ const ref = React.useRef(null);
9
+ const onMouseEnter = React.useCallback(() => setHovered(true), []);
10
+ const onMouseLeave = React.useCallback(() => setHovered(false), []);
11
+ React.useEffect(() => {
12
+ if (ref.current) {
13
+ ref.current.addEventListener("mouseenter", onMouseEnter);
14
+ ref.current.addEventListener("mouseleave", onMouseLeave);
15
+ return () => {
16
+ ref.current?.removeEventListener("mouseenter", onMouseEnter);
17
+ ref.current?.removeEventListener("mouseleave", onMouseLeave);
18
+ };
19
+ }
20
+ return void 0;
21
+ }, [ref.current]);
22
+ return { ref, hovered };
23
+ }
24
+
25
+ exports.useHover = useHover;
26
+ //# sourceMappingURL=use-hover.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hover.cjs","sources":["../../src/use-hover/use-hover.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useHover<T extends HTMLElement = HTMLDivElement>() {\n const [hovered, setHovered] = useState(false);\n const ref = useRef<T>(null);\n const onMouseEnter = useCallback(() => setHovered(true), []);\n const onMouseLeave = useCallback(() => setHovered(false), []);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.addEventListener('mouseenter', onMouseEnter);\n ref.current.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n ref.current?.removeEventListener('mouseenter', onMouseEnter);\n ref.current?.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n\n return undefined;\n }, [ref.current]);\n\n return { ref, hovered };\n}\n"],"names":["useState","useRef","useCallback","useEffect"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
6
+ var randomId = require('../utils/random-id/random-id.cjs');
7
+ var useReactId = require('./use-react-id.cjs');
8
+
9
+ function useId(staticId) {
10
+ const reactId = useReactId.useReactId();
11
+ const [uuid, setUuid] = React.useState(reactId);
12
+ useIsomorphicEffect.useIsomorphicEffect(() => {
13
+ setUuid(randomId.randomId());
14
+ }, []);
15
+ if (typeof staticId === "string") {
16
+ return staticId;
17
+ }
18
+ if (typeof window === "undefined") {
19
+ return reactId;
20
+ }
21
+ return uuid;
22
+ }
23
+
24
+ exports.useId = useId;
25
+ //# sourceMappingURL=use-id.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-id.cjs","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\nimport { randomId } from '../utils';\nimport { useReactId } from './use-react-id';\n\nexport function useId(staticId?: string) {\n const reactId = useReactId();\n const [uuid, setUuid] = useState(reactId);\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n if (typeof staticId === 'string') {\n return staticId;\n }\n\n if (typeof window === 'undefined') {\n return reactId;\n }\n\n return uuid;\n}\n"],"names":["useReactId","useState","useIsomorphicEffect","randomId"],"mappings":";;;;;;;;AAKO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA;AAChC,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAE,CAAA,CAAA;AAC9B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA;AAC3C,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA;AACvB,CAAG,CAAA,CAAA,CAAA,CAAE,EAAE,CAAC,CAAA;AACR,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAE,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAI,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAI,OAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,OAAO,CAAI,CAAA,CAAA,CAAA,CAAA;AACb,CAAA;;"}
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefault(React);
9
+
10
+ const __useId = React__default.default["useId".toString()] || (() => void 0);
11
+ function useReactId() {
12
+ const id = __useId();
13
+ return id ? `mantine-${id.replace(/:/g, "")}` : "";
14
+ }
15
+
16
+ exports.useReactId = useReactId;
17
+ //# sourceMappingURL=use-react-id.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-react-id.cjs","sources":["../../src/use-id/use-react-id.ts"],"sourcesContent":["import React from 'react';\n\nconst __useId: () => string | undefined = (React as any)['useId'.toString()] || (() => undefined);\n\nexport function useReactId() {\n const id = __useId();\n return id ? `mantine-${id.replace(/:/g, '')}` : '';\n}\n"],"names":["React"],"mappings":";;;;;;;;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAU,CAAG,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA;AACtB,CAAA,CAAE,OAAO,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAE,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAE,CAAA,CAAA,CAAE,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA,CAAA;AACpD,CAAA;;"}
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ const DEFAULT_EVENTS = [
7
+ "keypress",
8
+ "mousemove",
9
+ "touchmove",
10
+ "click",
11
+ "scroll"
12
+ ];
13
+ const DEFAULT_OPTIONS = {
14
+ events: DEFAULT_EVENTS,
15
+ initialState: true
16
+ };
17
+ function useIdle(timeout, options) {
18
+ const { events, initialState } = { ...DEFAULT_OPTIONS, ...options };
19
+ const [idle, setIdle] = React.useState(initialState);
20
+ const timer = React.useRef();
21
+ React.useEffect(() => {
22
+ const handleEvents = () => {
23
+ setIdle(false);
24
+ if (timer.current) {
25
+ window.clearTimeout(timer.current);
26
+ }
27
+ timer.current = window.setTimeout(() => {
28
+ setIdle(true);
29
+ }, timeout);
30
+ };
31
+ events.forEach((event) => document.addEventListener(event, handleEvents));
32
+ timer.current = window.setTimeout(() => {
33
+ setIdle(true);
34
+ }, timeout);
35
+ return () => {
36
+ events.forEach((event) => document.removeEventListener(event, handleEvents));
37
+ };
38
+ }, [timeout]);
39
+ return idle;
40
+ }
41
+
42
+ exports.useIdle = useIdle;
43
+ //# sourceMappingURL=use-idle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-idle.cjs","sources":["../../src/use-idle/use-idle.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst DEFAULT_EVENTS: (keyof DocumentEventMap)[] = [\n 'keypress',\n 'mousemove',\n 'touchmove',\n 'click',\n 'scroll',\n];\nconst DEFAULT_OPTIONS = {\n events: DEFAULT_EVENTS,\n initialState: true,\n};\n\nexport function useIdle(\n timeout: number,\n options?: Partial<{ events: (keyof DocumentEventMap)[]; initialState: boolean }>\n) {\n const { events, initialState } = { ...DEFAULT_OPTIONS, ...options };\n const [idle, setIdle] = useState<boolean>(initialState);\n const timer = useRef<number>();\n\n useEffect(() => {\n const handleEvents = () => {\n setIdle(false);\n\n if (timer.current) {\n window.clearTimeout(timer.current);\n }\n\n timer.current = window.setTimeout(() => {\n setIdle(true);\n }, timeout);\n };\n\n events.forEach((event) => document.addEventListener(event, handleEvents));\n\n // Start the timer immediately instead of waiting for the first event to happen\n timer.current = window.setTimeout(() => {\n setIdle(true);\n }, timeout);\n\n return () => {\n events.forEach((event) => document.removeEventListener(event, handleEvents));\n };\n }, [timeout]);\n\n return idle;\n}\n"],"names":["useState","useRef","useEffect"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useInViewport() {
7
+ const observer = React.useRef(null);
8
+ const [inViewport, setInViewport] = React.useState(false);
9
+ const ref = React.useCallback((node) => {
10
+ if (typeof IntersectionObserver !== "undefined") {
11
+ if (node && !observer.current) {
12
+ observer.current = new IntersectionObserver(
13
+ ([entry]) => setInViewport(entry.isIntersecting)
14
+ );
15
+ } else {
16
+ observer.current?.disconnect();
17
+ }
18
+ if (node) {
19
+ observer.current?.observe(node);
20
+ } else {
21
+ setInViewport(false);
22
+ }
23
+ }
24
+ }, []);
25
+ return { ref, inViewport };
26
+ }
27
+
28
+ exports.useInViewport = useInViewport;
29
+ //# sourceMappingURL=use-in-viewport.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-in-viewport.cjs","sources":["../../src/use-in-viewport/use-in-viewport.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport function useInViewport<T extends HTMLElement>() {\n const observer = useRef<IntersectionObserver | null>(null);\n const [inViewport, setInViewport] = useState(false);\n\n const ref = useCallback((node: T | null) => {\n if (typeof IntersectionObserver !== 'undefined') {\n if (node && !observer.current) {\n observer.current = new IntersectionObserver(([entry]) =>\n setInViewport(entry.isIntersecting)\n );\n } else {\n observer.current?.disconnect();\n }\n\n if (node) {\n observer.current?.observe(node);\n } else {\n setInViewport(false);\n }\n }\n }, []);\n\n return { ref, inViewport };\n}\n"],"names":["useRef","useState","useCallback"],"mappings":"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"}