@mantine/hooks 9.0.0-alpha.5 → 9.0.0-alpha.7

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 (378) hide show
  1. package/cjs/index.cjs +183 -188
  2. package/cjs/use-click-outside/use-click-outside.cjs +22 -26
  3. package/cjs/use-click-outside/use-click-outside.cjs.map +1 -1
  4. package/cjs/use-clipboard/use-clipboard.cjs +29 -28
  5. package/cjs/use-clipboard/use-clipboard.cjs.map +1 -1
  6. package/cjs/use-collapse/use-collapse.cjs +95 -98
  7. package/cjs/use-collapse/use-collapse.cjs.map +1 -1
  8. package/cjs/use-collapse/use-horizontal-collapse.cjs +94 -97
  9. package/cjs/use-collapse/use-horizontal-collapse.cjs.map +1 -1
  10. package/cjs/use-color-scheme/use-color-scheme.cjs +7 -8
  11. package/cjs/use-color-scheme/use-color-scheme.cjs.map +1 -1
  12. package/cjs/use-counter/use-counter.cjs +24 -26
  13. package/cjs/use-counter/use-counter.cjs.map +1 -1
  14. package/cjs/use-debounced-callback/use-debounced-callback.cjs +89 -93
  15. package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -1
  16. package/cjs/use-debounced-state/use-debounced-state.cjs +20 -28
  17. package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -1
  18. package/cjs/use-debounced-value/use-debounced-value.cjs +32 -31
  19. package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -1
  20. package/cjs/use-did-update/use-did-update.cjs +14 -21
  21. package/cjs/use-did-update/use-did-update.cjs.map +1 -1
  22. package/cjs/use-disclosure/use-disclosure.cjs +37 -30
  23. package/cjs/use-disclosure/use-disclosure.cjs.map +1 -1
  24. package/cjs/use-document-title/use-document-title.cjs +9 -12
  25. package/cjs/use-document-title/use-document-title.cjs.map +1 -1
  26. package/cjs/use-document-visibility/use-document-visibility.cjs +14 -15
  27. package/cjs/use-document-visibility/use-document-visibility.cjs.map +1 -1
  28. package/cjs/use-event-listener/use-event-listener.cjs +23 -32
  29. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -1
  30. package/cjs/use-eye-dropper/use-eye-dropper.cjs +19 -24
  31. package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -1
  32. package/cjs/use-favicon/use-favicon.cjs +25 -32
  33. package/cjs/use-favicon/use-favicon.cjs.map +1 -1
  34. package/cjs/use-fetch/use-fetch.cjs +43 -45
  35. package/cjs/use-fetch/use-fetch.cjs.map +1 -1
  36. package/cjs/use-file-dialog/use-file-dialog.cjs +65 -77
  37. package/cjs/use-file-dialog/use-file-dialog.cjs.map +1 -1
  38. package/cjs/use-floating-window/use-floating-window.cjs +244 -255
  39. package/cjs/use-floating-window/use-floating-window.cjs.map +1 -1
  40. package/cjs/use-focus-return/use-focus-return.cjs +26 -37
  41. package/cjs/use-focus-return/use-focus-return.cjs.map +1 -1
  42. package/cjs/use-focus-trap/scope-tab.cjs +20 -31
  43. package/cjs/use-focus-trap/scope-tab.cjs.map +1 -1
  44. package/cjs/use-focus-trap/tabbable.cjs +24 -40
  45. package/cjs/use-focus-trap/tabbable.cjs.map +1 -1
  46. package/cjs/use-focus-trap/use-focus-trap.cjs +41 -68
  47. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -1
  48. package/cjs/use-focus-within/use-focus-within.cjs +51 -62
  49. package/cjs/use-focus-within/use-focus-within.cjs.map +1 -1
  50. package/cjs/use-force-update/use-force-update.cjs +8 -9
  51. package/cjs/use-force-update/use-force-update.cjs.map +1 -1
  52. package/cjs/use-fullscreen/use-fullscreen.cjs +80 -89
  53. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -1
  54. package/cjs/use-hash/use-hash.cjs +21 -28
  55. package/cjs/use-hash/use-hash.cjs.map +1 -1
  56. package/cjs/use-headroom/use-headroom.cjs +71 -94
  57. package/cjs/use-headroom/use-headroom.cjs.map +1 -1
  58. package/cjs/use-hotkeys/parse-hotkey.cjs +74 -82
  59. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -1
  60. package/cjs/use-hotkeys/use-hotkeys.cjs +32 -33
  61. package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -1
  62. package/cjs/use-hover/use-hover.cjs +31 -33
  63. package/cjs/use-hover/use-hover.cjs.map +1 -1
  64. package/cjs/use-id/use-id.cjs +14 -18
  65. package/cjs/use-id/use-id.cjs.map +1 -1
  66. package/cjs/use-idle/use-idle.cjs +40 -33
  67. package/cjs/use-idle/use-idle.cjs.map +1 -1
  68. package/cjs/use-in-viewport/use-in-viewport.cjs +22 -27
  69. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -1
  70. package/cjs/use-input-state/use-input-state.cjs +17 -26
  71. package/cjs/use-input-state/use-input-state.cjs.map +1 -1
  72. package/cjs/use-intersection/use-intersection.cjs +29 -27
  73. package/cjs/use-intersection/use-intersection.cjs.map +1 -1
  74. package/cjs/use-interval/use-interval.cjs +42 -41
  75. package/cjs/use-interval/use-interval.cjs.map +1 -1
  76. package/cjs/use-is-first-render/use-is-first-render.cjs +12 -13
  77. package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -1
  78. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +6 -7
  79. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -1
  80. package/cjs/use-list-state/use-list-state.cjs +74 -73
  81. package/cjs/use-list-state/use-list-state.cjs.map +1 -1
  82. package/cjs/use-local-storage/create-storage.cjs +127 -139
  83. package/cjs/use-local-storage/create-storage.cjs.map +1 -1
  84. package/cjs/use-local-storage/use-local-storage.cjs +8 -9
  85. package/cjs/use-local-storage/use-local-storage.cjs.map +1 -1
  86. package/cjs/use-logger/use-logger.cjs +15 -16
  87. package/cjs/use-logger/use-logger.cjs.map +1 -1
  88. package/cjs/use-long-press/use-long-press.cjs +49 -58
  89. package/cjs/use-long-press/use-long-press.cjs.map +1 -1
  90. package/cjs/use-map/use-map.cjs +24 -25
  91. package/cjs/use-map/use-map.cjs.map +1 -1
  92. package/cjs/use-media-query/use-media-query.cjs +27 -33
  93. package/cjs/use-media-query/use-media-query.cjs.map +1 -1
  94. package/cjs/use-merged-ref/use-merged-ref.cjs +24 -35
  95. package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -1
  96. package/cjs/use-mounted/use-mounted.cjs +9 -10
  97. package/cjs/use-mounted/use-mounted.cjs.map +1 -1
  98. package/cjs/use-mouse/use-mouse.cjs +55 -53
  99. package/cjs/use-mouse/use-mouse.cjs.map +1 -1
  100. package/cjs/use-move/use-move.cjs +98 -98
  101. package/cjs/use-move/use-move.cjs.map +1 -1
  102. package/cjs/use-mutation-observer/use-mutation-observer.cjs +45 -46
  103. package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -1
  104. package/cjs/use-network/use-network.cjs +48 -44
  105. package/cjs/use-network/use-network.cjs.map +1 -1
  106. package/cjs/use-orientation/use-orientation.cjs +30 -41
  107. package/cjs/use-orientation/use-orientation.cjs.map +1 -1
  108. package/cjs/use-os/use-os.cjs +27 -52
  109. package/cjs/use-os/use-os.cjs.map +1 -1
  110. package/cjs/use-page-leave/use-page-leave.cjs +11 -12
  111. package/cjs/use-page-leave/use-page-leave.cjs.map +1 -1
  112. package/cjs/use-pagination/use-pagination.cjs +75 -88
  113. package/cjs/use-pagination/use-pagination.cjs.map +1 -1
  114. package/cjs/use-previous/use-previous.cjs +11 -12
  115. package/cjs/use-previous/use-previous.cjs.map +1 -1
  116. package/cjs/use-queue/use-queue.cjs +40 -37
  117. package/cjs/use-queue/use-queue.cjs.map +1 -1
  118. package/cjs/use-radial-move/use-radial-move.cjs +87 -94
  119. package/cjs/use-radial-move/use-radial-move.cjs.map +1 -1
  120. package/cjs/use-reduced-motion/use-reduced-motion.cjs +7 -8
  121. package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -1
  122. package/cjs/use-resize-observer/use-resize-observer.cjs +55 -62
  123. package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -1
  124. package/cjs/use-scroll-direction/use-scroll-direction.cjs +33 -36
  125. package/cjs/use-scroll-direction/use-scroll-direction.cjs.map +1 -1
  126. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +128 -160
  127. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -1
  128. package/cjs/use-scroll-spy/use-scroll-spy.cjs +58 -84
  129. package/cjs/use-scroll-spy/use-scroll-spy.cjs.map +1 -1
  130. package/cjs/use-scroller/use-scroller.cjs +128 -151
  131. package/cjs/use-scroller/use-scroller.cjs.map +1 -1
  132. package/cjs/use-selection/use-selection.cjs +61 -72
  133. package/cjs/use-selection/use-selection.cjs.map +1 -1
  134. package/cjs/use-session-storage/use-session-storage.cjs +8 -9
  135. package/cjs/use-session-storage/use-session-storage.cjs.map +1 -1
  136. package/cjs/use-set/use-set.cjs +60 -74
  137. package/cjs/use-set/use-set.cjs.map +1 -1
  138. package/cjs/use-set-state/use-set-state.cjs +11 -16
  139. package/cjs/use-set-state/use-set-state.cjs.map +1 -1
  140. package/cjs/use-shallow-effect/use-shallow-effect.cjs +20 -31
  141. package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -1
  142. package/cjs/use-state-history/use-state-history.cjs +47 -40
  143. package/cjs/use-state-history/use-state-history.cjs.map +1 -1
  144. package/cjs/use-text-selection/use-text-selection.cjs +19 -20
  145. package/cjs/use-text-selection/use-text-selection.cjs.map +1 -1
  146. package/cjs/use-throttled-callback/use-throttled-callback.cjs +37 -48
  147. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -1
  148. package/cjs/use-throttled-state/use-throttled-state.cjs +11 -12
  149. package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -1
  150. package/cjs/use-throttled-value/use-throttled-value.cjs +18 -22
  151. package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -1
  152. package/cjs/use-timeout/use-timeout.cjs +27 -32
  153. package/cjs/use-timeout/use-timeout.cjs.map +1 -1
  154. package/cjs/use-toggle/use-toggle.cjs +12 -13
  155. package/cjs/use-toggle/use-toggle.cjs.map +1 -1
  156. package/cjs/use-uncontrolled/use-uncontrolled.cjs +22 -25
  157. package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -1
  158. package/cjs/use-validated-state/use-validated-state.cjs +21 -24
  159. package/cjs/use-validated-state/use-validated-state.cjs.map +1 -1
  160. package/cjs/use-viewport-size/use-viewport-size.cjs +22 -22
  161. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -1
  162. package/cjs/use-window-event/use-window-event.cjs +11 -12
  163. package/cjs/use-window-event/use-window-event.cjs.map +1 -1
  164. package/cjs/use-window-scroll/use-window-scroll.cjs +30 -26
  165. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -1
  166. package/cjs/utils/clamp/clamp.cjs +9 -15
  167. package/cjs/utils/clamp/clamp.cjs.map +1 -1
  168. package/cjs/utils/lower-first/lower-first.cjs +6 -6
  169. package/cjs/utils/lower-first/lower-first.cjs.map +1 -1
  170. package/cjs/utils/random-id/random-id.cjs +6 -6
  171. package/cjs/utils/random-id/random-id.cjs.map +1 -1
  172. package/cjs/utils/range/range.cjs +8 -11
  173. package/cjs/utils/range/range.cjs.map +1 -1
  174. package/cjs/utils/shallow-equal/shallow-equal.cjs +17 -29
  175. package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -1
  176. package/cjs/utils/upper-first/upper-first.cjs +6 -6
  177. package/cjs/utils/upper-first/upper-first.cjs.map +1 -1
  178. package/cjs/utils/use-callback-ref/use-callback-ref.cjs +11 -12
  179. package/cjs/utils/use-callback-ref/use-callback-ref.cjs.map +1 -1
  180. package/esm/index.mjs +87 -87
  181. package/esm/use-click-outside/use-click-outside.mjs +22 -24
  182. package/esm/use-click-outside/use-click-outside.mjs.map +1 -1
  183. package/esm/use-clipboard/use-clipboard.mjs +29 -26
  184. package/esm/use-clipboard/use-clipboard.mjs.map +1 -1
  185. package/esm/use-collapse/use-collapse.mjs +95 -95
  186. package/esm/use-collapse/use-collapse.mjs.map +1 -1
  187. package/esm/use-collapse/use-horizontal-collapse.mjs +94 -94
  188. package/esm/use-collapse/use-horizontal-collapse.mjs.map +1 -1
  189. package/esm/use-color-scheme/use-color-scheme.mjs +7 -6
  190. package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -1
  191. package/esm/use-counter/use-counter.mjs +24 -24
  192. package/esm/use-counter/use-counter.mjs.map +1 -1
  193. package/esm/use-debounced-callback/use-debounced-callback.mjs +89 -91
  194. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -1
  195. package/esm/use-debounced-state/use-debounced-state.mjs +20 -26
  196. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -1
  197. package/esm/use-debounced-value/use-debounced-value.mjs +32 -29
  198. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -1
  199. package/esm/use-did-update/use-did-update.mjs +14 -19
  200. package/esm/use-did-update/use-did-update.mjs.map +1 -1
  201. package/esm/use-disclosure/use-disclosure.mjs +37 -28
  202. package/esm/use-disclosure/use-disclosure.mjs.map +1 -1
  203. package/esm/use-document-title/use-document-title.mjs +9 -10
  204. package/esm/use-document-title/use-document-title.mjs.map +1 -1
  205. package/esm/use-document-visibility/use-document-visibility.mjs +14 -13
  206. package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -1
  207. package/esm/use-event-listener/use-event-listener.mjs +23 -30
  208. package/esm/use-event-listener/use-event-listener.mjs.map +1 -1
  209. package/esm/use-eye-dropper/use-eye-dropper.mjs +19 -22
  210. package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -1
  211. package/esm/use-favicon/use-favicon.mjs +25 -30
  212. package/esm/use-favicon/use-favicon.mjs.map +1 -1
  213. package/esm/use-fetch/use-fetch.mjs +43 -43
  214. package/esm/use-fetch/use-fetch.mjs.map +1 -1
  215. package/esm/use-file-dialog/use-file-dialog.mjs +65 -75
  216. package/esm/use-file-dialog/use-file-dialog.mjs.map +1 -1
  217. package/esm/use-floating-window/use-floating-window.mjs +244 -253
  218. package/esm/use-floating-window/use-floating-window.mjs.map +1 -1
  219. package/esm/use-focus-return/use-focus-return.mjs +26 -35
  220. package/esm/use-focus-return/use-focus-return.mjs.map +1 -1
  221. package/esm/use-focus-trap/scope-tab.mjs +20 -29
  222. package/esm/use-focus-trap/scope-tab.mjs.map +1 -1
  223. package/esm/use-focus-trap/tabbable.mjs +23 -38
  224. package/esm/use-focus-trap/tabbable.mjs.map +1 -1
  225. package/esm/use-focus-trap/use-focus-trap.mjs +41 -66
  226. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -1
  227. package/esm/use-focus-within/use-focus-within.mjs +51 -60
  228. package/esm/use-focus-within/use-focus-within.mjs.map +1 -1
  229. package/esm/use-force-update/use-force-update.mjs +8 -7
  230. package/esm/use-force-update/use-force-update.mjs.map +1 -1
  231. package/esm/use-fullscreen/use-fullscreen.mjs +80 -87
  232. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -1
  233. package/esm/use-hash/use-hash.mjs +21 -26
  234. package/esm/use-hash/use-hash.mjs.map +1 -1
  235. package/esm/use-headroom/use-headroom.mjs +71 -89
  236. package/esm/use-headroom/use-headroom.mjs.map +1 -1
  237. package/esm/use-hotkeys/parse-hotkey.mjs +74 -79
  238. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -1
  239. package/esm/use-hotkeys/use-hotkeys.mjs +32 -31
  240. package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -1
  241. package/esm/use-hover/use-hover.mjs +31 -31
  242. package/esm/use-hover/use-hover.mjs.map +1 -1
  243. package/esm/use-id/use-id.mjs +15 -17
  244. package/esm/use-id/use-id.mjs.map +1 -1
  245. package/esm/use-idle/use-idle.mjs +40 -31
  246. package/esm/use-idle/use-idle.mjs.map +1 -1
  247. package/esm/use-in-viewport/use-in-viewport.mjs +22 -25
  248. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -1
  249. package/esm/use-input-state/use-input-state.mjs +17 -23
  250. package/esm/use-input-state/use-input-state.mjs.map +1 -1
  251. package/esm/use-intersection/use-intersection.mjs +29 -25
  252. package/esm/use-intersection/use-intersection.mjs.map +1 -1
  253. package/esm/use-interval/use-interval.mjs +42 -39
  254. package/esm/use-interval/use-interval.mjs.map +1 -1
  255. package/esm/use-is-first-render/use-is-first-render.mjs +12 -11
  256. package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -1
  257. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +6 -5
  258. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -1
  259. package/esm/use-list-state/use-list-state.mjs +74 -71
  260. package/esm/use-list-state/use-list-state.mjs.map +1 -1
  261. package/esm/use-local-storage/create-storage.mjs +127 -137
  262. package/esm/use-local-storage/create-storage.mjs.map +1 -1
  263. package/esm/use-local-storage/use-local-storage.mjs +7 -6
  264. package/esm/use-local-storage/use-local-storage.mjs.map +1 -1
  265. package/esm/use-logger/use-logger.mjs +15 -14
  266. package/esm/use-logger/use-logger.mjs.map +1 -1
  267. package/esm/use-long-press/use-long-press.mjs +49 -56
  268. package/esm/use-long-press/use-long-press.mjs.map +1 -1
  269. package/esm/use-map/use-map.mjs +24 -23
  270. package/esm/use-map/use-map.mjs.map +1 -1
  271. package/esm/use-media-query/use-media-query.mjs +27 -31
  272. package/esm/use-media-query/use-media-query.mjs.map +1 -1
  273. package/esm/use-merged-ref/use-merged-ref.mjs +24 -33
  274. package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -1
  275. package/esm/use-mounted/use-mounted.mjs +9 -8
  276. package/esm/use-mounted/use-mounted.mjs.map +1 -1
  277. package/esm/use-mouse/use-mouse.mjs +55 -51
  278. package/esm/use-mouse/use-mouse.mjs.map +1 -1
  279. package/esm/use-move/use-move.mjs +98 -96
  280. package/esm/use-move/use-move.mjs.map +1 -1
  281. package/esm/use-mutation-observer/use-mutation-observer.mjs +45 -44
  282. package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -1
  283. package/esm/use-network/use-network.mjs +48 -42
  284. package/esm/use-network/use-network.mjs.map +1 -1
  285. package/esm/use-orientation/use-orientation.mjs +30 -39
  286. package/esm/use-orientation/use-orientation.mjs.map +1 -1
  287. package/esm/use-os/use-os.mjs +27 -50
  288. package/esm/use-os/use-os.mjs.map +1 -1
  289. package/esm/use-page-leave/use-page-leave.mjs +11 -10
  290. package/esm/use-page-leave/use-page-leave.mjs.map +1 -1
  291. package/esm/use-pagination/use-pagination.mjs +75 -85
  292. package/esm/use-pagination/use-pagination.mjs.map +1 -1
  293. package/esm/use-previous/use-previous.mjs +11 -10
  294. package/esm/use-previous/use-previous.mjs.map +1 -1
  295. package/esm/use-queue/use-queue.mjs +40 -35
  296. package/esm/use-queue/use-queue.mjs.map +1 -1
  297. package/esm/use-radial-move/use-radial-move.mjs +87 -92
  298. package/esm/use-radial-move/use-radial-move.mjs.map +1 -1
  299. package/esm/use-reduced-motion/use-reduced-motion.mjs +7 -6
  300. package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -1
  301. package/esm/use-resize-observer/use-resize-observer.mjs +55 -60
  302. package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -1
  303. package/esm/use-scroll-direction/use-scroll-direction.mjs +33 -34
  304. package/esm/use-scroll-direction/use-scroll-direction.mjs.map +1 -1
  305. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +128 -158
  306. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -1
  307. package/esm/use-scroll-spy/use-scroll-spy.mjs +58 -82
  308. package/esm/use-scroll-spy/use-scroll-spy.mjs.map +1 -1
  309. package/esm/use-scroller/use-scroller.mjs +128 -149
  310. package/esm/use-scroller/use-scroller.mjs.map +1 -1
  311. package/esm/use-selection/use-selection.mjs +61 -70
  312. package/esm/use-selection/use-selection.mjs.map +1 -1
  313. package/esm/use-session-storage/use-session-storage.mjs +7 -6
  314. package/esm/use-session-storage/use-session-storage.mjs.map +1 -1
  315. package/esm/use-set/use-set.mjs +60 -71
  316. package/esm/use-set/use-set.mjs.map +1 -1
  317. package/esm/use-set-state/use-set-state.mjs +11 -14
  318. package/esm/use-set-state/use-set-state.mjs.map +1 -1
  319. package/esm/use-shallow-effect/use-shallow-effect.mjs +20 -29
  320. package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -1
  321. package/esm/use-state-history/use-state-history.mjs +47 -38
  322. package/esm/use-state-history/use-state-history.mjs.map +1 -1
  323. package/esm/use-text-selection/use-text-selection.mjs +19 -18
  324. package/esm/use-text-selection/use-text-selection.mjs.map +1 -1
  325. package/esm/use-throttled-callback/use-throttled-callback.mjs +37 -46
  326. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -1
  327. package/esm/use-throttled-state/use-throttled-state.mjs +11 -10
  328. package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -1
  329. package/esm/use-throttled-value/use-throttled-value.mjs +18 -20
  330. package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -1
  331. package/esm/use-timeout/use-timeout.mjs +27 -30
  332. package/esm/use-timeout/use-timeout.mjs.map +1 -1
  333. package/esm/use-toggle/use-toggle.mjs +12 -11
  334. package/esm/use-toggle/use-toggle.mjs.map +1 -1
  335. package/esm/use-uncontrolled/use-uncontrolled.mjs +22 -23
  336. package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -1
  337. package/esm/use-validated-state/use-validated-state.mjs +21 -22
  338. package/esm/use-validated-state/use-validated-state.mjs.map +1 -1
  339. package/esm/use-viewport-size/use-viewport-size.mjs +22 -20
  340. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -1
  341. package/esm/use-window-event/use-window-event.mjs +11 -10
  342. package/esm/use-window-event/use-window-event.mjs.map +1 -1
  343. package/esm/use-window-scroll/use-window-scroll.mjs +30 -24
  344. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -1
  345. package/esm/utils/clamp/clamp.mjs +9 -13
  346. package/esm/utils/clamp/clamp.mjs.map +1 -1
  347. package/esm/utils/lower-first/lower-first.mjs +6 -4
  348. package/esm/utils/lower-first/lower-first.mjs.map +1 -1
  349. package/esm/utils/random-id/random-id.mjs +6 -4
  350. package/esm/utils/random-id/random-id.mjs.map +1 -1
  351. package/esm/utils/range/range.mjs +8 -9
  352. package/esm/utils/range/range.mjs.map +1 -1
  353. package/esm/utils/shallow-equal/shallow-equal.mjs +17 -27
  354. package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -1
  355. package/esm/utils/upper-first/upper-first.mjs +6 -4
  356. package/esm/utils/upper-first/upper-first.mjs.map +1 -1
  357. package/esm/utils/use-callback-ref/use-callback-ref.mjs +11 -10
  358. package/esm/utils/use-callback-ref/use-callback-ref.mjs.map +1 -1
  359. package/lib/use-local-storage/use-local-storage.d.ts +13 -3
  360. package/lib/use-session-storage/use-session-storage.d.ts +13 -3
  361. package/package.json +1 -1
  362. package/cjs/index.cjs.map +0 -1
  363. package/cjs/use-drag/use-drag.cjs +0 -304
  364. package/cjs/use-drag/use-drag.cjs.map +0 -1
  365. package/cjs/use-mask/use-mask.cjs +0 -583
  366. package/cjs/use-mask/use-mask.cjs.map +0 -1
  367. package/cjs/use-roving-index/use-roving-index.cjs +0 -270
  368. package/cjs/use-roving-index/use-roving-index.cjs.map +0 -1
  369. package/esm/index.mjs.map +0 -1
  370. package/esm/use-drag/use-drag.mjs +0 -302
  371. package/esm/use-drag/use-drag.mjs.map +0 -1
  372. package/esm/use-mask/use-mask.mjs +0 -577
  373. package/esm/use-mask/use-mask.mjs.map +0 -1
  374. package/esm/use-roving-index/use-roving-index.mjs +0 -268
  375. package/esm/use-roving-index/use-roving-index.mjs.map +0 -1
  376. package/lib/use-drag/use-drag.d.ts +0 -60
  377. package/lib/use-mask/use-mask.d.ts +0 -60
  378. package/lib/use-roving-index/use-roving-index.d.ts +0 -49
@@ -1,274 +1,263 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var react = require('react');
5
-
1
+ "use client";
2
+ let react = require("react");
3
+ //#region packages/@mantine/hooks/src/use-floating-window/use-floating-window.ts
6
4
  function useRefValue(value) {
7
- const ref = react.useRef(value);
8
- ref.current = value;
9
- return ref;
5
+ const ref = (0, react.useRef)(value);
6
+ ref.current = value;
7
+ return ref;
10
8
  }
11
9
  function useFloatingWindow(options = {}) {
12
- const [element, setElement] = react.useState(null);
13
- const ref = react.useRef(null);
14
- const pos = react.useRef({ x: 0, y: 0 });
15
- const offset = react.useRef({ x: 0, y: 0 });
16
- const [isDragging, setIsDragging] = react.useState(false);
17
- const isDraggingRef = react.useRef(false);
18
- const initialized = react.useRef(false);
19
- const enabledRef = useRefValue(options.enabled);
20
- const setDragging = react.useCallback((value) => {
21
- setIsDragging(value);
22
- isDraggingRef.current = value;
23
- }, []);
24
- const assignRef = react.useCallback((node) => {
25
- if (node) {
26
- ref.current = node;
27
- setElement(node);
28
- } else {
29
- ref.current = null;
30
- setElement(null);
31
- }
32
- }, []);
33
- react.useEffect(() => {
34
- const el = ref.current;
35
- if (!initialized.current && el) {
36
- initialized.current = true;
37
- pos.current = calculateInitialPosition(el, options);
38
- el.style.left = `${pos.current.x}px`;
39
- el.style.top = `${pos.current.y}px`;
40
- el.style.right = "unset";
41
- el.style.bottom = "unset";
42
- }
43
- return () => {
44
- initialized.current = false;
45
- };
46
- }, [
47
- element,
48
- options.constrainOffset,
49
- options.initialPosition?.top,
50
- options.initialPosition?.left,
51
- options.initialPosition?.right,
52
- options.initialPosition?.bottom,
53
- options.constrainToViewport
54
- ]);
55
- react.useEffect(() => {
56
- const el = ref.current;
57
- if (!el) {
58
- return;
59
- }
60
- const controller = new AbortController();
61
- const signal = controller.signal;
62
- const onStart = (e) => {
63
- if (enabledRef.current === false) {
64
- return;
65
- }
66
- const point = "touches" in e ? e.touches[0] : e;
67
- if ("button" in e && e.button !== 0) {
68
- return;
69
- }
70
- if (!getHandle(el, e.target, options)) {
71
- return;
72
- }
73
- setDragging(true);
74
- document.body.style.userSelect = "none";
75
- document.body.style.webkitUserSelect = "none";
76
- const rect = el.getBoundingClientRect();
77
- offset.current = {
78
- x: point.clientX - rect.left,
79
- y: point.clientY - rect.top
80
- };
81
- options.onDragStart?.();
82
- document.addEventListener("mousemove", onMove, { signal });
83
- document.addEventListener("mouseup", onEnd, { signal });
84
- document.addEventListener("touchmove", onMove, { signal, passive: false });
85
- document.addEventListener("touchend", onEnd, { signal });
86
- };
87
- const onMove = (e) => {
88
- if (!isDraggingRef.current) {
89
- return;
90
- }
91
- const point = "touches" in e ? e.touches[0] : e;
92
- e.preventDefault();
93
- let x = point.clientX - offset.current.x;
94
- let y = point.clientY - offset.current.y;
95
- const constrained = getConstrainedPosition(el, { x, y }, options);
96
- if (options.axis === "x") {
97
- x = constrained.x;
98
- y = pos.current.y;
99
- } else if (options.axis === "y") {
100
- x = pos.current.x;
101
- y = constrained.y;
102
- } else {
103
- x = constrained.x;
104
- y = constrained.y;
105
- }
106
- pos.current = { x, y };
107
- if (ref.current) {
108
- ref.current.style.left = `${x}px`;
109
- ref.current.style.top = `${y}px`;
110
- }
111
- options.onPositionChange?.({ x, y });
112
- };
113
- const onEnd = () => {
114
- if (isDraggingRef.current) {
115
- setDragging(false);
116
- document.body.style.userSelect = "";
117
- document.body.style.webkitUserSelect = "";
118
- options.onDragEnd?.();
119
- }
120
- };
121
- el.addEventListener("mousedown", onStart, { signal });
122
- el.addEventListener("touchstart", onStart, { signal, passive: false });
123
- return () => {
124
- controller.abort();
125
- };
126
- }, [
127
- options.constrainToViewport,
128
- options.constrainOffset,
129
- options.dragHandleSelector,
130
- options.axis,
131
- options.onPositionChange,
132
- options.onDragStart,
133
- options.onDragEnd,
134
- options.initialPosition?.top,
135
- options.initialPosition?.left,
136
- options.initialPosition?.right,
137
- options.initialPosition?.bottom,
138
- element
139
- ]);
140
- react.useEffect(() => {
141
- const el = ref.current;
142
- if (!el) {
143
- return;
144
- }
145
- const observer = new ResizeObserver(() => {
146
- const constrained = getConstrainedPosition(el, pos.current, options);
147
- pos.current = constrained;
148
- el.style.left = `${constrained.x}px`;
149
- el.style.top = `${constrained.y}px`;
150
- });
151
- observer.observe(el);
152
- return () => {
153
- observer.disconnect();
154
- };
155
- }, [options.constrainToViewport, options.constrainOffset]);
156
- return {
157
- ref: assignRef,
158
- setPosition: createSetPosition(ref, pos, options),
159
- isDragging
160
- };
10
+ const [element, setElement] = (0, react.useState)(null);
11
+ const ref = (0, react.useRef)(null);
12
+ const pos = (0, react.useRef)({
13
+ x: 0,
14
+ y: 0
15
+ });
16
+ const offset = (0, react.useRef)({
17
+ x: 0,
18
+ y: 0
19
+ });
20
+ const [isDragging, setIsDragging] = (0, react.useState)(false);
21
+ const isDraggingRef = (0, react.useRef)(false);
22
+ const initialized = (0, react.useRef)(false);
23
+ const enabledRef = useRefValue(options.enabled);
24
+ const setDragging = (0, react.useCallback)((value) => {
25
+ setIsDragging(value);
26
+ isDraggingRef.current = value;
27
+ }, []);
28
+ const assignRef = (0, react.useCallback)((node) => {
29
+ if (node) {
30
+ ref.current = node;
31
+ setElement(node);
32
+ } else {
33
+ ref.current = null;
34
+ setElement(null);
35
+ }
36
+ }, []);
37
+ (0, react.useEffect)(() => {
38
+ const el = ref.current;
39
+ if (!initialized.current && el) {
40
+ initialized.current = true;
41
+ pos.current = calculateInitialPosition(el, options);
42
+ el.style.left = `${pos.current.x}px`;
43
+ el.style.top = `${pos.current.y}px`;
44
+ el.style.right = "unset";
45
+ el.style.bottom = "unset";
46
+ }
47
+ return () => {
48
+ initialized.current = false;
49
+ };
50
+ }, [
51
+ element,
52
+ options.constrainOffset,
53
+ options.initialPosition?.top,
54
+ options.initialPosition?.left,
55
+ options.initialPosition?.right,
56
+ options.initialPosition?.bottom,
57
+ options.constrainToViewport
58
+ ]);
59
+ (0, react.useEffect)(() => {
60
+ const el = ref.current;
61
+ if (!el) return;
62
+ const controller = new AbortController();
63
+ const signal = controller.signal;
64
+ const onStart = (e) => {
65
+ if (enabledRef.current === false) return;
66
+ const point = "touches" in e ? e.touches[0] : e;
67
+ if ("button" in e && e.button !== 0) return;
68
+ if (!getHandle(el, e.target, options)) return;
69
+ setDragging(true);
70
+ document.body.style.userSelect = "none";
71
+ document.body.style.webkitUserSelect = "none";
72
+ const rect = el.getBoundingClientRect();
73
+ offset.current = {
74
+ x: point.clientX - rect.left,
75
+ y: point.clientY - rect.top
76
+ };
77
+ options.onDragStart?.();
78
+ document.addEventListener("mousemove", onMove, { signal });
79
+ document.addEventListener("mouseup", onEnd, { signal });
80
+ document.addEventListener("touchmove", onMove, {
81
+ signal,
82
+ passive: false
83
+ });
84
+ document.addEventListener("touchend", onEnd, { signal });
85
+ };
86
+ const onMove = (e) => {
87
+ if (!isDraggingRef.current) return;
88
+ const point = "touches" in e ? e.touches[0] : e;
89
+ e.preventDefault();
90
+ let x = point.clientX - offset.current.x;
91
+ let y = point.clientY - offset.current.y;
92
+ const constrained = getConstrainedPosition(el, {
93
+ x,
94
+ y
95
+ }, options);
96
+ if (options.axis === "x") {
97
+ x = constrained.x;
98
+ y = pos.current.y;
99
+ } else if (options.axis === "y") {
100
+ x = pos.current.x;
101
+ y = constrained.y;
102
+ } else {
103
+ x = constrained.x;
104
+ y = constrained.y;
105
+ }
106
+ pos.current = {
107
+ x,
108
+ y
109
+ };
110
+ if (ref.current) {
111
+ ref.current.style.left = `${x}px`;
112
+ ref.current.style.top = `${y}px`;
113
+ }
114
+ options.onPositionChange?.({
115
+ x,
116
+ y
117
+ });
118
+ };
119
+ const onEnd = () => {
120
+ if (isDraggingRef.current) {
121
+ setDragging(false);
122
+ document.body.style.userSelect = "";
123
+ document.body.style.webkitUserSelect = "";
124
+ options.onDragEnd?.();
125
+ }
126
+ };
127
+ el.addEventListener("mousedown", onStart, { signal });
128
+ el.addEventListener("touchstart", onStart, {
129
+ signal,
130
+ passive: false
131
+ });
132
+ return () => {
133
+ controller.abort();
134
+ };
135
+ }, [
136
+ options.constrainToViewport,
137
+ options.constrainOffset,
138
+ options.dragHandleSelector,
139
+ options.axis,
140
+ options.onPositionChange,
141
+ options.onDragStart,
142
+ options.onDragEnd,
143
+ options.initialPosition?.top,
144
+ options.initialPosition?.left,
145
+ options.initialPosition?.right,
146
+ options.initialPosition?.bottom,
147
+ element
148
+ ]);
149
+ (0, react.useEffect)(() => {
150
+ const el = ref.current;
151
+ if (!el) return;
152
+ const observer = new ResizeObserver(() => {
153
+ const constrained = getConstrainedPosition(el, pos.current, options);
154
+ pos.current = constrained;
155
+ el.style.left = `${constrained.x}px`;
156
+ el.style.top = `${constrained.y}px`;
157
+ });
158
+ observer.observe(el);
159
+ return () => {
160
+ observer.disconnect();
161
+ };
162
+ }, [options.constrainToViewport, options.constrainOffset]);
163
+ return {
164
+ ref: assignRef,
165
+ setPosition: createSetPosition(ref, pos, options),
166
+ isDragging
167
+ };
161
168
  }
162
169
  function px(v) {
163
- return v.endsWith("px") ? parseFloat(v) : 0;
170
+ return v.endsWith("px") ? parseFloat(v) : 0;
164
171
  }
165
172
  function calculateInitialPosition(el, options) {
166
- const rect = el.getBoundingClientRect();
167
- const offset = options.constrainOffset ?? 0;
168
- const winW = window.innerWidth;
169
- const winH = window.innerHeight;
170
- const style = window.getComputedStyle(el);
171
- const top = options.initialPosition?.top;
172
- const left = options.initialPosition?.left;
173
- const right = options.initialPosition?.right;
174
- const bottom = options.initialPosition?.bottom;
175
- let x = offset;
176
- let y = offset;
177
- if (left != null) {
178
- x = left;
179
- } else if (right != null) {
180
- x = winW - rect.width - right;
181
- } else {
182
- x = px(style.left) || winW - rect.width - px(style.right) || offset;
183
- }
184
- if (top != null) {
185
- y = top;
186
- } else if (bottom != null) {
187
- y = winH - rect.height - bottom;
188
- } else {
189
- y = px(style.top) || winH - rect.height - px(style.bottom) || offset;
190
- }
191
- return options.constrainToViewport ? clampToViewport(x, y, el, options.constrainOffset) : { x, y };
173
+ const rect = el.getBoundingClientRect();
174
+ const offset = options.constrainOffset ?? 0;
175
+ const winW = window.innerWidth;
176
+ const winH = window.innerHeight;
177
+ const style = window.getComputedStyle(el);
178
+ const top = options.initialPosition?.top;
179
+ const left = options.initialPosition?.left;
180
+ const right = options.initialPosition?.right;
181
+ const bottom = options.initialPosition?.bottom;
182
+ let x = offset;
183
+ let y = offset;
184
+ if (left != null) x = left;
185
+ else if (right != null) x = winW - rect.width - right;
186
+ else x = px(style.left) || winW - rect.width - px(style.right) || offset;
187
+ if (top != null) y = top;
188
+ else if (bottom != null) y = winH - rect.height - bottom;
189
+ else y = px(style.top) || winH - rect.height - px(style.bottom) || offset;
190
+ return options.constrainToViewport ? clampToViewport(x, y, el, options.constrainOffset) : {
191
+ x,
192
+ y
193
+ };
192
194
  }
193
195
  function getConstrainedPosition(el, pos, options) {
194
- if (!options.constrainToViewport || !el) {
195
- return pos;
196
- }
197
- const rect = el.getBoundingClientRect();
198
- const offset = options.constrainOffset ?? 0;
199
- const maxX = window.innerWidth - rect.width - offset;
200
- const maxY = window.innerHeight - rect.height - offset;
201
- return {
202
- x: Math.min(Math.max(offset, pos.x), maxX),
203
- y: Math.min(Math.max(offset, pos.y), maxY)
204
- };
196
+ if (!options.constrainToViewport || !el) return pos;
197
+ const rect = el.getBoundingClientRect();
198
+ const offset = options.constrainOffset ?? 0;
199
+ const maxX = window.innerWidth - rect.width - offset;
200
+ const maxY = window.innerHeight - rect.height - offset;
201
+ return {
202
+ x: Math.min(Math.max(offset, pos.x), maxX),
203
+ y: Math.min(Math.max(offset, pos.y), maxY)
204
+ };
205
205
  }
206
206
  function matchesExcludeSelector(target, excludeSelector) {
207
- if (!excludeSelector) {
208
- return false;
209
- }
210
- if (!(target instanceof Element)) {
211
- return false;
212
- }
213
- return Boolean(target.closest(excludeSelector));
207
+ if (!excludeSelector) return false;
208
+ if (!(target instanceof Element)) return false;
209
+ return Boolean(target.closest(excludeSelector));
214
210
  }
215
211
  function getHandle(el, target, options) {
216
- if (!(target instanceof Node)) {
217
- return false;
218
- }
219
- if (!options.dragHandleSelector) {
220
- return !matchesExcludeSelector(target, options.excludeDragHandleSelector);
221
- }
222
- const handles = Array.from(el.querySelectorAll(options.dragHandleSelector));
223
- return handles.some(
224
- (handle) => handle.contains(target) && !matchesExcludeSelector(target, options.excludeDragHandleSelector)
225
- );
212
+ if (!(target instanceof Node)) return false;
213
+ if (!options.dragHandleSelector) return !matchesExcludeSelector(target, options.excludeDragHandleSelector);
214
+ return Array.from(el.querySelectorAll(options.dragHandleSelector)).some((handle) => handle.contains(target) && !matchesExcludeSelector(target, options.excludeDragHandleSelector));
226
215
  }
227
216
  function clampToViewport(x, y, el, offset = 0) {
228
- const rect = el.getBoundingClientRect();
229
- const maxX = window.innerWidth - rect.width - offset;
230
- const maxY = window.innerHeight - rect.height - offset;
231
- return {
232
- x: Math.min(Math.max(offset, x), maxX),
233
- y: Math.min(Math.max(offset, y), maxY)
234
- };
217
+ const rect = el.getBoundingClientRect();
218
+ const maxX = window.innerWidth - rect.width - offset;
219
+ const maxY = window.innerHeight - rect.height - offset;
220
+ return {
221
+ x: Math.min(Math.max(offset, x), maxX),
222
+ y: Math.min(Math.max(offset, y), maxY)
223
+ };
235
224
  }
236
225
  function createSetPosition(elRef, posRef, options) {
237
- return react.useCallback(
238
- (position) => {
239
- const el = elRef.current;
240
- if (!el) {
241
- return;
242
- }
243
- const offset = options.constrainOffset ?? 0;
244
- const rect = el.getBoundingClientRect();
245
- let x;
246
- let y;
247
- if (position.left != null) {
248
- x = position.left;
249
- } else if (position.right != null) {
250
- x = window.innerWidth - rect.width - position.right;
251
- }
252
- if (position.top != null) {
253
- y = position.top;
254
- } else if (position.bottom != null) {
255
- y = window.innerHeight - rect.height - position.bottom;
256
- }
257
- x = x ?? posRef.current.x;
258
- y = y ?? posRef.current.y;
259
- if (options.constrainToViewport) {
260
- const clamped = clampToViewport(x, y, el, offset);
261
- x = clamped.x;
262
- y = clamped.y;
263
- }
264
- posRef.current = { x, y };
265
- el.style.left = `${x}px`;
266
- el.style.top = `${y}px`;
267
- options.onPositionChange?.({ x, y });
268
- },
269
- [options.constrainToViewport, options.constrainOffset, options.onPositionChange]
270
- );
226
+ return (0, react.useCallback)((position) => {
227
+ const el = elRef.current;
228
+ if (!el) return;
229
+ const offset = options.constrainOffset ?? 0;
230
+ const rect = el.getBoundingClientRect();
231
+ let x;
232
+ let y;
233
+ if (position.left != null) x = position.left;
234
+ else if (position.right != null) x = window.innerWidth - rect.width - position.right;
235
+ if (position.top != null) y = position.top;
236
+ else if (position.bottom != null) y = window.innerHeight - rect.height - position.bottom;
237
+ x = x ?? posRef.current.x;
238
+ y = y ?? posRef.current.y;
239
+ if (options.constrainToViewport) {
240
+ const clamped = clampToViewport(x, y, el, offset);
241
+ x = clamped.x;
242
+ y = clamped.y;
243
+ }
244
+ posRef.current = {
245
+ x,
246
+ y
247
+ };
248
+ el.style.left = `${x}px`;
249
+ el.style.top = `${y}px`;
250
+ options.onPositionChange?.({
251
+ x,
252
+ y
253
+ });
254
+ }, [
255
+ options.constrainToViewport,
256
+ options.constrainOffset,
257
+ options.onPositionChange
258
+ ]);
271
259
  }
272
-
260
+ //#endregion
273
261
  exports.useFloatingWindow = useFloatingWindow;
274
- //# sourceMappingURL=use-floating-window.cjs.map
262
+
263
+ //# sourceMappingURL=use-floating-window.cjs.map