@mantine/hooks 9.0.0-alpha.4 → 9.0.0-alpha.6

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 (385) hide show
  1. package/cjs/index.cjs +183 -186
  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 -97
  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-drag/use-drag.cjs +266 -0
  29. package/cjs/use-drag/use-drag.cjs.map +1 -0
  30. package/cjs/use-event-listener/use-event-listener.cjs +23 -32
  31. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -1
  32. package/cjs/use-eye-dropper/use-eye-dropper.cjs +19 -24
  33. package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -1
  34. package/cjs/use-favicon/use-favicon.cjs +25 -32
  35. package/cjs/use-favicon/use-favicon.cjs.map +1 -1
  36. package/cjs/use-fetch/use-fetch.cjs +43 -45
  37. package/cjs/use-fetch/use-fetch.cjs.map +1 -1
  38. package/cjs/use-file-dialog/use-file-dialog.cjs +65 -77
  39. package/cjs/use-file-dialog/use-file-dialog.cjs.map +1 -1
  40. package/cjs/use-floating-window/use-floating-window.cjs +244 -255
  41. package/cjs/use-floating-window/use-floating-window.cjs.map +1 -1
  42. package/cjs/use-focus-return/use-focus-return.cjs +26 -37
  43. package/cjs/use-focus-return/use-focus-return.cjs.map +1 -1
  44. package/cjs/use-focus-trap/scope-tab.cjs +20 -31
  45. package/cjs/use-focus-trap/scope-tab.cjs.map +1 -1
  46. package/cjs/use-focus-trap/tabbable.cjs +24 -40
  47. package/cjs/use-focus-trap/tabbable.cjs.map +1 -1
  48. package/cjs/use-focus-trap/use-focus-trap.cjs +41 -68
  49. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -1
  50. package/cjs/use-focus-within/use-focus-within.cjs +51 -62
  51. package/cjs/use-focus-within/use-focus-within.cjs.map +1 -1
  52. package/cjs/use-force-update/use-force-update.cjs +8 -9
  53. package/cjs/use-force-update/use-force-update.cjs.map +1 -1
  54. package/cjs/use-fullscreen/use-fullscreen.cjs +80 -89
  55. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -1
  56. package/cjs/use-hash/use-hash.cjs +21 -28
  57. package/cjs/use-hash/use-hash.cjs.map +1 -1
  58. package/cjs/use-headroom/use-headroom.cjs +71 -76
  59. package/cjs/use-headroom/use-headroom.cjs.map +1 -1
  60. package/cjs/use-hotkeys/parse-hotkey.cjs +74 -82
  61. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -1
  62. package/cjs/use-hotkeys/use-hotkeys.cjs +32 -33
  63. package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -1
  64. package/cjs/use-hover/use-hover.cjs +31 -33
  65. package/cjs/use-hover/use-hover.cjs.map +1 -1
  66. package/cjs/use-id/use-id.cjs +14 -18
  67. package/cjs/use-id/use-id.cjs.map +1 -1
  68. package/cjs/use-idle/use-idle.cjs +40 -33
  69. package/cjs/use-idle/use-idle.cjs.map +1 -1
  70. package/cjs/use-in-viewport/use-in-viewport.cjs +22 -27
  71. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -1
  72. package/cjs/use-input-state/use-input-state.cjs +17 -26
  73. package/cjs/use-input-state/use-input-state.cjs.map +1 -1
  74. package/cjs/use-intersection/use-intersection.cjs +29 -27
  75. package/cjs/use-intersection/use-intersection.cjs.map +1 -1
  76. package/cjs/use-interval/use-interval.cjs +42 -41
  77. package/cjs/use-interval/use-interval.cjs.map +1 -1
  78. package/cjs/use-is-first-render/use-is-first-render.cjs +12 -13
  79. package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -1
  80. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +6 -7
  81. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -1
  82. package/cjs/use-list-state/use-list-state.cjs +74 -73
  83. package/cjs/use-list-state/use-list-state.cjs.map +1 -1
  84. package/cjs/use-local-storage/create-storage.cjs +127 -139
  85. package/cjs/use-local-storage/create-storage.cjs.map +1 -1
  86. package/cjs/use-local-storage/use-local-storage.cjs +8 -9
  87. package/cjs/use-local-storage/use-local-storage.cjs.map +1 -1
  88. package/cjs/use-logger/use-logger.cjs +15 -16
  89. package/cjs/use-logger/use-logger.cjs.map +1 -1
  90. package/cjs/use-long-press/use-long-press.cjs +49 -58
  91. package/cjs/use-long-press/use-long-press.cjs.map +1 -1
  92. package/cjs/use-map/use-map.cjs +24 -25
  93. package/cjs/use-map/use-map.cjs.map +1 -1
  94. package/cjs/use-mask/use-mask.cjs +457 -0
  95. package/cjs/use-mask/use-mask.cjs.map +1 -0
  96. package/cjs/use-media-query/use-media-query.cjs +27 -33
  97. package/cjs/use-media-query/use-media-query.cjs.map +1 -1
  98. package/cjs/use-merged-ref/use-merged-ref.cjs +24 -35
  99. package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -1
  100. package/cjs/use-mounted/use-mounted.cjs +9 -10
  101. package/cjs/use-mounted/use-mounted.cjs.map +1 -1
  102. package/cjs/use-mouse/use-mouse.cjs +55 -53
  103. package/cjs/use-mouse/use-mouse.cjs.map +1 -1
  104. package/cjs/use-move/use-move.cjs +98 -98
  105. package/cjs/use-move/use-move.cjs.map +1 -1
  106. package/cjs/use-mutation-observer/use-mutation-observer.cjs +45 -46
  107. package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -1
  108. package/cjs/use-network/use-network.cjs +48 -44
  109. package/cjs/use-network/use-network.cjs.map +1 -1
  110. package/cjs/use-orientation/use-orientation.cjs +30 -41
  111. package/cjs/use-orientation/use-orientation.cjs.map +1 -1
  112. package/cjs/use-os/use-os.cjs +27 -52
  113. package/cjs/use-os/use-os.cjs.map +1 -1
  114. package/cjs/use-page-leave/use-page-leave.cjs +11 -11
  115. package/cjs/use-page-leave/use-page-leave.cjs.map +1 -1
  116. package/cjs/use-pagination/use-pagination.cjs +75 -88
  117. package/cjs/use-pagination/use-pagination.cjs.map +1 -1
  118. package/cjs/use-previous/use-previous.cjs +11 -12
  119. package/cjs/use-previous/use-previous.cjs.map +1 -1
  120. package/cjs/use-queue/use-queue.cjs +40 -37
  121. package/cjs/use-queue/use-queue.cjs.map +1 -1
  122. package/cjs/use-radial-move/use-radial-move.cjs +87 -94
  123. package/cjs/use-radial-move/use-radial-move.cjs.map +1 -1
  124. package/cjs/use-reduced-motion/use-reduced-motion.cjs +7 -8
  125. package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -1
  126. package/cjs/use-resize-observer/use-resize-observer.cjs +55 -62
  127. package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -1
  128. package/cjs/use-roving-index/use-roving-index.cjs +200 -0
  129. package/cjs/use-roving-index/use-roving-index.cjs.map +1 -0
  130. package/cjs/use-scroll-direction/use-scroll-direction.cjs +36 -0
  131. package/cjs/use-scroll-direction/use-scroll-direction.cjs.map +1 -0
  132. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +128 -160
  133. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -1
  134. package/cjs/use-scroll-spy/use-scroll-spy.cjs +58 -84
  135. package/cjs/use-scroll-spy/use-scroll-spy.cjs.map +1 -1
  136. package/cjs/use-scroller/use-scroller.cjs +128 -151
  137. package/cjs/use-scroller/use-scroller.cjs.map +1 -1
  138. package/cjs/use-selection/use-selection.cjs +61 -72
  139. package/cjs/use-selection/use-selection.cjs.map +1 -1
  140. package/cjs/use-session-storage/use-session-storage.cjs +8 -9
  141. package/cjs/use-session-storage/use-session-storage.cjs.map +1 -1
  142. package/cjs/use-set/use-set.cjs +60 -74
  143. package/cjs/use-set/use-set.cjs.map +1 -1
  144. package/cjs/use-set-state/use-set-state.cjs +11 -16
  145. package/cjs/use-set-state/use-set-state.cjs.map +1 -1
  146. package/cjs/use-shallow-effect/use-shallow-effect.cjs +20 -31
  147. package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -1
  148. package/cjs/use-splitter/use-splitter.cjs +433 -0
  149. package/cjs/use-splitter/use-splitter.cjs.map +1 -0
  150. package/cjs/use-state-history/use-state-history.cjs +47 -40
  151. package/cjs/use-state-history/use-state-history.cjs.map +1 -1
  152. package/cjs/use-text-selection/use-text-selection.cjs +19 -20
  153. package/cjs/use-text-selection/use-text-selection.cjs.map +1 -1
  154. package/cjs/use-throttled-callback/use-throttled-callback.cjs +37 -48
  155. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -1
  156. package/cjs/use-throttled-state/use-throttled-state.cjs +11 -12
  157. package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -1
  158. package/cjs/use-throttled-value/use-throttled-value.cjs +18 -22
  159. package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -1
  160. package/cjs/use-timeout/use-timeout.cjs +27 -32
  161. package/cjs/use-timeout/use-timeout.cjs.map +1 -1
  162. package/cjs/use-toggle/use-toggle.cjs +12 -13
  163. package/cjs/use-toggle/use-toggle.cjs.map +1 -1
  164. package/cjs/use-uncontrolled/use-uncontrolled.cjs +22 -25
  165. package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -1
  166. package/cjs/use-validated-state/use-validated-state.cjs +21 -24
  167. package/cjs/use-validated-state/use-validated-state.cjs.map +1 -1
  168. package/cjs/use-viewport-size/use-viewport-size.cjs +22 -22
  169. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -1
  170. package/cjs/use-window-event/use-window-event.cjs +11 -11
  171. package/cjs/use-window-event/use-window-event.cjs.map +1 -1
  172. package/cjs/use-window-scroll/use-window-scroll.cjs +30 -26
  173. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -1
  174. package/cjs/utils/clamp/clamp.cjs +9 -15
  175. package/cjs/utils/clamp/clamp.cjs.map +1 -1
  176. package/cjs/utils/lower-first/lower-first.cjs +6 -6
  177. package/cjs/utils/lower-first/lower-first.cjs.map +1 -1
  178. package/cjs/utils/random-id/random-id.cjs +6 -6
  179. package/cjs/utils/random-id/random-id.cjs.map +1 -1
  180. package/cjs/utils/range/range.cjs +8 -11
  181. package/cjs/utils/range/range.cjs.map +1 -1
  182. package/cjs/utils/shallow-equal/shallow-equal.cjs +17 -29
  183. package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -1
  184. package/cjs/utils/upper-first/upper-first.cjs +6 -6
  185. package/cjs/utils/upper-first/upper-first.cjs.map +1 -1
  186. package/cjs/utils/use-callback-ref/use-callback-ref.cjs +11 -12
  187. package/cjs/utils/use-callback-ref/use-callback-ref.cjs.map +1 -1
  188. package/esm/index.mjs +87 -86
  189. package/esm/use-click-outside/use-click-outside.mjs +22 -24
  190. package/esm/use-click-outside/use-click-outside.mjs.map +1 -1
  191. package/esm/use-clipboard/use-clipboard.mjs +29 -26
  192. package/esm/use-clipboard/use-clipboard.mjs.map +1 -1
  193. package/esm/use-collapse/use-collapse.mjs +95 -94
  194. package/esm/use-collapse/use-collapse.mjs.map +1 -1
  195. package/esm/use-collapse/use-horizontal-collapse.mjs +94 -94
  196. package/esm/use-collapse/use-horizontal-collapse.mjs.map +1 -1
  197. package/esm/use-color-scheme/use-color-scheme.mjs +7 -6
  198. package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -1
  199. package/esm/use-counter/use-counter.mjs +24 -24
  200. package/esm/use-counter/use-counter.mjs.map +1 -1
  201. package/esm/use-debounced-callback/use-debounced-callback.mjs +89 -91
  202. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -1
  203. package/esm/use-debounced-state/use-debounced-state.mjs +20 -26
  204. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -1
  205. package/esm/use-debounced-value/use-debounced-value.mjs +32 -29
  206. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -1
  207. package/esm/use-did-update/use-did-update.mjs +14 -19
  208. package/esm/use-did-update/use-did-update.mjs.map +1 -1
  209. package/esm/use-disclosure/use-disclosure.mjs +37 -28
  210. package/esm/use-disclosure/use-disclosure.mjs.map +1 -1
  211. package/esm/use-document-title/use-document-title.mjs +9 -10
  212. package/esm/use-document-title/use-document-title.mjs.map +1 -1
  213. package/esm/use-document-visibility/use-document-visibility.mjs +14 -13
  214. package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -1
  215. package/esm/use-drag/use-drag.mjs +266 -0
  216. package/esm/use-drag/use-drag.mjs.map +1 -0
  217. package/esm/use-event-listener/use-event-listener.mjs +23 -30
  218. package/esm/use-event-listener/use-event-listener.mjs.map +1 -1
  219. package/esm/use-eye-dropper/use-eye-dropper.mjs +19 -22
  220. package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -1
  221. package/esm/use-favicon/use-favicon.mjs +25 -30
  222. package/esm/use-favicon/use-favicon.mjs.map +1 -1
  223. package/esm/use-fetch/use-fetch.mjs +43 -43
  224. package/esm/use-fetch/use-fetch.mjs.map +1 -1
  225. package/esm/use-file-dialog/use-file-dialog.mjs +65 -75
  226. package/esm/use-file-dialog/use-file-dialog.mjs.map +1 -1
  227. package/esm/use-floating-window/use-floating-window.mjs +244 -253
  228. package/esm/use-floating-window/use-floating-window.mjs.map +1 -1
  229. package/esm/use-focus-return/use-focus-return.mjs +26 -35
  230. package/esm/use-focus-return/use-focus-return.mjs.map +1 -1
  231. package/esm/use-focus-trap/scope-tab.mjs +20 -29
  232. package/esm/use-focus-trap/scope-tab.mjs.map +1 -1
  233. package/esm/use-focus-trap/tabbable.mjs +23 -38
  234. package/esm/use-focus-trap/tabbable.mjs.map +1 -1
  235. package/esm/use-focus-trap/use-focus-trap.mjs +39 -66
  236. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -1
  237. package/esm/use-focus-within/use-focus-within.mjs +51 -60
  238. package/esm/use-focus-within/use-focus-within.mjs.map +1 -1
  239. package/esm/use-force-update/use-force-update.mjs +8 -7
  240. package/esm/use-force-update/use-force-update.mjs.map +1 -1
  241. package/esm/use-fullscreen/use-fullscreen.mjs +80 -87
  242. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -1
  243. package/esm/use-hash/use-hash.mjs +21 -26
  244. package/esm/use-hash/use-hash.mjs.map +1 -1
  245. package/esm/use-headroom/use-headroom.mjs +71 -71
  246. package/esm/use-headroom/use-headroom.mjs.map +1 -1
  247. package/esm/use-hotkeys/parse-hotkey.mjs +74 -79
  248. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -1
  249. package/esm/use-hotkeys/use-hotkeys.mjs +32 -31
  250. package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -1
  251. package/esm/use-hover/use-hover.mjs +31 -31
  252. package/esm/use-hover/use-hover.mjs.map +1 -1
  253. package/esm/use-id/use-id.mjs +15 -17
  254. package/esm/use-id/use-id.mjs.map +1 -1
  255. package/esm/use-idle/use-idle.mjs +40 -31
  256. package/esm/use-idle/use-idle.mjs.map +1 -1
  257. package/esm/use-in-viewport/use-in-viewport.mjs +22 -25
  258. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -1
  259. package/esm/use-input-state/use-input-state.mjs +17 -23
  260. package/esm/use-input-state/use-input-state.mjs.map +1 -1
  261. package/esm/use-intersection/use-intersection.mjs +29 -25
  262. package/esm/use-intersection/use-intersection.mjs.map +1 -1
  263. package/esm/use-interval/use-interval.mjs +42 -39
  264. package/esm/use-interval/use-interval.mjs.map +1 -1
  265. package/esm/use-is-first-render/use-is-first-render.mjs +12 -11
  266. package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -1
  267. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +6 -5
  268. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -1
  269. package/esm/use-list-state/use-list-state.mjs +74 -71
  270. package/esm/use-list-state/use-list-state.mjs.map +1 -1
  271. package/esm/use-local-storage/create-storage.mjs +127 -137
  272. package/esm/use-local-storage/create-storage.mjs.map +1 -1
  273. package/esm/use-local-storage/use-local-storage.mjs +7 -6
  274. package/esm/use-local-storage/use-local-storage.mjs.map +1 -1
  275. package/esm/use-logger/use-logger.mjs +15 -14
  276. package/esm/use-logger/use-logger.mjs.map +1 -1
  277. package/esm/use-long-press/use-long-press.mjs +49 -56
  278. package/esm/use-long-press/use-long-press.mjs.map +1 -1
  279. package/esm/use-map/use-map.mjs +24 -23
  280. package/esm/use-map/use-map.mjs.map +1 -1
  281. package/esm/use-mask/use-mask.mjs +453 -0
  282. package/esm/use-mask/use-mask.mjs.map +1 -0
  283. package/esm/use-media-query/use-media-query.mjs +27 -31
  284. package/esm/use-media-query/use-media-query.mjs.map +1 -1
  285. package/esm/use-merged-ref/use-merged-ref.mjs +24 -33
  286. package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -1
  287. package/esm/use-mounted/use-mounted.mjs +9 -8
  288. package/esm/use-mounted/use-mounted.mjs.map +1 -1
  289. package/esm/use-mouse/use-mouse.mjs +55 -51
  290. package/esm/use-mouse/use-mouse.mjs.map +1 -1
  291. package/esm/use-move/use-move.mjs +98 -96
  292. package/esm/use-move/use-move.mjs.map +1 -1
  293. package/esm/use-mutation-observer/use-mutation-observer.mjs +45 -44
  294. package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -1
  295. package/esm/use-network/use-network.mjs +48 -42
  296. package/esm/use-network/use-network.mjs.map +1 -1
  297. package/esm/use-orientation/use-orientation.mjs +30 -39
  298. package/esm/use-orientation/use-orientation.mjs.map +1 -1
  299. package/esm/use-os/use-os.mjs +27 -50
  300. package/esm/use-os/use-os.mjs.map +1 -1
  301. package/esm/use-page-leave/use-page-leave.mjs +11 -9
  302. package/esm/use-page-leave/use-page-leave.mjs.map +1 -1
  303. package/esm/use-pagination/use-pagination.mjs +75 -85
  304. package/esm/use-pagination/use-pagination.mjs.map +1 -1
  305. package/esm/use-previous/use-previous.mjs +11 -10
  306. package/esm/use-previous/use-previous.mjs.map +1 -1
  307. package/esm/use-queue/use-queue.mjs +40 -35
  308. package/esm/use-queue/use-queue.mjs.map +1 -1
  309. package/esm/use-radial-move/use-radial-move.mjs +87 -92
  310. package/esm/use-radial-move/use-radial-move.mjs.map +1 -1
  311. package/esm/use-reduced-motion/use-reduced-motion.mjs +7 -6
  312. package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -1
  313. package/esm/use-resize-observer/use-resize-observer.mjs +55 -60
  314. package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -1
  315. package/esm/use-roving-index/use-roving-index.mjs +200 -0
  316. package/esm/use-roving-index/use-roving-index.mjs.map +1 -0
  317. package/esm/use-scroll-direction/use-scroll-direction.mjs +36 -0
  318. package/esm/use-scroll-direction/use-scroll-direction.mjs.map +1 -0
  319. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +128 -158
  320. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -1
  321. package/esm/use-scroll-spy/use-scroll-spy.mjs +58 -82
  322. package/esm/use-scroll-spy/use-scroll-spy.mjs.map +1 -1
  323. package/esm/use-scroller/use-scroller.mjs +128 -149
  324. package/esm/use-scroller/use-scroller.mjs.map +1 -1
  325. package/esm/use-selection/use-selection.mjs +61 -70
  326. package/esm/use-selection/use-selection.mjs.map +1 -1
  327. package/esm/use-session-storage/use-session-storage.mjs +7 -6
  328. package/esm/use-session-storage/use-session-storage.mjs.map +1 -1
  329. package/esm/use-set/use-set.mjs +60 -71
  330. package/esm/use-set/use-set.mjs.map +1 -1
  331. package/esm/use-set-state/use-set-state.mjs +11 -14
  332. package/esm/use-set-state/use-set-state.mjs.map +1 -1
  333. package/esm/use-shallow-effect/use-shallow-effect.mjs +20 -29
  334. package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -1
  335. package/esm/use-splitter/use-splitter.mjs +433 -0
  336. package/esm/use-splitter/use-splitter.mjs.map +1 -0
  337. package/esm/use-state-history/use-state-history.mjs +47 -38
  338. package/esm/use-state-history/use-state-history.mjs.map +1 -1
  339. package/esm/use-text-selection/use-text-selection.mjs +19 -18
  340. package/esm/use-text-selection/use-text-selection.mjs.map +1 -1
  341. package/esm/use-throttled-callback/use-throttled-callback.mjs +37 -46
  342. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -1
  343. package/esm/use-throttled-state/use-throttled-state.mjs +11 -10
  344. package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -1
  345. package/esm/use-throttled-value/use-throttled-value.mjs +18 -20
  346. package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -1
  347. package/esm/use-timeout/use-timeout.mjs +27 -30
  348. package/esm/use-timeout/use-timeout.mjs.map +1 -1
  349. package/esm/use-toggle/use-toggle.mjs +12 -11
  350. package/esm/use-toggle/use-toggle.mjs.map +1 -1
  351. package/esm/use-uncontrolled/use-uncontrolled.mjs +22 -23
  352. package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -1
  353. package/esm/use-validated-state/use-validated-state.mjs +21 -22
  354. package/esm/use-validated-state/use-validated-state.mjs.map +1 -1
  355. package/esm/use-viewport-size/use-viewport-size.mjs +22 -20
  356. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -1
  357. package/esm/use-window-event/use-window-event.mjs +11 -9
  358. package/esm/use-window-event/use-window-event.mjs.map +1 -1
  359. package/esm/use-window-scroll/use-window-scroll.mjs +30 -24
  360. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -1
  361. package/esm/utils/clamp/clamp.mjs +9 -13
  362. package/esm/utils/clamp/clamp.mjs.map +1 -1
  363. package/esm/utils/lower-first/lower-first.mjs +6 -4
  364. package/esm/utils/lower-first/lower-first.mjs.map +1 -1
  365. package/esm/utils/random-id/random-id.mjs +6 -4
  366. package/esm/utils/random-id/random-id.mjs.map +1 -1
  367. package/esm/utils/range/range.mjs +8 -9
  368. package/esm/utils/range/range.mjs.map +1 -1
  369. package/esm/utils/shallow-equal/shallow-equal.mjs +17 -27
  370. package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -1
  371. package/esm/utils/upper-first/upper-first.mjs +6 -4
  372. package/esm/utils/upper-first/upper-first.mjs.map +1 -1
  373. package/esm/utils/use-callback-ref/use-callback-ref.mjs +11 -10
  374. package/esm/utils/use-callback-ref/use-callback-ref.mjs.map +1 -1
  375. package/lib/index.d.mts +2 -0
  376. package/lib/index.d.ts +2 -0
  377. package/lib/use-drag/use-drag.d.ts +60 -0
  378. package/lib/use-headroom/use-headroom.d.ts +11 -2
  379. package/lib/use-mask/use-mask.d.ts +60 -0
  380. package/lib/use-roving-index/use-roving-index.d.ts +49 -0
  381. package/lib/use-scroll-direction/use-scroll-direction.d.ts +2 -0
  382. package/lib/use-splitter/use-splitter.d.ts +94 -0
  383. package/package.json +2 -2
  384. package/cjs/index.cjs.map +0 -1
  385. package/esm/index.mjs.map +0 -1
@@ -1,18 +1,17 @@
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-document-visibility/use-document-visibility.ts
6
4
  function useDocumentVisibility() {
7
- const [documentVisibility, setDocumentVisibility] = react.useState("visible");
8
- react.useEffect(() => {
9
- setDocumentVisibility(document.visibilityState);
10
- const listener = () => setDocumentVisibility(document.visibilityState);
11
- document.addEventListener("visibilitychange", listener);
12
- return () => document.removeEventListener("visibilitychange", listener);
13
- }, []);
14
- return documentVisibility;
5
+ const [documentVisibility, setDocumentVisibility] = (0, react.useState)("visible");
6
+ (0, react.useEffect)(() => {
7
+ setDocumentVisibility(document.visibilityState);
8
+ const listener = () => setDocumentVisibility(document.visibilityState);
9
+ document.addEventListener("visibilitychange", listener);
10
+ return () => document.removeEventListener("visibilitychange", listener);
11
+ }, []);
12
+ return documentVisibility;
15
13
  }
16
-
14
+ //#endregion
17
15
  exports.useDocumentVisibility = useDocumentVisibility;
18
- //# sourceMappingURL=use-document-visibility.cjs.map
16
+
17
+ //# sourceMappingURL=use-document-visibility.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-document-visibility.cjs","sources":["../../src/use-document-visibility/use-document-visibility.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport function useDocumentVisibility(): DocumentVisibilityState {\n const [documentVisibility, setDocumentVisibility] = useState<DocumentVisibilityState>('visible');\n\n useEffect(() => {\n setDocumentVisibility(document.visibilityState);\n const listener = () => setDocumentVisibility(document.visibilityState);\n document.addEventListener('visibilitychange', listener);\n return () => document.removeEventListener('visibilitychange', listener);\n }, []);\n\n return documentVisibility;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,qBAAA,CAAA,CAAA,CAAiD,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AAE/F,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,eAAe,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,qBAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA;AACrE,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAoB,QAAQ,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAAA,CAAA,CACxE,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AAEL,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}
1
+ {"version":3,"file":"use-document-visibility.cjs","names":[],"sources":["../../src/use-document-visibility/use-document-visibility.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport function useDocumentVisibility(): DocumentVisibilityState {\n const [documentVisibility, setDocumentVisibility] = useState<DocumentVisibilityState>('visible');\n\n useEffect(() => {\n setDocumentVisibility(document.visibilityState);\n const listener = () => setDocumentVisibility(document.visibilityState);\n document.addEventListener('visibilitychange', listener);\n return () => document.removeEventListener('visibilitychange', listener);\n }, []);\n\n return documentVisibility;\n}\n"],"mappings":";;;AAEA,SAAgB,wBAAiD;CAC/D,MAAM,CAAC,oBAAoB,0BAAA,GAAA,MAAA,UAA2D,UAAU;AAEhG,EAAA,GAAA,MAAA,iBAAgB;AACd,wBAAsB,SAAS,gBAAgB;EAC/C,MAAM,iBAAiB,sBAAsB,SAAS,gBAAgB;AACtE,WAAS,iBAAiB,oBAAoB,SAAS;AACvD,eAAa,SAAS,oBAAoB,oBAAoB,SAAS;IACtE,EAAE,CAAC;AAEN,QAAO"}
@@ -0,0 +1,266 @@
1
+ "use client";
2
+ let react = require("react");
3
+ //#region packages/@mantine/hooks/src/use-drag/use-drag.ts
4
+ const VELOCITY_DECAY_MS = 100;
5
+ function sign(n) {
6
+ if (n > 0) return 1;
7
+ if (n < 0) return -1;
8
+ return 0;
9
+ }
10
+ function getThresholdVector(threshold) {
11
+ const t = threshold ?? 0;
12
+ if (typeof t === "number") return [t, t];
13
+ return t;
14
+ }
15
+ function createInitialState() {
16
+ return {
17
+ isActive: false,
18
+ pointerId: -1,
19
+ startXY: [0, 0],
20
+ prevXY: [0, 0],
21
+ startTimestamp: 0,
22
+ prevTimestamp: 0,
23
+ thresholdMet: false,
24
+ firstFired: false,
25
+ lockedAxis: null,
26
+ canceled: false,
27
+ lastVelocity: [0, 0]
28
+ };
29
+ }
30
+ function useDrag(handler, options = {}) {
31
+ const [active, setActive] = (0, react.useState)(false);
32
+ const handlerRef = (0, react.useRef)(handler);
33
+ handlerRef.current = handler;
34
+ const optionsRef = (0, react.useRef)(options);
35
+ optionsRef.current = options;
36
+ const stateRef = (0, react.useRef)(createInitialState());
37
+ const documentControllerRef = (0, react.useRef)(null);
38
+ return {
39
+ ref: (0, react.useCallback)((node) => {
40
+ if (!node) return;
41
+ const elementController = new AbortController();
42
+ const applyAxisConstraint = (v) => {
43
+ const opts = optionsRef.current;
44
+ const s = stateRef.current;
45
+ if (opts.axis === "x") return [v[0], 0];
46
+ if (opts.axis === "y") return [0, v[1]];
47
+ if (opts.axis === "lock") {
48
+ if (s.lockedAxis === null) {
49
+ const t = opts.axisThreshold ?? 1;
50
+ if (Math.abs(v[0]) > t || Math.abs(v[1]) > t) s.lockedAxis = Math.abs(v[0]) >= Math.abs(v[1]) ? "x" : "y";
51
+ }
52
+ if (s.lockedAxis === "x") return [v[0], 0];
53
+ if (s.lockedAxis === "y") return [0, v[1]];
54
+ }
55
+ return v;
56
+ };
57
+ const resetDrag = () => {
58
+ const s = stateRef.current;
59
+ s.isActive = false;
60
+ s.pointerId = -1;
61
+ s.thresholdMet = false;
62
+ s.firstFired = false;
63
+ s.lockedAxis = null;
64
+ s.canceled = false;
65
+ setActive(false);
66
+ document.body.style.userSelect = "";
67
+ document.body.style.webkitUserSelect = "";
68
+ documentControllerRef.current?.abort();
69
+ documentControllerRef.current = null;
70
+ };
71
+ const cancel = () => {
72
+ if (stateRef.current.isActive) {
73
+ stateRef.current.canceled = true;
74
+ resetDrag();
75
+ }
76
+ };
77
+ const activateDrag = () => {
78
+ setActive(true);
79
+ document.body.style.userSelect = "none";
80
+ document.body.style.webkitUserSelect = "none";
81
+ };
82
+ const onPointerDown = (event) => {
83
+ if (optionsRef.current.enabled === false) return;
84
+ if (event.button !== 0) return;
85
+ if (stateRef.current.isActive) return;
86
+ const s = stateRef.current;
87
+ s.isActive = true;
88
+ s.pointerId = event.pointerId;
89
+ s.startXY = [event.clientX, event.clientY];
90
+ s.prevXY = [event.clientX, event.clientY];
91
+ s.startTimestamp = event.timeStamp;
92
+ s.prevTimestamp = event.timeStamp;
93
+ s.thresholdMet = false;
94
+ s.firstFired = false;
95
+ s.lockedAxis = null;
96
+ s.canceled = false;
97
+ s.lastVelocity = [0, 0];
98
+ const [tx, ty] = getThresholdVector(optionsRef.current.threshold);
99
+ if (tx === 0 && ty === 0) {
100
+ s.thresholdMet = true;
101
+ s.firstFired = true;
102
+ activateDrag();
103
+ handlerRef.current({
104
+ xy: [event.clientX, event.clientY],
105
+ initial: [event.clientX, event.clientY],
106
+ movement: [0, 0],
107
+ delta: [0, 0],
108
+ distance: [0, 0],
109
+ direction: [0, 0],
110
+ velocity: [0, 0],
111
+ elapsedTime: 0,
112
+ first: true,
113
+ last: false,
114
+ active: true,
115
+ tap: false,
116
+ canceled: false,
117
+ cancel,
118
+ event
119
+ });
120
+ }
121
+ documentControllerRef.current?.abort();
122
+ documentControllerRef.current = new AbortController();
123
+ const sig = documentControllerRef.current.signal;
124
+ document.addEventListener("pointermove", onPointerMove, { signal: sig });
125
+ document.addEventListener("pointerup", onPointerUp, { signal: sig });
126
+ document.addEventListener("pointercancel", onPointerCancel, { signal: sig });
127
+ };
128
+ const onPointerMove = (event) => {
129
+ const s = stateRef.current;
130
+ if (!s.isActive || event.pointerId !== s.pointerId) return;
131
+ const rawMovement = [event.clientX - s.startXY[0], event.clientY - s.startXY[1]];
132
+ if (!s.thresholdMet) {
133
+ const [tx, ty] = getThresholdVector(optionsRef.current.threshold);
134
+ if (Math.abs(rawMovement[0]) < tx && Math.abs(rawMovement[1]) < ty) {
135
+ s.prevXY = [event.clientX, event.clientY];
136
+ s.prevTimestamp = event.timeStamp;
137
+ return;
138
+ }
139
+ s.thresholdMet = true;
140
+ activateDrag();
141
+ }
142
+ const movement = applyAxisConstraint(rawMovement);
143
+ const delta = applyAxisConstraint([event.clientX - s.prevXY[0], event.clientY - s.prevXY[1]]);
144
+ const timeDelta = event.timeStamp - s.prevTimestamp;
145
+ const velocity = timeDelta > 0 ? [Math.abs(delta[0]) / timeDelta, Math.abs(delta[1]) / timeDelta] : s.lastVelocity;
146
+ s.lastVelocity = velocity;
147
+ const isFirst = !s.firstFired;
148
+ s.firstFired = true;
149
+ s.prevXY = [event.clientX, event.clientY];
150
+ s.prevTimestamp = event.timeStamp;
151
+ handlerRef.current({
152
+ xy: [event.clientX, event.clientY],
153
+ initial: [...s.startXY],
154
+ movement,
155
+ delta,
156
+ distance: [Math.abs(movement[0]), Math.abs(movement[1])],
157
+ direction: [sign(delta[0]), sign(delta[1])],
158
+ velocity,
159
+ elapsedTime: event.timeStamp - s.startTimestamp,
160
+ first: isFirst,
161
+ last: false,
162
+ active: true,
163
+ tap: false,
164
+ canceled: false,
165
+ cancel,
166
+ event
167
+ });
168
+ };
169
+ const onPointerUp = (event) => {
170
+ const s = stateRef.current;
171
+ if (!s.isActive || event.pointerId !== s.pointerId) return;
172
+ const opts = optionsRef.current;
173
+ if (!s.thresholdMet) {
174
+ if (opts.filterTaps) {
175
+ const mov = applyAxisConstraint([event.clientX - s.startXY[0], event.clientY - s.startXY[1]]);
176
+ const dist = [Math.abs(mov[0]), Math.abs(mov[1])];
177
+ const isTap = Math.max(dist[0], dist[1]) < (opts.tapThreshold ?? 3);
178
+ handlerRef.current({
179
+ xy: [event.clientX, event.clientY],
180
+ initial: [...s.startXY],
181
+ movement: mov,
182
+ delta: mov,
183
+ distance: dist,
184
+ direction: [sign(mov[0]), sign(mov[1])],
185
+ velocity: [0, 0],
186
+ elapsedTime: event.timeStamp - s.startTimestamp,
187
+ first: true,
188
+ last: true,
189
+ active: false,
190
+ tap: isTap,
191
+ canceled: false,
192
+ cancel,
193
+ event
194
+ });
195
+ }
196
+ resetDrag();
197
+ return;
198
+ }
199
+ const movement = applyAxisConstraint([event.clientX - s.startXY[0], event.clientY - s.startXY[1]]);
200
+ const distance = [Math.abs(movement[0]), Math.abs(movement[1])];
201
+ const delta = applyAxisConstraint([event.clientX - s.prevXY[0], event.clientY - s.prevXY[1]]);
202
+ const velocity = event.timeStamp - s.prevTimestamp > VELOCITY_DECAY_MS ? [0, 0] : s.lastVelocity;
203
+ const maxDistance = Math.max(distance[0], distance[1]);
204
+ const tap = opts.filterTaps === true && maxDistance < (opts.tapThreshold ?? 3);
205
+ handlerRef.current({
206
+ xy: [event.clientX, event.clientY],
207
+ initial: [...s.startXY],
208
+ movement,
209
+ delta,
210
+ distance,
211
+ direction: [sign(delta[0]), sign(delta[1])],
212
+ velocity,
213
+ elapsedTime: event.timeStamp - s.startTimestamp,
214
+ first: !s.firstFired,
215
+ last: true,
216
+ active: false,
217
+ tap,
218
+ canceled: false,
219
+ cancel,
220
+ event
221
+ });
222
+ resetDrag();
223
+ };
224
+ const onPointerCancel = (event) => {
225
+ const s = stateRef.current;
226
+ if (!s.isActive || event.pointerId !== s.pointerId) return;
227
+ const movement = applyAxisConstraint([event.clientX - s.startXY[0], event.clientY - s.startXY[1]]);
228
+ handlerRef.current({
229
+ xy: [event.clientX, event.clientY],
230
+ initial: [...s.startXY],
231
+ movement,
232
+ delta: [0, 0],
233
+ distance: [Math.abs(movement[0]), Math.abs(movement[1])],
234
+ direction: [0, 0],
235
+ velocity: [0, 0],
236
+ elapsedTime: event.timeStamp - s.startTimestamp,
237
+ first: !s.firstFired,
238
+ last: true,
239
+ active: false,
240
+ tap: false,
241
+ canceled: true,
242
+ cancel,
243
+ event
244
+ });
245
+ resetDrag();
246
+ };
247
+ node.addEventListener("pointerdown", onPointerDown, { signal: elementController.signal });
248
+ return () => {
249
+ elementController.abort();
250
+ documentControllerRef.current?.abort();
251
+ documentControllerRef.current = null;
252
+ if (stateRef.current.isActive) {
253
+ stateRef.current.isActive = false;
254
+ setActive(false);
255
+ document.body.style.userSelect = "";
256
+ document.body.style.webkitUserSelect = "";
257
+ }
258
+ };
259
+ }, []),
260
+ active
261
+ };
262
+ }
263
+ //#endregion
264
+ exports.useDrag = useDrag;
265
+
266
+ //# sourceMappingURL=use-drag.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-drag.cjs","names":[],"sources":["../../src/use-drag/use-drag.ts"],"sourcesContent":["// Required to disable for webkit-user-select, although deprecated, it is still required for Safari support\n/* eslint-disable @typescript-eslint/no-deprecated */\nimport { useCallback, useRef, useState } from 'react';\n\ntype Vector2 = [number, number];\n\nexport interface UseDragState {\n /** Current pointer position [x, y] */\n xy: Vector2;\n\n /** Position where the gesture started [x, y] */\n initial: Vector2;\n\n /** Displacement from start [x, y], respects axis constraint */\n movement: Vector2;\n\n /** Change since previous event [x, y] */\n delta: Vector2;\n\n /** Absolute distance per axis [x, y] */\n distance: Vector2;\n\n /** Movement direction per axis: -1, 0, or 1 */\n direction: Vector2;\n\n /** Speed per axis in px/ms */\n velocity: Vector2;\n\n /** Time since drag started in ms */\n elapsedTime: number;\n\n /** `true` on the first handler call after the threshold is met */\n first: boolean;\n\n /** `true` on the last handler call (pointer released or canceled) */\n last: boolean;\n\n /** `true` while the gesture is ongoing */\n active: boolean;\n\n /** `true` when the gesture qualifies as a tap (requires `filterTaps: true`) */\n tap: boolean;\n\n /** `true` when the gesture was interrupted by a `pointercancel` event */\n canceled: boolean;\n\n /** Function to programmatically cancel the current gesture */\n cancel: () => void;\n\n /** The source `PointerEvent` */\n event: PointerEvent;\n}\n\nexport interface UseDragOptions {\n /** Constrain movement to a specific axis. `'lock'` locks to whichever axis has more movement after `axisThreshold` is exceeded. */\n axis?: 'x' | 'y' | 'lock';\n\n /** Movement in px required to determine axis when `axis` is `'lock'`, `1` by default */\n axisThreshold?: number;\n\n /** When `true`, the last state includes `tap: true` when total distance is below `tapThreshold`, `false` by default */\n filterTaps?: boolean;\n\n /** Max displacement in px to still be considered a tap, `3` by default */\n tapThreshold?: number;\n\n /** Minimum displacement in px before the drag activates. Can be a number (both axes) or `[x, y]`. `0` by default */\n threshold?: number | Vector2;\n\n /** Enable or disable the hook, `true` by default */\n enabled?: boolean;\n}\n\nexport interface UseDragReturnValue<T extends HTMLElement = any> {\n /** Ref callback to attach to the draggable element */\n ref: React.RefCallback<T | null>;\n\n /** `true` while the element is being dragged */\n active: boolean;\n}\n\nconst VELOCITY_DECAY_MS = 100;\n\nfunction sign(n: number): -1 | 0 | 1 {\n if (n > 0) {\n return 1;\n }\n if (n < 0) {\n return -1;\n }\n return 0;\n}\n\nfunction getThresholdVector(threshold: number | Vector2 | undefined): Vector2 {\n const t = threshold ?? 0;\n if (typeof t === 'number') {\n return [t, t];\n }\n return t;\n}\n\ninterface DragInternalState {\n isActive: boolean;\n pointerId: number;\n startXY: Vector2;\n prevXY: Vector2;\n startTimestamp: number;\n prevTimestamp: number;\n thresholdMet: boolean;\n firstFired: boolean;\n lockedAxis: 'x' | 'y' | null;\n canceled: boolean;\n lastVelocity: Vector2;\n}\n\nfunction createInitialState(): DragInternalState {\n return {\n isActive: false,\n pointerId: -1,\n startXY: [0, 0],\n prevXY: [0, 0],\n startTimestamp: 0,\n prevTimestamp: 0,\n thresholdMet: false,\n firstFired: false,\n lockedAxis: null,\n canceled: false,\n lastVelocity: [0, 0],\n };\n}\n\nexport function useDrag<T extends HTMLElement = any>(\n handler: (state: UseDragState) => void,\n options: UseDragOptions = {}\n): UseDragReturnValue<T> {\n const [active, setActive] = useState(false);\n\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n const stateRef = useRef<DragInternalState>(createInitialState());\n const documentControllerRef = useRef<AbortController | null>(null);\n\n const refCallback: React.RefCallback<T | null> = useCallback((node) => {\n if (!node) {\n return undefined;\n }\n\n const elementController = new AbortController();\n\n const applyAxisConstraint = (v: Vector2): Vector2 => {\n const opts = optionsRef.current;\n const s = stateRef.current;\n\n if (opts.axis === 'x') {\n return [v[0], 0];\n }\n if (opts.axis === 'y') {\n return [0, v[1]];\n }\n if (opts.axis === 'lock') {\n if (s.lockedAxis === null) {\n const t = opts.axisThreshold ?? 1;\n if (Math.abs(v[0]) > t || Math.abs(v[1]) > t) {\n s.lockedAxis = Math.abs(v[0]) >= Math.abs(v[1]) ? 'x' : 'y';\n }\n }\n if (s.lockedAxis === 'x') {\n return [v[0], 0];\n }\n if (s.lockedAxis === 'y') {\n return [0, v[1]];\n }\n }\n return v;\n };\n\n const resetDrag = () => {\n const s = stateRef.current;\n s.isActive = false;\n s.pointerId = -1;\n s.thresholdMet = false;\n s.firstFired = false;\n s.lockedAxis = null;\n s.canceled = false;\n setActive(false);\n document.body.style.userSelect = '';\n document.body.style.webkitUserSelect = '';\n documentControllerRef.current?.abort();\n documentControllerRef.current = null;\n };\n\n const cancel = () => {\n if (stateRef.current.isActive) {\n stateRef.current.canceled = true;\n resetDrag();\n }\n };\n\n const activateDrag = () => {\n setActive(true);\n document.body.style.userSelect = 'none';\n document.body.style.webkitUserSelect = 'none';\n };\n\n const onPointerDown = (event: PointerEvent) => {\n if (optionsRef.current.enabled === false) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (stateRef.current.isActive) {\n return;\n }\n\n const s = stateRef.current;\n s.isActive = true;\n s.pointerId = event.pointerId;\n s.startXY = [event.clientX, event.clientY];\n s.prevXY = [event.clientX, event.clientY];\n s.startTimestamp = event.timeStamp;\n s.prevTimestamp = event.timeStamp;\n s.thresholdMet = false;\n s.firstFired = false;\n s.lockedAxis = null;\n s.canceled = false;\n s.lastVelocity = [0, 0];\n\n const [tx, ty] = getThresholdVector(optionsRef.current.threshold);\n if (tx === 0 && ty === 0) {\n s.thresholdMet = true;\n s.firstFired = true;\n activateDrag();\n\n handlerRef.current({\n xy: [event.clientX, event.clientY],\n initial: [event.clientX, event.clientY],\n movement: [0, 0],\n delta: [0, 0],\n distance: [0, 0],\n direction: [0, 0],\n velocity: [0, 0],\n elapsedTime: 0,\n first: true,\n last: false,\n active: true,\n tap: false,\n canceled: false,\n cancel,\n event,\n });\n }\n\n documentControllerRef.current?.abort();\n documentControllerRef.current = new AbortController();\n const sig = documentControllerRef.current.signal;\n\n document.addEventListener('pointermove', onPointerMove, { signal: sig });\n document.addEventListener('pointerup', onPointerUp, { signal: sig });\n document.addEventListener('pointercancel', onPointerCancel, { signal: sig });\n };\n\n const onPointerMove = (event: PointerEvent) => {\n const s = stateRef.current;\n if (!s.isActive || event.pointerId !== s.pointerId) {\n return;\n }\n\n const rawMovement: Vector2 = [event.clientX - s.startXY[0], event.clientY - s.startXY[1]];\n\n if (!s.thresholdMet) {\n const [tx, ty] = getThresholdVector(optionsRef.current.threshold);\n if (Math.abs(rawMovement[0]) < tx && Math.abs(rawMovement[1]) < ty) {\n s.prevXY = [event.clientX, event.clientY];\n s.prevTimestamp = event.timeStamp;\n return;\n }\n s.thresholdMet = true;\n activateDrag();\n }\n\n const movement = applyAxisConstraint(rawMovement);\n const rawDelta: Vector2 = [event.clientX - s.prevXY[0], event.clientY - s.prevXY[1]];\n const delta = applyAxisConstraint(rawDelta);\n const timeDelta = event.timeStamp - s.prevTimestamp;\n const velocity: Vector2 =\n timeDelta > 0\n ? [Math.abs(delta[0]) / timeDelta, Math.abs(delta[1]) / timeDelta]\n : s.lastVelocity;\n\n s.lastVelocity = velocity;\n const isFirst = !s.firstFired;\n s.firstFired = true;\n s.prevXY = [event.clientX, event.clientY];\n s.prevTimestamp = event.timeStamp;\n\n handlerRef.current({\n xy: [event.clientX, event.clientY],\n initial: [...s.startXY],\n movement,\n delta,\n distance: [Math.abs(movement[0]), Math.abs(movement[1])],\n direction: [sign(delta[0]), sign(delta[1])],\n velocity,\n elapsedTime: event.timeStamp - s.startTimestamp,\n first: isFirst,\n last: false,\n active: true,\n tap: false,\n canceled: false,\n cancel,\n event,\n });\n };\n\n const onPointerUp = (event: PointerEvent) => {\n const s = stateRef.current;\n if (!s.isActive || event.pointerId !== s.pointerId) {\n return;\n }\n\n const opts = optionsRef.current;\n\n if (!s.thresholdMet) {\n if (opts.filterTaps) {\n const rawMov: Vector2 = [event.clientX - s.startXY[0], event.clientY - s.startXY[1]];\n const mov = applyAxisConstraint(rawMov);\n const dist: Vector2 = [Math.abs(mov[0]), Math.abs(mov[1])];\n const maxDist = Math.max(dist[0], dist[1]);\n const isTap = maxDist < (opts.tapThreshold ?? 3);\n\n handlerRef.current({\n xy: [event.clientX, event.clientY],\n initial: [...s.startXY],\n movement: mov,\n delta: mov,\n distance: dist,\n direction: [sign(mov[0]), sign(mov[1])],\n velocity: [0, 0],\n elapsedTime: event.timeStamp - s.startTimestamp,\n first: true,\n last: true,\n active: false,\n tap: isTap,\n canceled: false,\n cancel,\n event,\n });\n }\n resetDrag();\n return;\n }\n\n const rawMovement: Vector2 = [event.clientX - s.startXY[0], event.clientY - s.startXY[1]];\n const movement = applyAxisConstraint(rawMovement);\n const distance: Vector2 = [Math.abs(movement[0]), Math.abs(movement[1])];\n const rawDelta: Vector2 = [event.clientX - s.prevXY[0], event.clientY - s.prevXY[1]];\n const delta = applyAxisConstraint(rawDelta);\n\n const timeSinceLastMove = event.timeStamp - s.prevTimestamp;\n const velocity: Vector2 = timeSinceLastMove > VELOCITY_DECAY_MS ? [0, 0] : s.lastVelocity;\n\n const maxDistance = Math.max(distance[0], distance[1]);\n const tap = opts.filterTaps === true && maxDistance < (opts.tapThreshold ?? 3);\n\n handlerRef.current({\n xy: [event.clientX, event.clientY],\n initial: [...s.startXY],\n movement,\n delta,\n distance,\n direction: [sign(delta[0]), sign(delta[1])],\n velocity,\n elapsedTime: event.timeStamp - s.startTimestamp,\n first: !s.firstFired,\n last: true,\n active: false,\n tap,\n canceled: false,\n cancel,\n event,\n });\n\n resetDrag();\n };\n\n const onPointerCancel = (event: PointerEvent) => {\n const s = stateRef.current;\n if (!s.isActive || event.pointerId !== s.pointerId) {\n return;\n }\n\n const rawMovement: Vector2 = [event.clientX - s.startXY[0], event.clientY - s.startXY[1]];\n const movement = applyAxisConstraint(rawMovement);\n\n handlerRef.current({\n xy: [event.clientX, event.clientY],\n initial: [...s.startXY],\n movement,\n delta: [0, 0],\n distance: [Math.abs(movement[0]), Math.abs(movement[1])],\n direction: [0, 0],\n velocity: [0, 0],\n elapsedTime: event.timeStamp - s.startTimestamp,\n first: !s.firstFired,\n last: true,\n active: false,\n tap: false,\n canceled: true,\n cancel,\n event,\n });\n\n resetDrag();\n };\n\n node.addEventListener('pointerdown', onPointerDown, {\n signal: elementController.signal,\n });\n\n return () => {\n elementController.abort();\n documentControllerRef.current?.abort();\n documentControllerRef.current = null;\n if (stateRef.current.isActive) {\n stateRef.current.isActive = false;\n setActive(false);\n document.body.style.userSelect = '';\n document.body.style.webkitUserSelect = '';\n }\n };\n }, []);\n\n return { ref: refCallback, active };\n}\n\nexport namespace useDrag {\n export type State = UseDragState;\n export type Options = UseDragOptions;\n export type ReturnValue<T extends HTMLElement = any> = UseDragReturnValue<T>;\n}\n"],"mappings":"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"}
@@ -1,35 +1,26 @@
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-event-listener/use-event-listener.ts
6
4
  function useEventListener(type, listener, options) {
7
- const previousListener = react.useRef(null);
8
- const previousNode = react.useRef(null);
9
- const callbackRef = react.useCallback(
10
- (node) => {
11
- if (!node) {
12
- return;
13
- }
14
- if (previousNode.current && previousListener.current) {
15
- previousNode.current.removeEventListener(type, previousListener.current, options);
16
- }
17
- node.addEventListener(type, listener, options);
18
- previousNode.current = node;
19
- previousListener.current = listener;
20
- },
21
- [type, listener, options]
22
- );
23
- react.useEffect(
24
- () => () => {
25
- if (previousNode.current && previousListener.current) {
26
- previousNode.current.removeEventListener(type, previousListener.current, options);
27
- }
28
- },
29
- [type, options]
30
- );
31
- return callbackRef;
5
+ const previousListener = (0, react.useRef)(null);
6
+ const previousNode = (0, react.useRef)(null);
7
+ const callbackRef = (0, react.useCallback)((node) => {
8
+ if (!node) return;
9
+ if (previousNode.current && previousListener.current) previousNode.current.removeEventListener(type, previousListener.current, options);
10
+ node.addEventListener(type, listener, options);
11
+ previousNode.current = node;
12
+ previousListener.current = listener;
13
+ }, [
14
+ type,
15
+ listener,
16
+ options
17
+ ]);
18
+ (0, react.useEffect)(() => () => {
19
+ if (previousNode.current && previousListener.current) previousNode.current.removeEventListener(type, previousListener.current, options);
20
+ }, [type, options]);
21
+ return callbackRef;
32
22
  }
33
-
23
+ //#endregion
34
24
  exports.useEventListener = useEventListener;
35
- //# sourceMappingURL=use-event-listener.cjs.map
25
+
26
+ //# sourceMappingURL=use-event-listener.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-event-listener.cjs","sources":["../../src/use-event-listener/use-event-listener.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nexport function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement = any>(\n type: K,\n listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n): React.RefCallback<T | null> {\n const previousListener = useRef<Function | null>(null);\n const previousNode = useRef<T | null>(null);\n\n const callbackRef: React.RefCallback<T | null> = useCallback(\n (node) => {\n if (!node) {\n return;\n }\n\n if (previousNode.current && previousListener.current) {\n previousNode.current.removeEventListener(type, previousListener.current as any, options);\n }\n\n node.addEventListener(type, listener as any, options);\n previousNode.current = node;\n previousListener.current = listener;\n },\n [type, listener, options]\n );\n\n useEffect(\n () => () => {\n if (previousNode.current && previousListener.current) {\n previousNode.current.removeEventListener(type, previousListener.current as any, options);\n }\n },\n [type, options]\n );\n\n return callbackRef;\n}\n"],"names":["useRef","useCallback","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-event-listener.cjs","names":[],"sources":["../../src/use-event-listener/use-event-listener.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nexport function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement = any>(\n type: K,\n listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n): React.RefCallback<T | null> {\n const previousListener = useRef<Function | null>(null);\n const previousNode = useRef<T | null>(null);\n\n const callbackRef: React.RefCallback<T | null> = useCallback(\n (node) => {\n if (!node) {\n return;\n }\n\n if (previousNode.current && previousListener.current) {\n previousNode.current.removeEventListener(type, previousListener.current as any, options);\n }\n\n node.addEventListener(type, listener as any, options);\n previousNode.current = node;\n previousListener.current = listener;\n },\n [type, listener, options]\n );\n\n useEffect(\n () => () => {\n if (previousNode.current && previousListener.current) {\n previousNode.current.removeEventListener(type, previousListener.current as any, options);\n }\n },\n [type, options]\n );\n\n return callbackRef;\n}\n"],"mappings":";;;AAEA,SAAgB,iBACd,MACA,UACA,SAC6B;CAC7B,MAAM,oBAAA,GAAA,MAAA,QAA2C,KAAK;CACtD,MAAM,gBAAA,GAAA,MAAA,QAAgC,KAAK;CAE3C,MAAM,eAAA,GAAA,MAAA,cACH,SAAS;AACR,MAAI,CAAC,KACH;AAGF,MAAI,aAAa,WAAW,iBAAiB,QAC3C,cAAa,QAAQ,oBAAoB,MAAM,iBAAiB,SAAgB,QAAQ;AAG1F,OAAK,iBAAiB,MAAM,UAAiB,QAAQ;AACrD,eAAa,UAAU;AACvB,mBAAiB,UAAU;IAE7B;EAAC;EAAM;EAAU;EAAQ,CAC1B;AAED,EAAA,GAAA,MAAA,uBACc;AACV,MAAI,aAAa,WAAW,iBAAiB,QAC3C,cAAa,QAAQ,oBAAoB,MAAM,iBAAiB,SAAgB,QAAQ;IAG5F,CAAC,MAAM,QAAQ,CAChB;AAED,QAAO"}
@@ -1,29 +1,24 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var react = require('react');
5
- var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
6
-
1
+ "use client";
2
+ const require_use_isomorphic_effect = require("../use-isomorphic-effect/use-isomorphic-effect.cjs");
3
+ let react = require("react");
4
+ //#region packages/@mantine/hooks/src/use-eye-dropper/use-eye-dropper.ts
7
5
  function useEyeDropper() {
8
- const [supported, setSupported] = react.useState(false);
9
- useIsomorphicEffect.useIsomorphicEffect(() => {
10
- setSupported(typeof window !== "undefined" && !isOpera() && "EyeDropper" in window);
11
- }, []);
12
- const open = react.useCallback(
13
- (options = {}) => {
14
- if (supported) {
15
- const eyeDropper = new window.EyeDropper();
16
- return eyeDropper.open(options);
17
- }
18
- return Promise.resolve(void 0);
19
- },
20
- [supported]
21
- );
22
- return { supported, open };
6
+ const [supported, setSupported] = (0, react.useState)(false);
7
+ require_use_isomorphic_effect.useIsomorphicEffect(() => {
8
+ setSupported(typeof window !== "undefined" && !isOpera() && "EyeDropper" in window);
9
+ }, []);
10
+ return {
11
+ supported,
12
+ open: (0, react.useCallback)((options = {}) => {
13
+ if (supported) return new window.EyeDropper().open(options);
14
+ return Promise.resolve(void 0);
15
+ }, [supported])
16
+ };
23
17
  }
24
18
  function isOpera() {
25
- return navigator.userAgent.includes("OPR");
19
+ return navigator.userAgent.includes("OPR");
26
20
  }
27
-
21
+ //#endregion
28
22
  exports.useEyeDropper = useEyeDropper;
29
- //# sourceMappingURL=use-eye-dropper.cjs.map
23
+
24
+ //# sourceMappingURL=use-eye-dropper.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-eye-dropper.cjs","sources":["../../src/use-eye-dropper/use-eye-dropper.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nexport interface EyeDropperOpenOptions {\n signal?: AbortSignal;\n}\n\nexport interface EyeDropperOpenReturnType {\n sRGBHex: string;\n}\n\nexport interface UseEyeDropperReturnValue {\n supported: boolean;\n open: (options?: EyeDropperOpenOptions) => Promise<EyeDropperOpenReturnType | undefined>;\n}\n\nexport function useEyeDropper(): UseEyeDropperReturnValue {\n const [supported, setSupported] = useState(false);\n\n useIsomorphicEffect(() => {\n setSupported(typeof window !== 'undefined' && !isOpera() && 'EyeDropper' in window);\n }, []);\n\n const open = useCallback(\n (options: EyeDropperOpenOptions = {}): Promise<EyeDropperOpenReturnType | undefined> => {\n if (supported) {\n const eyeDropper = new (window as any).EyeDropper();\n return eyeDropper.open(options);\n }\n\n return Promise.resolve(undefined);\n },\n [supported]\n );\n\n return { supported, open };\n}\n\nfunction isOpera() {\n return navigator.userAgent.includes('OPR');\n}\n"],"names":["useState","useIsomorphicEffect","useCallback"],"mappings":";;;;;;AAgBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,aAAA,CAAA,CAAA,CAA0C,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAEhD,CAAA,CAAAC,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,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAgB,MAAM,CAAA,CAAA;AAAA,CAAA,CACpF,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACX,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAqD,CAAA;AACtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,UAAA,CAAA,CAAW,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,EAAK,OAAO,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChC,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,MAAS,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAClC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AAAA,CAAA,CAAA,CACZ,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,IAAA,CAAA,CAAK,CAAA;AAC3B,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAA,CAAA,CAAA,CAAU,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,KAAK,CAAA,CAAA;AAC3C,CAAA;;"}
1
+ {"version":3,"file":"use-eye-dropper.cjs","names":[],"sources":["../../src/use-eye-dropper/use-eye-dropper.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nexport interface EyeDropperOpenOptions {\n signal?: AbortSignal;\n}\n\nexport interface EyeDropperOpenReturnType {\n sRGBHex: string;\n}\n\nexport interface UseEyeDropperReturnValue {\n supported: boolean;\n open: (options?: EyeDropperOpenOptions) => Promise<EyeDropperOpenReturnType | undefined>;\n}\n\nexport function useEyeDropper(): UseEyeDropperReturnValue {\n const [supported, setSupported] = useState(false);\n\n useIsomorphicEffect(() => {\n setSupported(typeof window !== 'undefined' && !isOpera() && 'EyeDropper' in window);\n }, []);\n\n const open = useCallback(\n (options: EyeDropperOpenOptions = {}): Promise<EyeDropperOpenReturnType | undefined> => {\n if (supported) {\n const eyeDropper = new (window as any).EyeDropper();\n return eyeDropper.open(options);\n }\n\n return Promise.resolve(undefined);\n },\n [supported]\n );\n\n return { supported, open };\n}\n\nfunction isOpera() {\n return navigator.userAgent.includes('OPR');\n}\n"],"mappings":";;;;AAgBA,SAAgB,gBAA0C;CACxD,MAAM,CAAC,WAAW,iBAAA,GAAA,MAAA,UAAyB,MAAM;AAEjD,+BAAA,0BAA0B;AACxB,eAAa,OAAO,WAAW,eAAe,CAAC,SAAS,IAAI,gBAAgB,OAAO;IAClF,EAAE,CAAC;AAcN,QAAO;EAAE;EAAW,OAAA,GAAA,MAAA,cAXjB,UAAiC,EAAE,KAAoD;AACtF,OAAI,UAEF,QADmB,IAAK,OAAe,YAAY,CACjC,KAAK,QAAQ;AAGjC,UAAO,QAAQ,QAAQ,KAAA,EAAU;KAEnC,CAAC,UAAU,CACZ;EAEyB;;AAG5B,SAAS,UAAU;AACjB,QAAO,UAAU,UAAU,SAAS,MAAM"}
@@ -1,37 +1,30 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var react = require('react');
5
- var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
6
-
1
+ "use client";
2
+ const require_use_isomorphic_effect = require("../use-isomorphic-effect/use-isomorphic-effect.cjs");
3
+ let react = require("react");
4
+ //#region packages/@mantine/hooks/src/use-favicon/use-favicon.ts
7
5
  const MIME_TYPES = {
8
- ico: "image/x-icon",
9
- png: "image/png",
10
- svg: "image/svg+xml",
11
- gif: "image/gif"
6
+ ico: "image/x-icon",
7
+ png: "image/png",
8
+ svg: "image/svg+xml",
9
+ gif: "image/gif"
12
10
  };
13
11
  function useFavicon(url) {
14
- const link = react.useRef(null);
15
- useIsomorphicEffect.useIsomorphicEffect(() => {
16
- if (!url) {
17
- return;
18
- }
19
- if (!link.current) {
20
- const existingElements = document.querySelectorAll('link[rel*="icon"]');
21
- existingElements.forEach((element2) => document.head.removeChild(element2));
22
- const element = document.createElement("link");
23
- element.rel = "shortcut icon";
24
- link.current = element;
25
- document.querySelector("head").appendChild(element);
26
- }
27
- const splittedUrl = url.split(".");
28
- link.current.setAttribute(
29
- "type",
30
- MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]
31
- );
32
- link.current.setAttribute("href", url);
33
- }, [url]);
12
+ const link = (0, react.useRef)(null);
13
+ require_use_isomorphic_effect.useIsomorphicEffect(() => {
14
+ if (!url) return;
15
+ if (!link.current) {
16
+ document.querySelectorAll("link[rel*=\"icon\"]").forEach((element) => document.head.removeChild(element));
17
+ const element = document.createElement("link");
18
+ element.rel = "shortcut icon";
19
+ link.current = element;
20
+ document.querySelector("head").appendChild(element);
21
+ }
22
+ const splittedUrl = url.split(".");
23
+ link.current.setAttribute("type", MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]);
24
+ link.current.setAttribute("href", url);
25
+ }, [url]);
34
26
  }
35
-
27
+ //#endregion
36
28
  exports.useFavicon = useFavicon;
37
- //# sourceMappingURL=use-favicon.cjs.map
29
+
30
+ //# sourceMappingURL=use-favicon.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-favicon.cjs","sources":["../../src/use-favicon/use-favicon.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nconst MIME_TYPES: Record<string, string> = {\n ico: 'image/x-icon',\n png: 'image/png',\n svg: 'image/svg+xml',\n gif: 'image/gif',\n};\n\nexport function useFavicon(url: string) {\n const link = useRef<HTMLLinkElement>(null);\n\n useIsomorphicEffect(() => {\n if (!url) {\n return;\n }\n\n if (!link.current) {\n const existingElements = document.querySelectorAll<HTMLLinkElement>('link[rel*=\"icon\"]');\n existingElements.forEach((element) => document.head.removeChild(element));\n\n const element = document.createElement('link');\n element.rel = 'shortcut icon';\n link.current = element;\n document.querySelector('head')!.appendChild(element);\n }\n\n const splittedUrl = url.split('.');\n link.current.setAttribute(\n 'type',\n MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]\n );\n link.current.setAttribute('href', url);\n }, [url]);\n}\n"],"names":["useRef","useIsomorphicEffect","element"],"mappings":"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"}
1
+ {"version":3,"file":"use-favicon.cjs","names":[],"sources":["../../src/use-favicon/use-favicon.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nconst MIME_TYPES: Record<string, string> = {\n ico: 'image/x-icon',\n png: 'image/png',\n svg: 'image/svg+xml',\n gif: 'image/gif',\n};\n\nexport function useFavicon(url: string) {\n const link = useRef<HTMLLinkElement>(null);\n\n useIsomorphicEffect(() => {\n if (!url) {\n return;\n }\n\n if (!link.current) {\n const existingElements = document.querySelectorAll<HTMLLinkElement>('link[rel*=\"icon\"]');\n existingElements.forEach((element) => document.head.removeChild(element));\n\n const element = document.createElement('link');\n element.rel = 'shortcut icon';\n link.current = element;\n document.querySelector('head')!.appendChild(element);\n }\n\n const splittedUrl = url.split('.');\n link.current.setAttribute(\n 'type',\n MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]\n );\n link.current.setAttribute('href', url);\n }, [url]);\n}\n"],"mappings":";;;;AAGA,MAAM,aAAqC;CACzC,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACN;AAED,SAAgB,WAAW,KAAa;CACtC,MAAM,QAAA,GAAA,MAAA,QAA+B,KAAK;AAE1C,+BAAA,0BAA0B;AACxB,MAAI,CAAC,IACH;AAGF,MAAI,CAAC,KAAK,SAAS;AACQ,YAAS,iBAAkC,sBAAoB,CACvE,SAAS,YAAY,SAAS,KAAK,YAAY,QAAQ,CAAC;GAEzE,MAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,WAAQ,MAAM;AACd,QAAK,UAAU;AACf,YAAS,cAAc,OAAO,CAAE,YAAY,QAAQ;;EAGtD,MAAM,cAAc,IAAI,MAAM,IAAI;AAClC,OAAK,QAAQ,aACX,QACA,WAAW,YAAY,YAAY,SAAS,GAAG,aAAa,EAC7D;AACD,OAAK,QAAQ,aAAa,QAAQ,IAAI;IACrC,CAAC,IAAI,CAAC"}