@mantine/hooks 7.0.0-alpha.8 → 7.0.0-alpha.9

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 (293) hide show
  1. package/cjs/use-callback-ref/use-callback-ref.js +5 -9
  2. package/cjs/use-callback-ref/use-callback-ref.js.map +1 -1
  3. package/cjs/use-click-outside/use-click-outside.js +21 -20
  4. package/cjs/use-click-outside/use-click-outside.js.map +1 -1
  5. package/cjs/use-clipboard/use-clipboard.js +26 -23
  6. package/cjs/use-clipboard/use-clipboard.js.map +1 -1
  7. package/cjs/use-color-scheme/use-color-scheme.js +3 -2
  8. package/cjs/use-color-scheme/use-color-scheme.js.map +1 -1
  9. package/cjs/use-counter/use-counter.js +9 -26
  10. package/cjs/use-counter/use-counter.js.map +1 -1
  11. package/cjs/use-debounced-callback/use-debounced-callback.js +7 -8
  12. package/cjs/use-debounced-callback/use-debounced-callback.js.map +1 -1
  13. package/cjs/use-debounced-state/use-debounced-state.js +19 -19
  14. package/cjs/use-debounced-state/use-debounced-state.js.map +1 -1
  15. package/cjs/use-debounced-value/use-debounced-value.js +25 -25
  16. package/cjs/use-debounced-value/use-debounced-value.js.map +1 -1
  17. package/cjs/use-did-update/use-did-update.js +11 -12
  18. package/cjs/use-did-update/use-did-update.js.map +1 -1
  19. package/cjs/use-disclosure/use-disclosure.js +24 -25
  20. package/cjs/use-disclosure/use-disclosure.js.map +1 -1
  21. package/cjs/use-document-title/use-document-title.js +5 -6
  22. package/cjs/use-document-title/use-document-title.js.map +1 -1
  23. package/cjs/use-document-visibility/use-document-visibility.js +7 -8
  24. package/cjs/use-document-visibility/use-document-visibility.js.map +1 -1
  25. package/cjs/use-event-listener/use-event-listener.js +9 -13
  26. package/cjs/use-event-listener/use-event-listener.js.map +1 -1
  27. package/cjs/use-eye-dropper/use-eye-dropper.js +12 -13
  28. package/cjs/use-eye-dropper/use-eye-dropper.js.map +1 -1
  29. package/cjs/use-favicon/use-favicon.js +23 -22
  30. package/cjs/use-favicon/use-favicon.js.map +1 -1
  31. package/cjs/use-focus-return/use-focus-return.js +29 -26
  32. package/cjs/use-focus-return/use-focus-return.js.map +1 -1
  33. package/cjs/use-focus-trap/create-aria-hider.js +36 -35
  34. package/cjs/use-focus-trap/create-aria-hider.js.map +1 -1
  35. package/cjs/use-focus-trap/scope-tab.js +15 -16
  36. package/cjs/use-focus-trap/scope-tab.js.map +1 -1
  37. package/cjs/use-focus-trap/tabbable.js +36 -32
  38. package/cjs/use-focus-trap/tabbable.js.map +1 -1
  39. package/cjs/use-focus-trap/use-focus-trap.js +67 -62
  40. package/cjs/use-focus-trap/use-focus-trap.js.map +1 -1
  41. package/cjs/use-focus-within/use-focus-within.js +37 -41
  42. package/cjs/use-focus-within/use-focus-within.js.map +1 -1
  43. package/cjs/use-force-update/use-force-update.js +3 -4
  44. package/cjs/use-force-update/use-force-update.js.map +1 -1
  45. package/cjs/use-fullscreen/use-fullscreen.js +83 -72
  46. package/cjs/use-fullscreen/use-fullscreen.js.map +1 -1
  47. package/cjs/use-hash/use-hash.js +16 -17
  48. package/cjs/use-hash/use-hash.js.map +1 -1
  49. package/cjs/use-headroom/use-headroom.js +23 -24
  50. package/cjs/use-headroom/use-headroom.js.map +1 -1
  51. package/cjs/use-hotkeys/parse-hotkey.js +49 -65
  52. package/cjs/use-hotkeys/parse-hotkey.js.map +1 -1
  53. package/cjs/use-hotkeys/use-hotkeys.js +22 -22
  54. package/cjs/use-hotkeys/use-hotkeys.js.map +1 -1
  55. package/cjs/use-hover/use-hover.js +17 -18
  56. package/cjs/use-hover/use-hover.js.map +1 -1
  57. package/cjs/use-id/use-id.js +12 -13
  58. package/cjs/use-id/use-id.js.map +1 -1
  59. package/cjs/use-id/use-react-id.js +3 -4
  60. package/cjs/use-id/use-react-id.js.map +1 -1
  61. package/cjs/use-idle/use-idle.js +26 -43
  62. package/cjs/use-idle/use-idle.js.map +1 -1
  63. package/cjs/use-input-state/use-input-state.js +22 -19
  64. package/cjs/use-input-state/use-input-state.js.map +1 -1
  65. package/cjs/use-intersection/use-intersection.js +17 -18
  66. package/cjs/use-intersection/use-intersection.js.map +1 -1
  67. package/cjs/use-interval/use-interval.js +28 -28
  68. package/cjs/use-interval/use-interval.js.map +1 -1
  69. package/cjs/use-isomorphic-effect/use-isomorphic-effect.js +3 -2
  70. package/cjs/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
  71. package/cjs/use-list-state/use-list-state.js +55 -75
  72. package/cjs/use-list-state/use-list-state.js.map +1 -1
  73. package/cjs/use-local-storage/create-storage.js +70 -71
  74. package/cjs/use-local-storage/create-storage.js.map +1 -1
  75. package/cjs/use-local-storage/use-local-storage.js +1 -2
  76. package/cjs/use-local-storage/use-local-storage.js.map +1 -1
  77. package/cjs/use-logger/use-logger.js +9 -9
  78. package/cjs/use-logger/use-logger.js.map +1 -1
  79. package/cjs/use-media-query/use-media-query.js +31 -27
  80. package/cjs/use-media-query/use-media-query.js.map +1 -1
  81. package/cjs/use-merged-ref/use-merged-ref.js +11 -10
  82. package/cjs/use-merged-ref/use-merged-ref.js.map +1 -1
  83. package/cjs/use-mouse/use-mouse.js +25 -41
  84. package/cjs/use-mouse/use-mouse.js.map +1 -1
  85. package/cjs/use-move/use-move.js +88 -88
  86. package/cjs/use-move/use-move.js.map +1 -1
  87. package/cjs/use-network/use-network.js +32 -49
  88. package/cjs/use-network/use-network.js.map +1 -1
  89. package/cjs/use-os/use-os.js +30 -31
  90. package/cjs/use-os/use-os.js.map +1 -1
  91. package/cjs/use-page-leave/use-page-leave.js +4 -5
  92. package/cjs/use-page-leave/use-page-leave.js.map +1 -1
  93. package/cjs/use-pagination/use-pagination.js +58 -64
  94. package/cjs/use-pagination/use-pagination.js.map +1 -1
  95. package/cjs/use-previous/use-previous.js +5 -6
  96. package/cjs/use-previous/use-previous.js.map +1 -1
  97. package/cjs/use-queue/use-queue.js +24 -25
  98. package/cjs/use-queue/use-queue.js.map +1 -1
  99. package/cjs/use-reduced-motion/use-reduced-motion.js +1 -2
  100. package/cjs/use-reduced-motion/use-reduced-motion.js.map +1 -1
  101. package/cjs/use-resize-observer/use-resize-observer.js +36 -35
  102. package/cjs/use-resize-observer/use-resize-observer.js.map +1 -1
  103. package/cjs/use-scroll-into-view/use-scroll-into-view.js +77 -78
  104. package/cjs/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
  105. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js +1 -2
  106. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
  107. package/cjs/use-scroll-into-view/utils/get-relative-position.js +46 -54
  108. package/cjs/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
  109. package/cjs/use-scroll-into-view/utils/get-scroll-start.js +10 -10
  110. package/cjs/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
  111. package/cjs/use-scroll-into-view/utils/set-scroll-param.js +14 -12
  112. package/cjs/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
  113. package/cjs/use-session-storage/use-session-storage.js +1 -2
  114. package/cjs/use-session-storage/use-session-storage.js.map +1 -1
  115. package/cjs/use-set-state/use-set-state.js +3 -20
  116. package/cjs/use-set-state/use-set-state.js.map +1 -1
  117. package/cjs/use-shallow-effect/use-shallow-effect.js +22 -23
  118. package/cjs/use-shallow-effect/use-shallow-effect.js.map +1 -1
  119. package/cjs/use-text-selection/use-text-selection.js +12 -13
  120. package/cjs/use-text-selection/use-text-selection.js.map +1 -1
  121. package/cjs/use-timeout/use-timeout.js +22 -23
  122. package/cjs/use-timeout/use-timeout.js.map +1 -1
  123. package/cjs/use-toggle/use-toggle.js +6 -7
  124. package/cjs/use-toggle/use-toggle.js.map +1 -1
  125. package/cjs/use-uncontrolled/use-uncontrolled.js +10 -17
  126. package/cjs/use-uncontrolled/use-uncontrolled.js.map +1 -1
  127. package/cjs/use-validated-state/use-validated-state.js +14 -14
  128. package/cjs/use-validated-state/use-validated-state.js.map +1 -1
  129. package/cjs/use-viewport-size/use-viewport-size.js +12 -13
  130. package/cjs/use-viewport-size/use-viewport-size.js.map +1 -1
  131. package/cjs/use-window-event/use-window-event.js +4 -5
  132. package/cjs/use-window-event/use-window-event.js.map +1 -1
  133. package/cjs/use-window-scroll/use-window-scroll.js +19 -18
  134. package/cjs/use-window-scroll/use-window-scroll.js.map +1 -1
  135. package/cjs/utils/clamp/clamp.js +1 -2
  136. package/cjs/utils/clamp/clamp.js.map +1 -1
  137. package/cjs/utils/lower-first/lower-first.js +1 -2
  138. package/cjs/utils/lower-first/lower-first.js.map +1 -1
  139. package/cjs/utils/random-id/random-id.js +1 -2
  140. package/cjs/utils/random-id/random-id.js.map +1 -1
  141. package/cjs/utils/range/range.js +2 -3
  142. package/cjs/utils/range/range.js.map +1 -1
  143. package/cjs/utils/shallow-equal/shallow-equal.js +19 -20
  144. package/cjs/utils/shallow-equal/shallow-equal.js.map +1 -1
  145. package/cjs/utils/upper-first/upper-first.js +1 -2
  146. package/cjs/utils/upper-first/upper-first.js.map +1 -1
  147. package/esm/use-callback-ref/use-callback-ref.js +5 -9
  148. package/esm/use-callback-ref/use-callback-ref.js.map +1 -1
  149. package/esm/use-click-outside/use-click-outside.js +21 -20
  150. package/esm/use-click-outside/use-click-outside.js.map +1 -1
  151. package/esm/use-clipboard/use-clipboard.js +26 -23
  152. package/esm/use-clipboard/use-clipboard.js.map +1 -1
  153. package/esm/use-color-scheme/use-color-scheme.js +3 -2
  154. package/esm/use-color-scheme/use-color-scheme.js.map +1 -1
  155. package/esm/use-counter/use-counter.js +9 -26
  156. package/esm/use-counter/use-counter.js.map +1 -1
  157. package/esm/use-debounced-callback/use-debounced-callback.js +7 -8
  158. package/esm/use-debounced-callback/use-debounced-callback.js.map +1 -1
  159. package/esm/use-debounced-state/use-debounced-state.js +19 -19
  160. package/esm/use-debounced-state/use-debounced-state.js.map +1 -1
  161. package/esm/use-debounced-value/use-debounced-value.js +25 -25
  162. package/esm/use-debounced-value/use-debounced-value.js.map +1 -1
  163. package/esm/use-did-update/use-did-update.js +11 -12
  164. package/esm/use-did-update/use-did-update.js.map +1 -1
  165. package/esm/use-disclosure/use-disclosure.js +24 -25
  166. package/esm/use-disclosure/use-disclosure.js.map +1 -1
  167. package/esm/use-document-title/use-document-title.js +5 -6
  168. package/esm/use-document-title/use-document-title.js.map +1 -1
  169. package/esm/use-document-visibility/use-document-visibility.js +7 -8
  170. package/esm/use-document-visibility/use-document-visibility.js.map +1 -1
  171. package/esm/use-event-listener/use-event-listener.js +9 -13
  172. package/esm/use-event-listener/use-event-listener.js.map +1 -1
  173. package/esm/use-eye-dropper/use-eye-dropper.js +12 -13
  174. package/esm/use-eye-dropper/use-eye-dropper.js.map +1 -1
  175. package/esm/use-favicon/use-favicon.js +23 -22
  176. package/esm/use-favicon/use-favicon.js.map +1 -1
  177. package/esm/use-focus-return/use-focus-return.js +29 -26
  178. package/esm/use-focus-return/use-focus-return.js.map +1 -1
  179. package/esm/use-focus-trap/create-aria-hider.js +36 -35
  180. package/esm/use-focus-trap/create-aria-hider.js.map +1 -1
  181. package/esm/use-focus-trap/scope-tab.js +15 -16
  182. package/esm/use-focus-trap/scope-tab.js.map +1 -1
  183. package/esm/use-focus-trap/tabbable.js +36 -32
  184. package/esm/use-focus-trap/tabbable.js.map +1 -1
  185. package/esm/use-focus-trap/use-focus-trap.js +67 -62
  186. package/esm/use-focus-trap/use-focus-trap.js.map +1 -1
  187. package/esm/use-focus-within/use-focus-within.js +37 -41
  188. package/esm/use-focus-within/use-focus-within.js.map +1 -1
  189. package/esm/use-force-update/use-force-update.js +3 -4
  190. package/esm/use-force-update/use-force-update.js.map +1 -1
  191. package/esm/use-fullscreen/use-fullscreen.js +83 -72
  192. package/esm/use-fullscreen/use-fullscreen.js.map +1 -1
  193. package/esm/use-hash/use-hash.js +16 -17
  194. package/esm/use-hash/use-hash.js.map +1 -1
  195. package/esm/use-headroom/use-headroom.js +23 -24
  196. package/esm/use-headroom/use-headroom.js.map +1 -1
  197. package/esm/use-hotkeys/parse-hotkey.js +49 -65
  198. package/esm/use-hotkeys/parse-hotkey.js.map +1 -1
  199. package/esm/use-hotkeys/use-hotkeys.js +22 -22
  200. package/esm/use-hotkeys/use-hotkeys.js.map +1 -1
  201. package/esm/use-hover/use-hover.js +17 -18
  202. package/esm/use-hover/use-hover.js.map +1 -1
  203. package/esm/use-id/use-id.js +12 -13
  204. package/esm/use-id/use-id.js.map +1 -1
  205. package/esm/use-id/use-react-id.js +3 -4
  206. package/esm/use-id/use-react-id.js.map +1 -1
  207. package/esm/use-idle/use-idle.js +26 -43
  208. package/esm/use-idle/use-idle.js.map +1 -1
  209. package/esm/use-input-state/use-input-state.js +22 -19
  210. package/esm/use-input-state/use-input-state.js.map +1 -1
  211. package/esm/use-intersection/use-intersection.js +17 -18
  212. package/esm/use-intersection/use-intersection.js.map +1 -1
  213. package/esm/use-interval/use-interval.js +28 -28
  214. package/esm/use-interval/use-interval.js.map +1 -1
  215. package/esm/use-isomorphic-effect/use-isomorphic-effect.js +3 -2
  216. package/esm/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
  217. package/esm/use-list-state/use-list-state.js +55 -75
  218. package/esm/use-list-state/use-list-state.js.map +1 -1
  219. package/esm/use-local-storage/create-storage.js +70 -71
  220. package/esm/use-local-storage/create-storage.js.map +1 -1
  221. package/esm/use-local-storage/use-local-storage.js +1 -2
  222. package/esm/use-local-storage/use-local-storage.js.map +1 -1
  223. package/esm/use-logger/use-logger.js +9 -9
  224. package/esm/use-logger/use-logger.js.map +1 -1
  225. package/esm/use-media-query/use-media-query.js +31 -27
  226. package/esm/use-media-query/use-media-query.js.map +1 -1
  227. package/esm/use-merged-ref/use-merged-ref.js +11 -10
  228. package/esm/use-merged-ref/use-merged-ref.js.map +1 -1
  229. package/esm/use-mouse/use-mouse.js +25 -41
  230. package/esm/use-mouse/use-mouse.js.map +1 -1
  231. package/esm/use-move/use-move.js +88 -88
  232. package/esm/use-move/use-move.js.map +1 -1
  233. package/esm/use-network/use-network.js +32 -49
  234. package/esm/use-network/use-network.js.map +1 -1
  235. package/esm/use-os/use-os.js +30 -31
  236. package/esm/use-os/use-os.js.map +1 -1
  237. package/esm/use-page-leave/use-page-leave.js +4 -5
  238. package/esm/use-page-leave/use-page-leave.js.map +1 -1
  239. package/esm/use-pagination/use-pagination.js +58 -64
  240. package/esm/use-pagination/use-pagination.js.map +1 -1
  241. package/esm/use-previous/use-previous.js +5 -6
  242. package/esm/use-previous/use-previous.js.map +1 -1
  243. package/esm/use-queue/use-queue.js +24 -25
  244. package/esm/use-queue/use-queue.js.map +1 -1
  245. package/esm/use-reduced-motion/use-reduced-motion.js +1 -2
  246. package/esm/use-reduced-motion/use-reduced-motion.js.map +1 -1
  247. package/esm/use-resize-observer/use-resize-observer.js +36 -35
  248. package/esm/use-resize-observer/use-resize-observer.js.map +1 -1
  249. package/esm/use-scroll-into-view/use-scroll-into-view.js +77 -78
  250. package/esm/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
  251. package/esm/use-scroll-into-view/utils/ease-in-out-quad.js +1 -2
  252. package/esm/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
  253. package/esm/use-scroll-into-view/utils/get-relative-position.js +46 -54
  254. package/esm/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
  255. package/esm/use-scroll-into-view/utils/get-scroll-start.js +10 -10
  256. package/esm/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
  257. package/esm/use-scroll-into-view/utils/set-scroll-param.js +14 -12
  258. package/esm/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
  259. package/esm/use-session-storage/use-session-storage.js +1 -2
  260. package/esm/use-session-storage/use-session-storage.js.map +1 -1
  261. package/esm/use-set-state/use-set-state.js +3 -20
  262. package/esm/use-set-state/use-set-state.js.map +1 -1
  263. package/esm/use-shallow-effect/use-shallow-effect.js +22 -23
  264. package/esm/use-shallow-effect/use-shallow-effect.js.map +1 -1
  265. package/esm/use-text-selection/use-text-selection.js +12 -13
  266. package/esm/use-text-selection/use-text-selection.js.map +1 -1
  267. package/esm/use-timeout/use-timeout.js +22 -23
  268. package/esm/use-timeout/use-timeout.js.map +1 -1
  269. package/esm/use-toggle/use-toggle.js +6 -7
  270. package/esm/use-toggle/use-toggle.js.map +1 -1
  271. package/esm/use-uncontrolled/use-uncontrolled.js +10 -17
  272. package/esm/use-uncontrolled/use-uncontrolled.js.map +1 -1
  273. package/esm/use-validated-state/use-validated-state.js +14 -14
  274. package/esm/use-validated-state/use-validated-state.js.map +1 -1
  275. package/esm/use-viewport-size/use-viewport-size.js +12 -13
  276. package/esm/use-viewport-size/use-viewport-size.js.map +1 -1
  277. package/esm/use-window-event/use-window-event.js +4 -5
  278. package/esm/use-window-event/use-window-event.js.map +1 -1
  279. package/esm/use-window-scroll/use-window-scroll.js +19 -18
  280. package/esm/use-window-scroll/use-window-scroll.js.map +1 -1
  281. package/esm/utils/clamp/clamp.js +1 -2
  282. package/esm/utils/clamp/clamp.js.map +1 -1
  283. package/esm/utils/lower-first/lower-first.js +1 -2
  284. package/esm/utils/lower-first/lower-first.js.map +1 -1
  285. package/esm/utils/random-id/random-id.js +1 -2
  286. package/esm/utils/random-id/random-id.js.map +1 -1
  287. package/esm/utils/range/range.js +2 -3
  288. package/esm/utils/range/range.js.map +1 -1
  289. package/esm/utils/shallow-equal/shallow-equal.js +19 -20
  290. package/esm/utils/shallow-equal/shallow-equal.js.map +1 -1
  291. package/esm/utils/upper-first/upper-first.js +1 -2
  292. package/esm/utils/upper-first/upper-first.js.map +1 -1
  293. package/package.json +5 -4
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -11,83 +10,83 @@ var getRelativePosition = require('./utils/get-relative-position.js');
11
10
  var getScrollStart = require('./utils/get-scroll-start.js');
12
11
  var setScrollParam = require('./utils/set-scroll-param.js');
13
12
 
14
- function useScrollIntoView({
15
- duration = 1250,
16
- axis = "y",
17
- onScrollFinish,
18
- easing = easeInOutQuad.easeInOutQuad,
19
- offset = 0,
20
- cancelable = true,
21
- isList = false
22
- } = {}) {
23
- const frameID = React.useRef(0);
24
- const startTime = React.useRef(0);
25
- const shouldStop = React.useRef(false);
26
- const scrollableRef = React.useRef(null);
27
- const targetRef = React.useRef(null);
28
- const reducedMotion = useReducedMotion.useReducedMotion();
29
- const cancel = () => {
30
- if (frameID.current) {
31
- cancelAnimationFrame(frameID.current);
32
- }
33
- };
34
- const scrollIntoView = React.useCallback(({ alignment = "start" } = {}) => {
35
- var _a;
36
- shouldStop.current = false;
37
- if (frameID.current) {
38
- cancel();
39
- }
40
- const start = (_a = getScrollStart.getScrollStart({ parent: scrollableRef.current, axis })) != null ? _a : 0;
41
- const change = getRelativePosition.getRelativePosition({
42
- parent: scrollableRef.current,
43
- target: targetRef.current,
44
- axis,
45
- alignment,
46
- offset,
47
- isList
48
- }) - (scrollableRef.current ? 0 : start);
49
- function animateScroll() {
50
- if (startTime.current === 0) {
51
- startTime.current = performance.now();
52
- }
53
- const now = performance.now();
54
- const elapsed = now - startTime.current;
55
- const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;
56
- const distance = start + change * easing(t);
57
- setScrollParam.setScrollParam({
58
- parent: scrollableRef.current,
59
- axis,
60
- distance
61
- });
62
- if (!shouldStop.current && t < 1) {
63
- frameID.current = requestAnimationFrame(animateScroll);
64
- } else {
65
- typeof onScrollFinish === "function" && onScrollFinish();
66
- startTime.current = 0;
67
- frameID.current = 0;
68
- cancel();
69
- }
70
- }
71
- animateScroll();
72
- }, [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]);
73
- const handleStop = () => {
74
- if (cancelable) {
75
- shouldStop.current = true;
76
- }
77
- };
78
- useWindowEvent.useWindowEvent("wheel", handleStop, {
79
- passive: true
80
- });
81
- useWindowEvent.useWindowEvent("touchmove", handleStop, {
82
- passive: true
83
- });
84
- React.useEffect(() => cancel, []);
85
- return {
86
- scrollableRef,
87
- targetRef,
88
- scrollIntoView,
89
- cancel
90
- };
13
+ function useScrollIntoView({ duration = 1250, axis = 'y', onScrollFinish, easing = easeInOutQuad.easeInOutQuad, offset = 0, cancelable = true, isList = false, } = {}) {
14
+ const frameID = React.useRef(0);
15
+ const startTime = React.useRef(0);
16
+ const shouldStop = React.useRef(false);
17
+ const scrollableRef = React.useRef(null);
18
+ const targetRef = React.useRef(null);
19
+ const reducedMotion = useReducedMotion.useReducedMotion();
20
+ const cancel = () => {
21
+ if (frameID.current) {
22
+ cancelAnimationFrame(frameID.current);
23
+ }
24
+ };
25
+ const scrollIntoView = React.useCallback(({ alignment = 'start' } = {}) => {
26
+ var _a;
27
+ shouldStop.current = false;
28
+ if (frameID.current) {
29
+ cancel();
30
+ }
31
+ const start = (_a = getScrollStart.getScrollStart({ parent: scrollableRef.current, axis })) !== null && _a !== void 0 ? _a : 0;
32
+ const change = getRelativePosition.getRelativePosition({
33
+ parent: scrollableRef.current,
34
+ target: targetRef.current,
35
+ axis,
36
+ alignment,
37
+ offset,
38
+ isList,
39
+ }) - (scrollableRef.current ? 0 : start);
40
+ function animateScroll() {
41
+ if (startTime.current === 0) {
42
+ startTime.current = performance.now();
43
+ }
44
+ const now = performance.now();
45
+ const elapsed = now - startTime.current;
46
+ // easing timing progress
47
+ const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;
48
+ const distance = start + change * easing(t);
49
+ setScrollParam.setScrollParam({
50
+ parent: scrollableRef.current,
51
+ axis,
52
+ distance,
53
+ });
54
+ if (!shouldStop.current && t < 1) {
55
+ frameID.current = requestAnimationFrame(animateScroll);
56
+ }
57
+ else {
58
+ typeof onScrollFinish === 'function' && onScrollFinish();
59
+ startTime.current = 0;
60
+ frameID.current = 0;
61
+ cancel();
62
+ }
63
+ }
64
+ animateScroll();
65
+ }, [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]);
66
+ const handleStop = () => {
67
+ if (cancelable) {
68
+ shouldStop.current = true;
69
+ }
70
+ };
71
+ /**
72
+ * detection of one of these events stops scroll animation
73
+ * wheel - mouse wheel / touch pad
74
+ * touchmove - any touchable device
75
+ */
76
+ useWindowEvent.useWindowEvent('wheel', handleStop, {
77
+ passive: true,
78
+ });
79
+ useWindowEvent.useWindowEvent('touchmove', handleStop, {
80
+ passive: true,
81
+ });
82
+ // cleanup requestAnimationFrame
83
+ React.useEffect(() => cancel, []);
84
+ return {
85
+ scrollableRef,
86
+ targetRef,
87
+ scrollIntoView,
88
+ cancel,
89
+ };
91
90
  }
92
91
 
93
92
  exports.useScrollIntoView = useScrollIntoView;
@@ -1 +1 @@
1
- {"version":3,"file":"use-scroll-into-view.js","sources":["../../src/use-scroll-into-view/use-scroll-into-view.ts"],"sourcesContent":["import { useCallback, useRef, useEffect } from 'react';\nimport { useReducedMotion } from '../use-reduced-motion/use-reduced-motion';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\nimport { easeInOutQuad } from './utils/ease-in-out-quad';\nimport { getRelativePosition } from './utils/get-relative-position';\nimport { getScrollStart } from './utils/get-scroll-start';\nimport { setScrollParam } from './utils/set-scroll-param';\n\ninterface ScrollIntoViewAnimation {\n /** target element alignment relatively to parent based on current axis */\n alignment?: 'start' | 'end' | 'center';\n}\n\ninterface ScrollIntoViewParams {\n /** callback fired after scroll */\n onScrollFinish?: () => void;\n\n /** duration of scroll in milliseconds */\n duration?: number;\n\n /** axis of scroll */\n axis?: 'x' | 'y';\n\n /** custom mathematical easing function */\n easing?: (t: number) => number;\n\n /** additional distance between nearest edge and element */\n offset?: number;\n\n /** indicator if animation may be interrupted by user scrolling */\n cancelable?: boolean;\n\n /** prevents content jumping in scrolling lists with multiple targets */\n isList?: boolean;\n}\n\nexport function useScrollIntoView<\n Target extends HTMLElement,\n Parent extends HTMLElement | null = null\n>({\n duration = 1250,\n axis = 'y',\n onScrollFinish,\n easing = easeInOutQuad,\n offset = 0,\n cancelable = true,\n isList = false,\n}: ScrollIntoViewParams = {}) {\n const frameID = useRef(0);\n const startTime = useRef(0);\n const shouldStop = useRef(false);\n\n const scrollableRef = useRef<Parent>(null);\n const targetRef = useRef<Target>(null);\n\n const reducedMotion = useReducedMotion();\n\n const cancel = (): void => {\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n\n const scrollIntoView = useCallback(\n ({ alignment = 'start' }: ScrollIntoViewAnimation = {}) => {\n shouldStop.current = false;\n\n if (frameID.current) {\n cancel();\n }\n\n const start = getScrollStart({ parent: scrollableRef.current, axis }) ?? 0;\n\n const change =\n getRelativePosition({\n parent: scrollableRef.current,\n target: targetRef.current,\n axis,\n alignment,\n offset,\n isList,\n }) - (scrollableRef.current ? 0 : start);\n\n function animateScroll() {\n if (startTime.current === 0) {\n startTime.current = performance.now();\n }\n\n const now = performance.now();\n const elapsed = now - startTime.current;\n\n // easing timing progress\n const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;\n\n const distance = start + change * easing(t);\n\n setScrollParam({\n parent: scrollableRef.current,\n axis,\n distance,\n });\n\n if (!shouldStop.current && t < 1) {\n frameID.current = requestAnimationFrame(animateScroll);\n } else {\n typeof onScrollFinish === 'function' && onScrollFinish();\n startTime.current = 0;\n frameID.current = 0;\n cancel();\n }\n }\n animateScroll();\n },\n [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]\n );\n\n const handleStop = () => {\n if (cancelable) {\n shouldStop.current = true;\n }\n };\n\n /**\n * detection of one of these events stops scroll animation\n * wheel - mouse wheel / touch pad\n * touchmove - any touchable device\n */\n\n useWindowEvent('wheel', handleStop, {\n passive: true,\n });\n\n useWindowEvent('touchmove', handleStop, {\n passive: true,\n });\n\n // cleanup requestAnimationFrame\n useEffect(() => cancel, []);\n\n return {\n scrollableRef,\n targetRef,\n scrollIntoView,\n cancel,\n };\n}\n"],"names":["easeInOutQuad","useRef","useReducedMotion","useCallback","getScrollStart","getRelativePosition","setScrollParam","useWindowEvent","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-scroll-into-view.js","sources":["../../src/use-scroll-into-view/use-scroll-into-view.ts"],"sourcesContent":["import { useCallback, useRef, useEffect } from 'react';\nimport { useReducedMotion } from '../use-reduced-motion/use-reduced-motion';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\nimport { easeInOutQuad } from './utils/ease-in-out-quad';\nimport { getRelativePosition } from './utils/get-relative-position';\nimport { getScrollStart } from './utils/get-scroll-start';\nimport { setScrollParam } from './utils/set-scroll-param';\n\ninterface ScrollIntoViewAnimation {\n /** target element alignment relatively to parent based on current axis */\n alignment?: 'start' | 'end' | 'center';\n}\n\ninterface ScrollIntoViewParams {\n /** callback fired after scroll */\n onScrollFinish?: () => void;\n\n /** duration of scroll in milliseconds */\n duration?: number;\n\n /** axis of scroll */\n axis?: 'x' | 'y';\n\n /** custom mathematical easing function */\n easing?: (t: number) => number;\n\n /** additional distance between nearest edge and element */\n offset?: number;\n\n /** indicator if animation may be interrupted by user scrolling */\n cancelable?: boolean;\n\n /** prevents content jumping in scrolling lists with multiple targets */\n isList?: boolean;\n}\n\nexport function useScrollIntoView<\n Target extends HTMLElement,\n Parent extends HTMLElement | null = null\n>({\n duration = 1250,\n axis = 'y',\n onScrollFinish,\n easing = easeInOutQuad,\n offset = 0,\n cancelable = true,\n isList = false,\n}: ScrollIntoViewParams = {}) {\n const frameID = useRef(0);\n const startTime = useRef(0);\n const shouldStop = useRef(false);\n\n const scrollableRef = useRef<Parent>(null);\n const targetRef = useRef<Target>(null);\n\n const reducedMotion = useReducedMotion();\n\n const cancel = (): void => {\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n\n const scrollIntoView = useCallback(\n ({ alignment = 'start' }: ScrollIntoViewAnimation = {}) => {\n shouldStop.current = false;\n\n if (frameID.current) {\n cancel();\n }\n\n const start = getScrollStart({ parent: scrollableRef.current, axis }) ?? 0;\n\n const change =\n getRelativePosition({\n parent: scrollableRef.current,\n target: targetRef.current,\n axis,\n alignment,\n offset,\n isList,\n }) - (scrollableRef.current ? 0 : start);\n\n function animateScroll() {\n if (startTime.current === 0) {\n startTime.current = performance.now();\n }\n\n const now = performance.now();\n const elapsed = now - startTime.current;\n\n // easing timing progress\n const t = reducedMotion || duration === 0 ? 1 : elapsed / duration;\n\n const distance = start + change * easing(t);\n\n setScrollParam({\n parent: scrollableRef.current,\n axis,\n distance,\n });\n\n if (!shouldStop.current && t < 1) {\n frameID.current = requestAnimationFrame(animateScroll);\n } else {\n typeof onScrollFinish === 'function' && onScrollFinish();\n startTime.current = 0;\n frameID.current = 0;\n cancel();\n }\n }\n animateScroll();\n },\n [axis, duration, easing, isList, offset, onScrollFinish, reducedMotion]\n );\n\n const handleStop = () => {\n if (cancelable) {\n shouldStop.current = true;\n }\n };\n\n /**\n * detection of one of these events stops scroll animation\n * wheel - mouse wheel / touch pad\n * touchmove - any touchable device\n */\n\n useWindowEvent('wheel', handleStop, {\n passive: true,\n });\n\n useWindowEvent('touchmove', handleStop, {\n passive: true,\n });\n\n // cleanup requestAnimationFrame\n useEffect(() => cancel, []);\n\n return {\n scrollableRef,\n targetRef,\n scrollIntoView,\n cancel,\n };\n}\n"],"names":["easeInOutQuad","useRef","useReducedMotion","useCallback","getScrollStart","getRelativePosition","setScrollParam","useWindowEvent","useEffect"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
5
4
 
6
- const easeInOutQuad = (t) => t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
5
+ const easeInOutQuad = (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);
7
6
 
8
7
  exports.easeInOutQuad = easeInOutQuad;
9
8
  //# sourceMappingURL=ease-in-out-quad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ease-in-out-quad.js","sources":["../../../src/use-scroll-into-view/utils/ease-in-out-quad.ts"],"sourcesContent":["export const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\n"],"names":[],"mappings":";;;;;AAAY,MAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;;"}
1
+ {"version":3,"file":"ease-in-out-quad.js","sources":["../../../src/use-scroll-into-view/utils/ease-in-out-quad.ts"],"sourcesContent":["export const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\n"],"names":[],"mappings":";;;;MAAa,aAAa,GAAG,CAAC,CAAS,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;;;;"}
@@ -1,65 +1,57 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
5
4
 
6
- const getRelativePosition = ({
7
- axis,
8
- target,
9
- parent,
10
- alignment,
11
- offset,
12
- isList
13
- }) => {
14
- if (!target || !parent && typeof document === "undefined") {
15
- return 0;
16
- }
17
- const isCustomParent = !!parent;
18
- const parentElement = parent || document.body;
19
- const parentPosition = parentElement.getBoundingClientRect();
20
- const targetPosition = target.getBoundingClientRect();
21
- const getDiff = (property) => targetPosition[property] - parentPosition[property];
22
- if (axis === "y") {
23
- const diff = getDiff("top");
24
- if (diff === 0)
25
- return 0;
26
- if (alignment === "start") {
27
- const distance = diff - offset;
28
- const shouldScroll = distance <= targetPosition.height * (isList ? 0 : 1) || !isList;
29
- return shouldScroll ? distance : 0;
30
- }
31
- const parentHeight = isCustomParent ? parentPosition.height : window.innerHeight;
32
- if (alignment === "end") {
33
- const distance = diff + offset - parentHeight + targetPosition.height;
34
- const shouldScroll = distance >= -targetPosition.height * (isList ? 0 : 1) || !isList;
35
- return shouldScroll ? distance : 0;
36
- }
37
- if (alignment === "center") {
38
- return diff - parentHeight / 2 + targetPosition.height / 2;
39
- }
40
- return 0;
41
- }
42
- if (axis === "x") {
43
- const diff = getDiff("left");
44
- if (diff === 0)
45
- return 0;
46
- if (alignment === "start") {
47
- const distance = diff - offset;
48
- const shouldScroll = distance <= targetPosition.width || !isList;
49
- return shouldScroll ? distance : 0;
5
+ const getRelativePosition = ({ axis, target, parent, alignment, offset, isList, }) => {
6
+ if (!target || (!parent && typeof document === 'undefined')) {
7
+ return 0;
50
8
  }
51
- const parentWidth = isCustomParent ? parentPosition.width : window.innerWidth;
52
- if (alignment === "end") {
53
- const distance = diff + offset - parentWidth + targetPosition.width;
54
- const shouldScroll = distance >= -targetPosition.width || !isList;
55
- return shouldScroll ? distance : 0;
9
+ const isCustomParent = !!parent;
10
+ const parentElement = parent || document.body;
11
+ const parentPosition = parentElement.getBoundingClientRect();
12
+ const targetPosition = target.getBoundingClientRect();
13
+ const getDiff = (property) => targetPosition[property] - parentPosition[property];
14
+ if (axis === 'y') {
15
+ const diff = getDiff('top');
16
+ if (diff === 0)
17
+ return 0;
18
+ if (alignment === 'start') {
19
+ const distance = diff - offset;
20
+ const shouldScroll = distance <= targetPosition.height * (isList ? 0 : 1) || !isList;
21
+ return shouldScroll ? distance : 0;
22
+ }
23
+ const parentHeight = isCustomParent ? parentPosition.height : window.innerHeight;
24
+ if (alignment === 'end') {
25
+ const distance = diff + offset - parentHeight + targetPosition.height;
26
+ const shouldScroll = distance >= -targetPosition.height * (isList ? 0 : 1) || !isList;
27
+ return shouldScroll ? distance : 0;
28
+ }
29
+ if (alignment === 'center') {
30
+ return diff - parentHeight / 2 + targetPosition.height / 2;
31
+ }
32
+ return 0;
56
33
  }
57
- if (alignment === "center") {
58
- return diff - parentWidth / 2 + targetPosition.width / 2;
34
+ if (axis === 'x') {
35
+ const diff = getDiff('left');
36
+ if (diff === 0)
37
+ return 0;
38
+ if (alignment === 'start') {
39
+ const distance = diff - offset;
40
+ const shouldScroll = distance <= targetPosition.width || !isList;
41
+ return shouldScroll ? distance : 0;
42
+ }
43
+ const parentWidth = isCustomParent ? parentPosition.width : window.innerWidth;
44
+ if (alignment === 'end') {
45
+ const distance = diff + offset - parentWidth + targetPosition.width;
46
+ const shouldScroll = distance >= -targetPosition.width || !isList;
47
+ return shouldScroll ? distance : 0;
48
+ }
49
+ if (alignment === 'center') {
50
+ return diff - parentWidth / 2 + targetPosition.width / 2;
51
+ }
52
+ return 0;
59
53
  }
60
54
  return 0;
61
- }
62
- return 0;
63
55
  };
64
56
 
65
57
  exports.getRelativePosition = getRelativePosition;
@@ -1 +1 @@
1
- {"version":3,"file":"get-relative-position.js","sources":["../../../src/use-scroll-into-view/utils/get-relative-position.ts"],"sourcesContent":["export const getRelativePosition = ({\n axis,\n target,\n parent,\n alignment,\n offset,\n isList,\n}: any): number => {\n if (!target || (!parent && typeof document === 'undefined')) {\n return 0;\n }\n const isCustomParent = !!parent;\n const parentElement = parent || document.body;\n const parentPosition = parentElement.getBoundingClientRect();\n const targetPosition = target.getBoundingClientRect();\n\n const getDiff = (property: 'top' | 'left'): number =>\n targetPosition[property] - parentPosition[property];\n\n if (axis === 'y') {\n const diff = getDiff('top');\n\n if (diff === 0) return 0;\n\n if (alignment === 'start') {\n const distance = diff - offset;\n const shouldScroll = distance <= targetPosition.height * (isList ? 0 : 1) || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n const parentHeight = isCustomParent ? parentPosition.height : window.innerHeight;\n\n if (alignment === 'end') {\n const distance = diff + offset - parentHeight + targetPosition.height;\n const shouldScroll = distance >= -targetPosition.height * (isList ? 0 : 1) || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n if (alignment === 'center') {\n return diff - parentHeight / 2 + targetPosition.height / 2;\n }\n\n return 0;\n }\n\n if (axis === 'x') {\n const diff = getDiff('left');\n\n if (diff === 0) return 0;\n\n if (alignment === 'start') {\n const distance = diff - offset;\n const shouldScroll = distance <= targetPosition.width || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n const parentWidth = isCustomParent ? parentPosition.width : window.innerWidth;\n\n if (alignment === 'end') {\n const distance = diff + offset - parentWidth + targetPosition.width;\n const shouldScroll = distance >= -targetPosition.width || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n if (alignment === 'center') {\n return diff - parentWidth / 2 + targetPosition.width / 2;\n }\n\n return 0;\n }\n\n return 0;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-relative-position.js","sources":["../../../src/use-scroll-into-view/utils/get-relative-position.ts"],"sourcesContent":["export const getRelativePosition = ({\n axis,\n target,\n parent,\n alignment,\n offset,\n isList,\n}: any): number => {\n if (!target || (!parent && typeof document === 'undefined')) {\n return 0;\n }\n const isCustomParent = !!parent;\n const parentElement = parent || document.body;\n const parentPosition = parentElement.getBoundingClientRect();\n const targetPosition = target.getBoundingClientRect();\n\n const getDiff = (property: 'top' | 'left'): number =>\n targetPosition[property] - parentPosition[property];\n\n if (axis === 'y') {\n const diff = getDiff('top');\n\n if (diff === 0) return 0;\n\n if (alignment === 'start') {\n const distance = diff - offset;\n const shouldScroll = distance <= targetPosition.height * (isList ? 0 : 1) || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n const parentHeight = isCustomParent ? parentPosition.height : window.innerHeight;\n\n if (alignment === 'end') {\n const distance = diff + offset - parentHeight + targetPosition.height;\n const shouldScroll = distance >= -targetPosition.height * (isList ? 0 : 1) || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n if (alignment === 'center') {\n return diff - parentHeight / 2 + targetPosition.height / 2;\n }\n\n return 0;\n }\n\n if (axis === 'x') {\n const diff = getDiff('left');\n\n if (diff === 0) return 0;\n\n if (alignment === 'start') {\n const distance = diff - offset;\n const shouldScroll = distance <= targetPosition.width || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n const parentWidth = isCustomParent ? parentPosition.width : window.innerWidth;\n\n if (alignment === 'end') {\n const distance = diff + offset - parentWidth + targetPosition.width;\n const shouldScroll = distance >= -targetPosition.width || !isList;\n\n return shouldScroll ? distance : 0;\n }\n\n if (alignment === 'center') {\n return diff - parentWidth / 2 + targetPosition.width / 2;\n }\n\n return 0;\n }\n\n return 0;\n};\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
5
4
 
6
5
  const getScrollStart = ({ axis, parent }) => {
7
- if (!parent && typeof document === "undefined") {
8
- return 0;
9
- }
10
- const method = axis === "y" ? "scrollTop" : "scrollLeft";
11
- if (parent) {
12
- return parent[method];
13
- }
14
- const { body, documentElement } = document;
15
- return body[method] + documentElement[method];
6
+ if (!parent && typeof document === 'undefined') {
7
+ return 0;
8
+ }
9
+ const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';
10
+ if (parent) {
11
+ return parent[method];
12
+ }
13
+ const { body, documentElement } = document;
14
+ // while one of it has a value the second is equal 0
15
+ return body[method] + documentElement[method];
16
16
  };
17
17
 
18
18
  exports.getScrollStart = getScrollStart;
@@ -1 +1 @@
1
- {"version":3,"file":"get-scroll-start.js","sources":["../../../src/use-scroll-into-view/utils/get-scroll-start.ts"],"sourcesContent":["export const getScrollStart = ({ axis, parent }: any) => {\n if (!parent && typeof document === 'undefined') {\n return 0;\n }\n\n const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';\n\n if (parent) {\n return parent[method];\n }\n\n const { body, documentElement } = document;\n\n // while one of it has a value the second is equal 0\n return body[method] + documentElement[method];\n};\n"],"names":[],"mappings":";;;;;AAAY,MAAC,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAClD,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;AAC3D,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;AAC7C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAChD;;"}
1
+ {"version":3,"file":"get-scroll-start.js","sources":["../../../src/use-scroll-into-view/utils/get-scroll-start.ts"],"sourcesContent":["export const getScrollStart = ({ axis, parent }: any) => {\n if (!parent && typeof document === 'undefined') {\n return 0;\n }\n\n const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';\n\n if (parent) {\n return parent[method];\n }\n\n const { body, documentElement } = document;\n\n // while one of it has a value the second is equal 0\n return body[method] + documentElement[method];\n};\n"],"names":[],"mappings":";;;;MAAa,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAO;IAClD,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QAC9C,OAAO,CAAC,CAAC;KACV;IAED,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;IAEzD,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;KACvB;IAED,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;;IAG3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAChD;;;;"}
@@ -1,20 +1,22 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
5
4
 
6
5
  const setScrollParam = ({ axis, parent, distance }) => {
7
- if (!parent && typeof document === "undefined") {
8
- return;
9
- }
10
- const method = axis === "y" ? "scrollTop" : "scrollLeft";
11
- if (parent) {
12
- parent[method] = distance;
13
- } else {
14
- const { body, documentElement } = document;
15
- body[method] = distance;
16
- documentElement[method] = distance;
17
- }
6
+ if (!parent && typeof document === 'undefined') {
7
+ return;
8
+ }
9
+ const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';
10
+ if (parent) {
11
+ // eslint-disable-next-line no-param-reassign
12
+ parent[method] = distance;
13
+ }
14
+ else {
15
+ const { body, documentElement } = document;
16
+ // https://www.w3schools.com/jsref/prop_element_scrolltop.asp
17
+ body[method] = distance;
18
+ documentElement[method] = distance;
19
+ }
18
20
  };
19
21
 
20
22
  exports.setScrollParam = setScrollParam;
@@ -1 +1 @@
1
- {"version":3,"file":"set-scroll-param.js","sources":["../../../src/use-scroll-into-view/utils/set-scroll-param.ts"],"sourcesContent":["export const setScrollParam = ({ axis, parent, distance }: any) => {\n if (!parent && typeof document === 'undefined') {\n return;\n }\n\n const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';\n\n if (parent) {\n // eslint-disable-next-line no-param-reassign\n parent[method] = distance;\n } else {\n const { body, documentElement } = document;\n\n // https://www.w3schools.com/jsref/prop_element_scrolltop.asp\n body[method] = distance;\n documentElement[method] = distance;\n }\n};\n"],"names":[],"mappings":";;;;;AAAY,MAAC,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;AAC9D,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAClD,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;AAC3D,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC9B,GAAG,MAAM;AACT,IAAI,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;AAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC5B,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACvC,GAAG;AACH;;"}
1
+ {"version":3,"file":"set-scroll-param.js","sources":["../../../src/use-scroll-into-view/utils/set-scroll-param.ts"],"sourcesContent":["export const setScrollParam = ({ axis, parent, distance }: any) => {\n if (!parent && typeof document === 'undefined') {\n return;\n }\n\n const method = axis === 'y' ? 'scrollTop' : 'scrollLeft';\n\n if (parent) {\n // eslint-disable-next-line no-param-reassign\n parent[method] = distance;\n } else {\n const { body, documentElement } = document;\n\n // https://www.w3schools.com/jsref/prop_element_scrolltop.asp\n body[method] = distance;\n documentElement[method] = distance;\n }\n};\n"],"names":[],"mappings":";;;;MAAa,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAO;IAC5D,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QAC9C,OAAO;KACR;IAED,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;IAEzD,IAAI,MAAM,EAAE;;QAEV,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;KAC3B;SAAM;QACL,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;;QAG3C,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;QACxB,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;KACpC;AACH;;;;"}
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -6,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
5
  var createStorage = require('../use-local-storage/create-storage.js');
7
6
 
8
7
  function useSessionStorage(props) {
9
- return createStorage.createStorage("sessionStorage", "use-session-storage")(props);
8
+ return createStorage.createStorage('sessionStorage', 'use-session-storage')(props);
10
9
  }
11
10
 
12
11
  exports.useSessionStorage = useSessionStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"use-session-storage.js","sources":["../../src/use-session-storage/use-session-storage.ts"],"sourcesContent":["import { createStorage, IStorageProperties } from '../use-local-storage/create-storage';\n\nexport function useSessionStorage<T = string>(props: IStorageProperties<T>) {\n return createStorage<T>('sessionStorage', 'use-session-storage')(props);\n}\n"],"names":["createStorage"],"mappings":";;;;;;;AACO,SAAS,iBAAiB,CAAC,KAAK,EAAE;AACzC,EAAE,OAAOA,2BAAa,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC;AACvE;;"}
1
+ {"version":3,"file":"use-session-storage.js","sources":["../../src/use-session-storage/use-session-storage.ts"],"sourcesContent":["import { createStorage, IStorageProperties } from '../use-local-storage/create-storage';\n\nexport function useSessionStorage<T = string>(props: IStorageProperties<T>) {\n return createStorage<T>('sessionStorage', 'use-session-storage')(props);\n}\n"],"names":["createStorage"],"mappings":";;;;;;SAEgB,iBAAiB,CAAa,KAA4B;IACxE,OAAOA,2BAAa,CAAI,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E;;;;"}
@@ -1,30 +1,13 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
5
4
 
6
5
  var React = require('react');
7
6
 
8
- var __defProp = Object.defineProperty;
9
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
7
  function useSetState(initialState) {
25
- const [state, _setState] = React.useState(initialState);
26
- const setState = React.useCallback((statePartial) => _setState((current) => __spreadValues(__spreadValues({}, current), typeof statePartial === "function" ? statePartial(current) : statePartial)), []);
27
- return [state, setState];
8
+ const [state, _setState] = React.useState(initialState);
9
+ const setState = React.useCallback((statePartial) => _setState((current) => (Object.assign(Object.assign({}, current), (typeof statePartial === 'function' ? statePartial(current) : statePartial)))), []);
10
+ return [state, setState];
28
11
  }
29
12
 
30
13
  exports.useSetState = useSetState;
@@ -1 +1 @@
1
- {"version":3,"file":"use-set-state.js","sources":["../../src/use-set-state/use-set-state.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\n\nexport function useSetState<T extends Record<string, any>>(initialState: T) {\n const [state, _setState] = useState(initialState);\n const setState = useCallback(\n (statePartial: Partial<T> | ((currentState: T) => Partial<T>)) =>\n _setState((current) => ({\n ...current,\n ...(typeof statePartial === 'function' ? statePartial(current) : statePartial),\n })),\n []\n );\n return [state, setState] as const;\n}\n"],"names":["useState","useCallback"],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEK,SAAS,WAAW,CAAC,YAAY,EAAE;AAC1C,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,YAAY,CAAC,CAAC;AACpD,EAAE,MAAM,QAAQ,GAAGC,iBAAW,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrM,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3B;;"}
1
+ {"version":3,"file":"use-set-state.js","sources":["../../src/use-set-state/use-set-state.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\n\nexport function useSetState<T extends Record<string, any>>(initialState: T) {\n const [state, _setState] = useState(initialState);\n const setState = useCallback(\n (statePartial: Partial<T> | ((currentState: T) => Partial<T>)) =>\n _setState((current) => ({\n ...current,\n ...(typeof statePartial === 'function' ? statePartial(current) : statePartial),\n })),\n []\n );\n return [state, setState] as const;\n}\n"],"names":["useState","useCallback"],"mappings":";;;;;;SAEgB,WAAW,CAAgC,YAAe;IACxE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAGC,iBAAW,CAC1B,CAAC,YAA4D,KAC3D,SAAS,CAAC,CAAC,OAAO,sCACb,OAAO,IACN,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,GAC7E,CAAC,EACL,EAAE,CACH,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC;;;;"}
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -7,33 +6,33 @@ var React = require('react');
7
6
  var shallowEqual = require('../utils/shallow-equal/shallow-equal.js');
8
7
 
9
8
  function shallowCompare(prevValue, currValue) {
10
- if (!prevValue || !currValue) {
11
- return false;
12
- }
13
- if (prevValue === currValue) {
14
- return true;
15
- }
16
- if (prevValue.length !== currValue.length) {
17
- return false;
18
- }
19
- for (let i = 0; i < prevValue.length; i += 1) {
20
- if (!shallowEqual.shallowEqual(prevValue[i], currValue[i])) {
21
- return false;
9
+ if (!prevValue || !currValue) {
10
+ return false;
11
+ }
12
+ if (prevValue === currValue) {
13
+ return true;
14
+ }
15
+ if (prevValue.length !== currValue.length) {
16
+ return false;
22
17
  }
23
- }
24
- return true;
18
+ for (let i = 0; i < prevValue.length; i += 1) {
19
+ if (!shallowEqual.shallowEqual(prevValue[i], currValue[i])) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
25
24
  }
26
25
  function useShallowCompare(dependencies) {
27
- const ref = React.useRef([]);
28
- const updateRef = React.useRef(0);
29
- if (!shallowCompare(ref.current, dependencies)) {
30
- ref.current = dependencies;
31
- updateRef.current += 1;
32
- }
33
- return [updateRef.current];
26
+ const ref = React.useRef([]);
27
+ const updateRef = React.useRef(0);
28
+ if (!shallowCompare(ref.current, dependencies)) {
29
+ ref.current = dependencies;
30
+ updateRef.current += 1;
31
+ }
32
+ return [updateRef.current];
34
33
  }
35
34
  function useShallowEffect(cb, dependencies) {
36
- React.useEffect(cb, useShallowCompare(dependencies));
35
+ React.useEffect(cb, useShallowCompare(dependencies));
37
36
  }
38
37
 
39
38
  exports.useShallowEffect = useShallowEffect;
@@ -1 +1 @@
1
- {"version":3,"file":"use-shallow-effect.js","sources":["../../src/use-shallow-effect/use-shallow-effect.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { shallowEqual } from '../utils/shallow-equal/shallow-equal';\n\nfunction shallowCompare(prevValue?: React.DependencyList | null, currValue?: React.DependencyList) {\n if (!prevValue || !currValue) {\n return false;\n }\n\n if (prevValue === currValue) {\n return true;\n }\n\n if (prevValue.length !== currValue.length) {\n return false;\n }\n\n for (let i = 0; i < prevValue.length; i += 1) {\n if (!shallowEqual(prevValue[i], currValue[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useShallowCompare(dependencies?: React.DependencyList) {\n const ref = useRef<React.DependencyList | null | undefined>([]);\n const updateRef = useRef<number>(0);\n\n if (!shallowCompare(ref.current, dependencies)) {\n ref.current = dependencies;\n updateRef.current += 1;\n }\n\n return [updateRef.current];\n}\n\nexport function useShallowEffect(cb: () => void, dependencies?: React.DependencyList): void {\n useEffect(cb, useShallowCompare(dependencies));\n}\n"],"names":["shallowEqual","useRef","useEffect"],"mappings":";;;;;;;;AAEA,SAAS,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;AAC9C,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;AAChC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;AAC7C,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,IAAI,IAAI,CAACA,yBAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AACnD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,iBAAiB,CAAC,YAAY,EAAE;AACzC,EAAE,MAAM,GAAG,GAAGC,YAAM,CAAC,EAAE,CAAC,CAAC;AACzB,EAAE,MAAM,SAAS,GAAGA,YAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;AAClD,IAAI,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC;AAC/B,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AACM,SAAS,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE;AACnD,EAAEC,eAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AACjD;;"}
1
+ {"version":3,"file":"use-shallow-effect.js","sources":["../../src/use-shallow-effect/use-shallow-effect.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { shallowEqual } from '../utils/shallow-equal/shallow-equal';\n\nfunction shallowCompare(prevValue?: React.DependencyList | null, currValue?: React.DependencyList) {\n if (!prevValue || !currValue) {\n return false;\n }\n\n if (prevValue === currValue) {\n return true;\n }\n\n if (prevValue.length !== currValue.length) {\n return false;\n }\n\n for (let i = 0; i < prevValue.length; i += 1) {\n if (!shallowEqual(prevValue[i], currValue[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useShallowCompare(dependencies?: React.DependencyList) {\n const ref = useRef<React.DependencyList | null | undefined>([]);\n const updateRef = useRef<number>(0);\n\n if (!shallowCompare(ref.current, dependencies)) {\n ref.current = dependencies;\n updateRef.current += 1;\n }\n\n return [updateRef.current];\n}\n\nexport function useShallowEffect(cb: () => void, dependencies?: React.DependencyList): void {\n useEffect(cb, useShallowCompare(dependencies));\n}\n"],"names":["shallowEqual","useRef","useEffect"],"mappings":";;;;;;;AAGA,SAAS,cAAc,CAAC,SAAuC,EAAE,SAAgC;IAC/F,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;QAC5B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,CAACA,yBAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAmC;IAC5D,MAAM,GAAG,GAAGC,YAAM,CAA0C,EAAE,CAAC,CAAC;IAChE,MAAM,SAAS,GAAGA,YAAM,CAAS,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9C,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC;QAC3B,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;KACxB;IAED,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;SAEe,gBAAgB,CAAC,EAAc,EAAE,YAAmC;IAClFC,eAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AACjD;;;;"}
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
4
3
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -7,18 +6,18 @@ var React = require('react');
7
6
  var useForceUpdate = require('../use-force-update/use-force-update.js');
8
7
 
9
8
  function useTextSelection() {
10
- const forceUpdate = useForceUpdate.useForceUpdate();
11
- const [selection, setSelection] = React.useState(null);
12
- const handleSelectionChange = () => {
13
- setSelection(document.getSelection());
14
- forceUpdate();
15
- };
16
- React.useEffect(() => {
17
- setSelection(document.getSelection());
18
- document.addEventListener("selectionchange", handleSelectionChange);
19
- return () => document.removeEventListener("selectionchange", handleSelectionChange);
20
- }, []);
21
- return selection;
9
+ const forceUpdate = useForceUpdate.useForceUpdate();
10
+ const [selection, setSelection] = React.useState(null);
11
+ const handleSelectionChange = () => {
12
+ setSelection(document.getSelection());
13
+ forceUpdate();
14
+ };
15
+ React.useEffect(() => {
16
+ setSelection(document.getSelection());
17
+ document.addEventListener('selectionchange', handleSelectionChange);
18
+ return () => document.removeEventListener('selectionchange', handleSelectionChange);
19
+ }, []);
20
+ return selection;
22
21
  }
23
22
 
24
23
  exports.useTextSelection = useTextSelection;