@mantine/hooks 6.0.11 → 7.0.0-alpha.10

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 (487) hide show
  1. package/cjs/index.js +6 -4
  2. package/cjs/index.js.map +1 -1
  3. package/cjs/use-callback-ref/use-callback-ref.js +16 -0
  4. package/cjs/use-callback-ref/use-callback-ref.js.map +1 -0
  5. package/cjs/use-click-outside/use-click-outside.js +21 -19
  6. package/cjs/use-click-outside/use-click-outside.js.map +1 -1
  7. package/cjs/use-clipboard/use-clipboard.js +26 -22
  8. package/cjs/use-clipboard/use-clipboard.js.map +1 -1
  9. package/cjs/use-color-scheme/use-color-scheme.js +3 -1
  10. package/cjs/use-color-scheme/use-color-scheme.js.map +1 -1
  11. package/cjs/use-counter/use-counter.js +9 -25
  12. package/cjs/use-counter/use-counter.js.map +1 -1
  13. package/cjs/use-debounced-callback/use-debounced-callback.js +19 -0
  14. package/cjs/use-debounced-callback/use-debounced-callback.js.map +1 -0
  15. package/cjs/use-debounced-state/use-debounced-state.js +19 -18
  16. package/cjs/use-debounced-state/use-debounced-state.js.map +1 -1
  17. package/cjs/use-debounced-value/use-debounced-value.js +25 -24
  18. package/cjs/use-debounced-value/use-debounced-value.js.map +1 -1
  19. package/cjs/use-did-update/use-did-update.js +11 -11
  20. package/cjs/use-did-update/use-did-update.js.map +1 -1
  21. package/cjs/use-disclosure/use-disclosure.js +24 -24
  22. package/cjs/use-disclosure/use-disclosure.js.map +1 -1
  23. package/cjs/use-document-title/use-document-title.js +5 -5
  24. package/cjs/use-document-title/use-document-title.js.map +1 -1
  25. package/cjs/use-document-visibility/use-document-visibility.js +7 -7
  26. package/cjs/use-document-visibility/use-document-visibility.js.map +1 -1
  27. package/cjs/use-event-listener/use-event-listener.js +9 -12
  28. package/cjs/use-event-listener/use-event-listener.js.map +1 -1
  29. package/cjs/use-eye-dropper/use-eye-dropper.js +12 -12
  30. package/cjs/use-eye-dropper/use-eye-dropper.js.map +1 -1
  31. package/cjs/use-favicon/use-favicon.js +23 -21
  32. package/cjs/use-favicon/use-favicon.js.map +1 -1
  33. package/cjs/use-focus-return/use-focus-return.js +29 -25
  34. package/cjs/use-focus-return/use-focus-return.js.map +1 -1
  35. package/cjs/use-focus-trap/create-aria-hider.js +36 -34
  36. package/cjs/use-focus-trap/create-aria-hider.js.map +1 -1
  37. package/cjs/use-focus-trap/scope-tab.js +15 -15
  38. package/cjs/use-focus-trap/scope-tab.js.map +1 -1
  39. package/cjs/use-focus-trap/tabbable.js +36 -31
  40. package/cjs/use-focus-trap/tabbable.js.map +1 -1
  41. package/cjs/use-focus-trap/use-focus-trap.js +67 -61
  42. package/cjs/use-focus-trap/use-focus-trap.js.map +1 -1
  43. package/cjs/use-focus-within/use-focus-within.js +37 -40
  44. package/cjs/use-focus-within/use-focus-within.js.map +1 -1
  45. package/cjs/use-force-update/use-force-update.js +3 -3
  46. package/cjs/use-force-update/use-force-update.js.map +1 -1
  47. package/cjs/use-fullscreen/use-fullscreen.js +83 -71
  48. package/cjs/use-fullscreen/use-fullscreen.js.map +1 -1
  49. package/cjs/use-hash/use-hash.js +16 -16
  50. package/cjs/use-hash/use-hash.js.map +1 -1
  51. package/cjs/use-headroom/use-headroom.js +23 -23
  52. package/cjs/use-headroom/use-headroom.js.map +1 -1
  53. package/cjs/use-hotkeys/parse-hotkey.js +49 -64
  54. package/cjs/use-hotkeys/parse-hotkey.js.map +1 -1
  55. package/cjs/use-hotkeys/use-hotkeys.js +22 -21
  56. package/cjs/use-hotkeys/use-hotkeys.js.map +1 -1
  57. package/cjs/use-hover/use-hover.js +17 -17
  58. package/cjs/use-hover/use-hover.js.map +1 -1
  59. package/cjs/use-id/use-id.js +12 -12
  60. package/cjs/use-id/use-id.js.map +1 -1
  61. package/cjs/use-id/use-react-id.js +3 -3
  62. package/cjs/use-id/use-react-id.js.map +1 -1
  63. package/cjs/use-idle/use-idle.js +26 -42
  64. package/cjs/use-idle/use-idle.js.map +1 -1
  65. package/cjs/use-input-state/use-input-state.js +22 -18
  66. package/cjs/use-input-state/use-input-state.js.map +1 -1
  67. package/cjs/use-intersection/use-intersection.js +17 -17
  68. package/cjs/use-intersection/use-intersection.js.map +1 -1
  69. package/cjs/use-interval/use-interval.js +28 -27
  70. package/cjs/use-interval/use-interval.js.map +1 -1
  71. package/cjs/use-isomorphic-effect/use-isomorphic-effect.js +3 -1
  72. package/cjs/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
  73. package/cjs/use-list-state/use-list-state.js +55 -74
  74. package/cjs/use-list-state/use-list-state.js.map +1 -1
  75. package/cjs/use-local-storage/create-storage.js +70 -70
  76. package/cjs/use-local-storage/create-storage.js.map +1 -1
  77. package/cjs/use-local-storage/use-local-storage.js +1 -1
  78. package/cjs/use-local-storage/use-local-storage.js.map +1 -1
  79. package/cjs/use-logger/use-logger.js +9 -8
  80. package/cjs/use-logger/use-logger.js.map +1 -1
  81. package/cjs/use-media-query/use-media-query.js +31 -26
  82. package/cjs/use-media-query/use-media-query.js.map +1 -1
  83. package/cjs/use-merged-ref/use-merged-ref.js +14 -5
  84. package/cjs/use-merged-ref/use-merged-ref.js.map +1 -1
  85. package/cjs/use-mouse/use-mouse.js +25 -40
  86. package/cjs/use-mouse/use-mouse.js.map +1 -1
  87. package/cjs/use-move/use-move.js +88 -86
  88. package/cjs/use-move/use-move.js.map +1 -1
  89. package/cjs/use-network/use-network.js +32 -48
  90. package/cjs/use-network/use-network.js.map +1 -1
  91. package/cjs/use-os/use-os.js +30 -30
  92. package/cjs/use-os/use-os.js.map +1 -1
  93. package/cjs/use-page-leave/use-page-leave.js +4 -4
  94. package/cjs/use-page-leave/use-page-leave.js.map +1 -1
  95. package/cjs/use-pagination/use-pagination.js +58 -63
  96. package/cjs/use-pagination/use-pagination.js.map +1 -1
  97. package/cjs/use-previous/use-previous.js +5 -5
  98. package/cjs/use-previous/use-previous.js.map +1 -1
  99. package/cjs/use-queue/use-queue.js +24 -24
  100. package/cjs/use-queue/use-queue.js.map +1 -1
  101. package/cjs/use-reduced-motion/use-reduced-motion.js +1 -1
  102. package/cjs/use-reduced-motion/use-reduced-motion.js.map +1 -1
  103. package/cjs/use-resize-observer/use-resize-observer.js +36 -34
  104. package/cjs/use-resize-observer/use-resize-observer.js.map +1 -1
  105. package/cjs/use-scroll-into-view/use-scroll-into-view.js +77 -77
  106. package/cjs/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
  107. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js +1 -1
  108. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
  109. package/cjs/use-scroll-into-view/utils/get-relative-position.js +46 -53
  110. package/cjs/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
  111. package/cjs/use-scroll-into-view/utils/get-scroll-start.js +10 -9
  112. package/cjs/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
  113. package/cjs/use-scroll-into-view/utils/set-scroll-param.js +14 -11
  114. package/cjs/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
  115. package/cjs/use-session-storage/use-session-storage.js +1 -1
  116. package/cjs/use-session-storage/use-session-storage.js.map +1 -1
  117. package/cjs/use-set-state/use-set-state.js +3 -19
  118. package/cjs/use-set-state/use-set-state.js.map +1 -1
  119. package/cjs/use-shallow-effect/use-shallow-effect.js +22 -22
  120. package/cjs/use-shallow-effect/use-shallow-effect.js.map +1 -1
  121. package/cjs/use-text-selection/use-text-selection.js +12 -12
  122. package/cjs/use-text-selection/use-text-selection.js.map +1 -1
  123. package/cjs/use-timeout/use-timeout.js +22 -26
  124. package/cjs/use-timeout/use-timeout.js.map +1 -1
  125. package/cjs/use-toggle/use-toggle.js +6 -6
  126. package/cjs/use-toggle/use-toggle.js.map +1 -1
  127. package/cjs/use-uncontrolled/use-uncontrolled.js +10 -16
  128. package/cjs/use-uncontrolled/use-uncontrolled.js.map +1 -1
  129. package/cjs/use-validated-state/use-validated-state.js +14 -13
  130. package/cjs/use-validated-state/use-validated-state.js.map +1 -1
  131. package/cjs/use-viewport-size/use-viewport-size.js +12 -12
  132. package/cjs/use-viewport-size/use-viewport-size.js.map +1 -1
  133. package/cjs/use-window-event/use-window-event.js +4 -4
  134. package/cjs/use-window-event/use-window-event.js.map +1 -1
  135. package/cjs/use-window-scroll/use-window-scroll.js +19 -17
  136. package/cjs/use-window-scroll/use-window-scroll.js.map +1 -1
  137. package/cjs/utils/clamp/clamp.js +1 -1
  138. package/cjs/utils/clamp/clamp.js.map +1 -1
  139. package/cjs/utils/lower-first/lower-first.js +1 -1
  140. package/cjs/utils/lower-first/lower-first.js.map +1 -1
  141. package/cjs/utils/random-id/random-id.js +1 -1
  142. package/cjs/utils/random-id/random-id.js.map +1 -1
  143. package/cjs/utils/range/range.js +2 -2
  144. package/cjs/utils/range/range.js.map +1 -1
  145. package/cjs/utils/shallow-equal/shallow-equal.js +19 -19
  146. package/cjs/utils/shallow-equal/shallow-equal.js.map +1 -1
  147. package/cjs/utils/upper-first/upper-first.js +1 -1
  148. package/cjs/utils/upper-first/upper-first.js.map +1 -1
  149. package/esm/index.js +4 -3
  150. package/esm/index.js.map +1 -1
  151. package/esm/use-callback-ref/use-callback-ref.js +12 -0
  152. package/esm/use-callback-ref/use-callback-ref.js.map +1 -0
  153. package/esm/use-click-outside/use-click-outside.js +21 -19
  154. package/esm/use-click-outside/use-click-outside.js.map +1 -1
  155. package/esm/use-clipboard/use-clipboard.js +26 -22
  156. package/esm/use-clipboard/use-clipboard.js.map +1 -1
  157. package/esm/use-color-scheme/use-color-scheme.js +3 -1
  158. package/esm/use-color-scheme/use-color-scheme.js.map +1 -1
  159. package/esm/use-counter/use-counter.js +9 -25
  160. package/esm/use-counter/use-counter.js.map +1 -1
  161. package/esm/use-debounced-callback/use-debounced-callback.js +15 -0
  162. package/esm/use-debounced-callback/use-debounced-callback.js.map +1 -0
  163. package/esm/use-debounced-state/use-debounced-state.js +19 -18
  164. package/esm/use-debounced-state/use-debounced-state.js.map +1 -1
  165. package/esm/use-debounced-value/use-debounced-value.js +25 -24
  166. package/esm/use-debounced-value/use-debounced-value.js.map +1 -1
  167. package/esm/use-did-update/use-did-update.js +11 -11
  168. package/esm/use-did-update/use-did-update.js.map +1 -1
  169. package/esm/use-disclosure/use-disclosure.js +24 -24
  170. package/esm/use-disclosure/use-disclosure.js.map +1 -1
  171. package/esm/use-document-title/use-document-title.js +5 -5
  172. package/esm/use-document-title/use-document-title.js.map +1 -1
  173. package/esm/use-document-visibility/use-document-visibility.js +7 -7
  174. package/esm/use-document-visibility/use-document-visibility.js.map +1 -1
  175. package/esm/use-event-listener/use-event-listener.js +9 -12
  176. package/esm/use-event-listener/use-event-listener.js.map +1 -1
  177. package/esm/use-eye-dropper/use-eye-dropper.js +12 -12
  178. package/esm/use-eye-dropper/use-eye-dropper.js.map +1 -1
  179. package/esm/use-favicon/use-favicon.js +23 -21
  180. package/esm/use-favicon/use-favicon.js.map +1 -1
  181. package/esm/use-focus-return/use-focus-return.js +29 -25
  182. package/esm/use-focus-return/use-focus-return.js.map +1 -1
  183. package/esm/use-focus-trap/create-aria-hider.js +36 -34
  184. package/esm/use-focus-trap/create-aria-hider.js.map +1 -1
  185. package/esm/use-focus-trap/scope-tab.js +15 -15
  186. package/esm/use-focus-trap/scope-tab.js.map +1 -1
  187. package/esm/use-focus-trap/tabbable.js +36 -31
  188. package/esm/use-focus-trap/tabbable.js.map +1 -1
  189. package/esm/use-focus-trap/use-focus-trap.js +67 -61
  190. package/esm/use-focus-trap/use-focus-trap.js.map +1 -1
  191. package/esm/use-focus-within/use-focus-within.js +37 -40
  192. package/esm/use-focus-within/use-focus-within.js.map +1 -1
  193. package/esm/use-force-update/use-force-update.js +3 -3
  194. package/esm/use-force-update/use-force-update.js.map +1 -1
  195. package/esm/use-fullscreen/use-fullscreen.js +83 -71
  196. package/esm/use-fullscreen/use-fullscreen.js.map +1 -1
  197. package/esm/use-hash/use-hash.js +16 -16
  198. package/esm/use-hash/use-hash.js.map +1 -1
  199. package/esm/use-headroom/use-headroom.js +23 -23
  200. package/esm/use-headroom/use-headroom.js.map +1 -1
  201. package/esm/use-hotkeys/parse-hotkey.js +49 -64
  202. package/esm/use-hotkeys/parse-hotkey.js.map +1 -1
  203. package/esm/use-hotkeys/use-hotkeys.js +22 -21
  204. package/esm/use-hotkeys/use-hotkeys.js.map +1 -1
  205. package/esm/use-hover/use-hover.js +17 -17
  206. package/esm/use-hover/use-hover.js.map +1 -1
  207. package/esm/use-id/use-id.js +12 -12
  208. package/esm/use-id/use-id.js.map +1 -1
  209. package/esm/use-id/use-react-id.js +3 -3
  210. package/esm/use-id/use-react-id.js.map +1 -1
  211. package/esm/use-idle/use-idle.js +26 -42
  212. package/esm/use-idle/use-idle.js.map +1 -1
  213. package/esm/use-input-state/use-input-state.js +22 -18
  214. package/esm/use-input-state/use-input-state.js.map +1 -1
  215. package/esm/use-intersection/use-intersection.js +17 -17
  216. package/esm/use-intersection/use-intersection.js.map +1 -1
  217. package/esm/use-interval/use-interval.js +28 -27
  218. package/esm/use-interval/use-interval.js.map +1 -1
  219. package/esm/use-isomorphic-effect/use-isomorphic-effect.js +3 -1
  220. package/esm/use-isomorphic-effect/use-isomorphic-effect.js.map +1 -1
  221. package/esm/use-list-state/use-list-state.js +55 -74
  222. package/esm/use-list-state/use-list-state.js.map +1 -1
  223. package/esm/use-local-storage/create-storage.js +70 -70
  224. package/esm/use-local-storage/create-storage.js.map +1 -1
  225. package/esm/use-local-storage/use-local-storage.js +1 -1
  226. package/esm/use-local-storage/use-local-storage.js.map +1 -1
  227. package/esm/use-logger/use-logger.js +9 -8
  228. package/esm/use-logger/use-logger.js.map +1 -1
  229. package/esm/use-media-query/use-media-query.js +31 -26
  230. package/esm/use-media-query/use-media-query.js.map +1 -1
  231. package/esm/use-merged-ref/use-merged-ref.js +14 -6
  232. package/esm/use-merged-ref/use-merged-ref.js.map +1 -1
  233. package/esm/use-mouse/use-mouse.js +25 -40
  234. package/esm/use-mouse/use-mouse.js.map +1 -1
  235. package/esm/use-move/use-move.js +88 -86
  236. package/esm/use-move/use-move.js.map +1 -1
  237. package/esm/use-network/use-network.js +32 -48
  238. package/esm/use-network/use-network.js.map +1 -1
  239. package/esm/use-os/use-os.js +30 -30
  240. package/esm/use-os/use-os.js.map +1 -1
  241. package/esm/use-page-leave/use-page-leave.js +4 -4
  242. package/esm/use-page-leave/use-page-leave.js.map +1 -1
  243. package/esm/use-pagination/use-pagination.js +58 -63
  244. package/esm/use-pagination/use-pagination.js.map +1 -1
  245. package/esm/use-previous/use-previous.js +5 -5
  246. package/esm/use-previous/use-previous.js.map +1 -1
  247. package/esm/use-queue/use-queue.js +24 -24
  248. package/esm/use-queue/use-queue.js.map +1 -1
  249. package/esm/use-reduced-motion/use-reduced-motion.js +1 -1
  250. package/esm/use-reduced-motion/use-reduced-motion.js.map +1 -1
  251. package/esm/use-resize-observer/use-resize-observer.js +36 -34
  252. package/esm/use-resize-observer/use-resize-observer.js.map +1 -1
  253. package/esm/use-scroll-into-view/use-scroll-into-view.js +77 -77
  254. package/esm/use-scroll-into-view/use-scroll-into-view.js.map +1 -1
  255. package/esm/use-scroll-into-view/utils/ease-in-out-quad.js +1 -1
  256. package/esm/use-scroll-into-view/utils/ease-in-out-quad.js.map +1 -1
  257. package/esm/use-scroll-into-view/utils/get-relative-position.js +46 -53
  258. package/esm/use-scroll-into-view/utils/get-relative-position.js.map +1 -1
  259. package/esm/use-scroll-into-view/utils/get-scroll-start.js +10 -9
  260. package/esm/use-scroll-into-view/utils/get-scroll-start.js.map +1 -1
  261. package/esm/use-scroll-into-view/utils/set-scroll-param.js +14 -11
  262. package/esm/use-scroll-into-view/utils/set-scroll-param.js.map +1 -1
  263. package/esm/use-session-storage/use-session-storage.js +1 -1
  264. package/esm/use-session-storage/use-session-storage.js.map +1 -1
  265. package/esm/use-set-state/use-set-state.js +3 -19
  266. package/esm/use-set-state/use-set-state.js.map +1 -1
  267. package/esm/use-shallow-effect/use-shallow-effect.js +22 -22
  268. package/esm/use-shallow-effect/use-shallow-effect.js.map +1 -1
  269. package/esm/use-text-selection/use-text-selection.js +12 -12
  270. package/esm/use-text-selection/use-text-selection.js.map +1 -1
  271. package/esm/use-timeout/use-timeout.js +23 -27
  272. package/esm/use-timeout/use-timeout.js.map +1 -1
  273. package/esm/use-toggle/use-toggle.js +6 -6
  274. package/esm/use-toggle/use-toggle.js.map +1 -1
  275. package/esm/use-uncontrolled/use-uncontrolled.js +10 -16
  276. package/esm/use-uncontrolled/use-uncontrolled.js.map +1 -1
  277. package/esm/use-validated-state/use-validated-state.js +14 -13
  278. package/esm/use-validated-state/use-validated-state.js.map +1 -1
  279. package/esm/use-viewport-size/use-viewport-size.js +12 -12
  280. package/esm/use-viewport-size/use-viewport-size.js.map +1 -1
  281. package/esm/use-window-event/use-window-event.js +4 -4
  282. package/esm/use-window-event/use-window-event.js.map +1 -1
  283. package/esm/use-window-scroll/use-window-scroll.js +19 -17
  284. package/esm/use-window-scroll/use-window-scroll.js.map +1 -1
  285. package/esm/utils/clamp/clamp.js +1 -1
  286. package/esm/utils/clamp/clamp.js.map +1 -1
  287. package/esm/utils/lower-first/lower-first.js +1 -1
  288. package/esm/utils/lower-first/lower-first.js.map +1 -1
  289. package/esm/utils/random-id/random-id.js +1 -1
  290. package/esm/utils/random-id/random-id.js.map +1 -1
  291. package/esm/utils/range/range.js +2 -2
  292. package/esm/utils/range/range.js.map +1 -1
  293. package/esm/utils/shallow-equal/shallow-equal.js +19 -19
  294. package/esm/utils/shallow-equal/shallow-equal.js.map +1 -1
  295. package/esm/utils/upper-first/upper-first.js +1 -1
  296. package/esm/utils/upper-first/upper-first.js.map +1 -1
  297. package/lib/index.d.ts +4 -3
  298. package/lib/use-callback-ref/use-callback-ref.d.ts +1 -0
  299. package/lib/use-click-outside/use-click-outside.d.ts +1 -2
  300. package/lib/use-clipboard/use-clipboard.d.ts +2 -3
  301. package/lib/use-color-scheme/use-color-scheme.d.ts +0 -1
  302. package/lib/use-counter/use-counter.d.ts +0 -1
  303. package/lib/use-debounced-callback/use-debounced-callback.d.ts +1 -0
  304. package/lib/use-debounced-state/use-debounced-state.d.ts +0 -1
  305. package/lib/use-debounced-value/use-debounced-value.d.ts +0 -1
  306. package/lib/use-did-update/use-did-update.d.ts +0 -1
  307. package/lib/use-disclosure/use-disclosure.d.ts +0 -1
  308. package/lib/use-document-title/use-document-title.d.ts +0 -1
  309. package/lib/use-document-visibility/use-document-visibility.d.ts +0 -1
  310. package/lib/use-event-listener/use-event-listener.d.ts +1 -2
  311. package/lib/use-eye-dropper/use-eye-dropper.d.ts +1 -2
  312. package/lib/use-favicon/use-favicon.d.ts +0 -1
  313. package/lib/use-focus-return/use-focus-return.d.ts +0 -1
  314. package/lib/use-focus-trap/create-aria-hider.d.ts +0 -1
  315. package/lib/use-focus-trap/scope-tab.d.ts +0 -1
  316. package/lib/use-focus-trap/tabbable.d.ts +2 -3
  317. package/lib/use-focus-trap/use-focus-trap.d.ts +0 -1
  318. package/lib/use-focus-within/use-focus-within.d.ts +0 -1
  319. package/lib/use-force-update/use-force-update.d.ts +0 -1
  320. package/lib/use-fullscreen/use-fullscreen.d.ts +0 -1
  321. package/lib/use-hash/use-hash.d.ts +0 -1
  322. package/lib/use-headroom/use-headroom.d.ts +0 -1
  323. package/lib/use-hotkeys/parse-hotkey.d.ts +0 -1
  324. package/lib/use-hotkeys/use-hotkeys.d.ts +0 -1
  325. package/lib/use-hover/use-hover.d.ts +1 -2
  326. package/lib/use-id/use-id.d.ts +0 -1
  327. package/lib/use-id/use-react-id.d.ts +0 -1
  328. package/lib/use-idle/use-idle.d.ts +0 -1
  329. package/lib/use-input-state/use-input-state.d.ts +1 -2
  330. package/lib/use-intersection/use-intersection.d.ts +1 -2
  331. package/lib/use-interval/use-interval.d.ts +0 -1
  332. package/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts +0 -1
  333. package/lib/use-list-state/use-list-state.d.ts +0 -1
  334. package/lib/use-local-storage/create-storage.d.ts +4 -5
  335. package/lib/use-local-storage/use-local-storage.d.ts +1 -2
  336. package/lib/use-logger/use-logger.d.ts +1 -2
  337. package/lib/use-media-query/use-media-query.d.ts +1 -2
  338. package/lib/use-merged-ref/use-merged-ref.d.ts +5 -5
  339. package/lib/use-mouse/use-mouse.d.ts +1 -2
  340. package/lib/use-move/use-move.d.ts +1 -2
  341. package/lib/use-network/use-network.d.ts +0 -1
  342. package/lib/use-os/use-os.d.ts +0 -1
  343. package/lib/use-page-leave/use-page-leave.d.ts +0 -1
  344. package/lib/use-pagination/use-pagination.d.ts +0 -1
  345. package/lib/use-previous/use-previous.d.ts +0 -1
  346. package/lib/use-queue/use-queue.d.ts +0 -1
  347. package/lib/use-reduced-motion/use-reduced-motion.d.ts +1 -2
  348. package/lib/use-resize-observer/use-resize-observer.d.ts +2 -3
  349. package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +2 -3
  350. package/lib/use-scroll-into-view/utils/ease-in-out-quad.d.ts +0 -1
  351. package/lib/use-scroll-into-view/utils/get-relative-position.d.ts +1 -9
  352. package/lib/use-scroll-into-view/utils/get-scroll-start.d.ts +1 -5
  353. package/lib/use-scroll-into-view/utils/set-scroll-param.d.ts +1 -6
  354. package/lib/use-session-storage/use-session-storage.d.ts +1 -2
  355. package/lib/use-set-state/use-set-state.d.ts +0 -1
  356. package/lib/use-shallow-effect/use-shallow-effect.d.ts +0 -1
  357. package/lib/use-text-selection/use-text-selection.d.ts +0 -1
  358. package/lib/use-timeout/use-timeout.d.ts +0 -1
  359. package/lib/use-toggle/use-toggle.d.ts +0 -1
  360. package/lib/use-uncontrolled/use-uncontrolled.d.ts +0 -1
  361. package/lib/use-validated-state/use-validated-state.d.ts +1 -2
  362. package/lib/use-viewport-size/use-viewport-size.d.ts +0 -1
  363. package/lib/use-window-event/use-window-event.d.ts +0 -1
  364. package/lib/use-window-scroll/use-window-scroll.d.ts +0 -1
  365. package/lib/utils/clamp/clamp.d.ts +0 -1
  366. package/lib/utils/index.d.ts +0 -2
  367. package/lib/utils/lower-first/lower-first.d.ts +0 -1
  368. package/lib/utils/random-id/random-id.d.ts +0 -1
  369. package/lib/utils/range/range.d.ts +0 -1
  370. package/lib/utils/shallow-equal/shallow-equal.d.ts +0 -1
  371. package/lib/utils/upper-first/upper-first.d.ts +0 -1
  372. package/package.json +11 -5
  373. package/cjs/use-scroll-lock/use-scroll-lock.js +0 -54
  374. package/cjs/use-scroll-lock/use-scroll-lock.js.map +0 -1
  375. package/cjs/use-scroll-lock/utils/get-lock-styles.js +0 -20
  376. package/cjs/use-scroll-lock/utils/get-lock-styles.js.map +0 -1
  377. package/cjs/use-scroll-lock/utils/get-scroll-width.js +0 -14
  378. package/cjs/use-scroll-lock/utils/get-scroll-width.js.map +0 -1
  379. package/cjs/use-scroll-lock/utils/inject-style-tag.js +0 -14
  380. package/cjs/use-scroll-lock/utils/inject-style-tag.js.map +0 -1
  381. package/cjs/use-scroll-lock/utils/insert-style-tag.js +0 -11
  382. package/cjs/use-scroll-lock/utils/insert-style-tag.js.map +0 -1
  383. package/cjs/use-scroll-lock/utils/make-style-tag.js +0 -13
  384. package/cjs/use-scroll-lock/utils/make-style-tag.js.map +0 -1
  385. package/cjs/utils/assign-ref/assign-ref.js +0 -14
  386. package/cjs/utils/assign-ref/assign-ref.js.map +0 -1
  387. package/esm/use-scroll-lock/use-scroll-lock.js +0 -50
  388. package/esm/use-scroll-lock/use-scroll-lock.js.map +0 -1
  389. package/esm/use-scroll-lock/utils/get-lock-styles.js +0 -16
  390. package/esm/use-scroll-lock/utils/get-lock-styles.js.map +0 -1
  391. package/esm/use-scroll-lock/utils/get-scroll-width.js +0 -10
  392. package/esm/use-scroll-lock/utils/get-scroll-width.js.map +0 -1
  393. package/esm/use-scroll-lock/utils/inject-style-tag.js +0 -10
  394. package/esm/use-scroll-lock/utils/inject-style-tag.js.map +0 -1
  395. package/esm/use-scroll-lock/utils/insert-style-tag.js +0 -7
  396. package/esm/use-scroll-lock/utils/insert-style-tag.js.map +0 -1
  397. package/esm/use-scroll-lock/utils/make-style-tag.js +0 -9
  398. package/esm/use-scroll-lock/utils/make-style-tag.js.map +0 -1
  399. package/esm/utils/assign-ref/assign-ref.js +0 -10
  400. package/esm/utils/assign-ref/assign-ref.js.map +0 -1
  401. package/lib/index.d.ts.map +0 -1
  402. package/lib/use-click-outside/use-click-outside.d.ts.map +0 -1
  403. package/lib/use-clipboard/use-clipboard.d.ts.map +0 -1
  404. package/lib/use-color-scheme/use-color-scheme.d.ts.map +0 -1
  405. package/lib/use-counter/use-counter.d.ts.map +0 -1
  406. package/lib/use-debounced-state/use-debounced-state.d.ts.map +0 -1
  407. package/lib/use-debounced-value/use-debounced-value.d.ts.map +0 -1
  408. package/lib/use-did-update/use-did-update.d.ts.map +0 -1
  409. package/lib/use-disclosure/use-disclosure.d.ts.map +0 -1
  410. package/lib/use-document-title/use-document-title.d.ts.map +0 -1
  411. package/lib/use-document-visibility/use-document-visibility.d.ts.map +0 -1
  412. package/lib/use-event-listener/use-event-listener.d.ts.map +0 -1
  413. package/lib/use-eye-dropper/use-eye-dropper.d.ts.map +0 -1
  414. package/lib/use-favicon/use-favicon.d.ts.map +0 -1
  415. package/lib/use-focus-return/use-focus-return.d.ts.map +0 -1
  416. package/lib/use-focus-trap/create-aria-hider.d.ts.map +0 -1
  417. package/lib/use-focus-trap/scope-tab.d.ts.map +0 -1
  418. package/lib/use-focus-trap/tabbable.d.ts.map +0 -1
  419. package/lib/use-focus-trap/use-focus-trap.d.ts.map +0 -1
  420. package/lib/use-focus-within/use-focus-within.d.ts.map +0 -1
  421. package/lib/use-force-update/use-force-update.d.ts.map +0 -1
  422. package/lib/use-fullscreen/use-fullscreen.d.ts.map +0 -1
  423. package/lib/use-hash/use-hash.d.ts.map +0 -1
  424. package/lib/use-headroom/use-headroom.d.ts.map +0 -1
  425. package/lib/use-hotkeys/parse-hotkey.d.ts.map +0 -1
  426. package/lib/use-hotkeys/use-hotkeys.d.ts.map +0 -1
  427. package/lib/use-hover/use-hover.d.ts.map +0 -1
  428. package/lib/use-id/use-id.d.ts.map +0 -1
  429. package/lib/use-id/use-react-id.d.ts.map +0 -1
  430. package/lib/use-idle/use-idle.d.ts.map +0 -1
  431. package/lib/use-input-state/use-input-state.d.ts.map +0 -1
  432. package/lib/use-intersection/use-intersection.d.ts.map +0 -1
  433. package/lib/use-interval/use-interval.d.ts.map +0 -1
  434. package/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts.map +0 -1
  435. package/lib/use-list-state/use-list-state.d.ts.map +0 -1
  436. package/lib/use-local-storage/create-storage.d.ts.map +0 -1
  437. package/lib/use-local-storage/use-local-storage.d.ts.map +0 -1
  438. package/lib/use-logger/use-logger.d.ts.map +0 -1
  439. package/lib/use-media-query/use-media-query.d.ts.map +0 -1
  440. package/lib/use-merged-ref/use-merged-ref.d.ts.map +0 -1
  441. package/lib/use-mouse/use-mouse.d.ts.map +0 -1
  442. package/lib/use-move/use-move.d.ts.map +0 -1
  443. package/lib/use-network/use-network.d.ts.map +0 -1
  444. package/lib/use-os/use-os.d.ts.map +0 -1
  445. package/lib/use-page-leave/use-page-leave.d.ts.map +0 -1
  446. package/lib/use-pagination/use-pagination.d.ts.map +0 -1
  447. package/lib/use-previous/use-previous.d.ts.map +0 -1
  448. package/lib/use-queue/use-queue.d.ts.map +0 -1
  449. package/lib/use-reduced-motion/use-reduced-motion.d.ts.map +0 -1
  450. package/lib/use-resize-observer/use-resize-observer.d.ts.map +0 -1
  451. package/lib/use-scroll-into-view/use-scroll-into-view.d.ts.map +0 -1
  452. package/lib/use-scroll-into-view/utils/ease-in-out-quad.d.ts.map +0 -1
  453. package/lib/use-scroll-into-view/utils/get-relative-position.d.ts.map +0 -1
  454. package/lib/use-scroll-into-view/utils/get-scroll-start.d.ts.map +0 -1
  455. package/lib/use-scroll-into-view/utils/set-scroll-param.d.ts.map +0 -1
  456. package/lib/use-scroll-lock/use-scroll-lock.d.ts +0 -5
  457. package/lib/use-scroll-lock/use-scroll-lock.d.ts.map +0 -1
  458. package/lib/use-scroll-lock/utils/get-lock-styles.d.ts +0 -4
  459. package/lib/use-scroll-lock/utils/get-lock-styles.d.ts.map +0 -1
  460. package/lib/use-scroll-lock/utils/get-scroll-width.d.ts +0 -2
  461. package/lib/use-scroll-lock/utils/get-scroll-width.d.ts.map +0 -1
  462. package/lib/use-scroll-lock/utils/inject-style-tag.d.ts +0 -2
  463. package/lib/use-scroll-lock/utils/inject-style-tag.d.ts.map +0 -1
  464. package/lib/use-scroll-lock/utils/insert-style-tag.d.ts +0 -2
  465. package/lib/use-scroll-lock/utils/insert-style-tag.d.ts.map +0 -1
  466. package/lib/use-scroll-lock/utils/make-style-tag.d.ts +0 -2
  467. package/lib/use-scroll-lock/utils/make-style-tag.d.ts.map +0 -1
  468. package/lib/use-session-storage/use-session-storage.d.ts.map +0 -1
  469. package/lib/use-set-state/use-set-state.d.ts.map +0 -1
  470. package/lib/use-shallow-effect/use-shallow-effect.d.ts.map +0 -1
  471. package/lib/use-text-selection/use-text-selection.d.ts.map +0 -1
  472. package/lib/use-timeout/use-timeout.d.ts.map +0 -1
  473. package/lib/use-toggle/use-toggle.d.ts.map +0 -1
  474. package/lib/use-uncontrolled/use-uncontrolled.d.ts.map +0 -1
  475. package/lib/use-validated-state/use-validated-state.d.ts.map +0 -1
  476. package/lib/use-viewport-size/use-viewport-size.d.ts.map +0 -1
  477. package/lib/use-window-event/use-window-event.d.ts.map +0 -1
  478. package/lib/use-window-scroll/use-window-scroll.d.ts.map +0 -1
  479. package/lib/utils/assign-ref/assign-ref.d.ts +0 -3
  480. package/lib/utils/assign-ref/assign-ref.d.ts.map +0 -1
  481. package/lib/utils/clamp/clamp.d.ts.map +0 -1
  482. package/lib/utils/index.d.ts.map +0 -1
  483. package/lib/utils/lower-first/lower-first.d.ts.map +0 -1
  484. package/lib/utils/random-id/random-id.d.ts.map +0 -1
  485. package/lib/utils/range/range.d.ts.map +0 -1
  486. package/lib/utils/shallow-equal/shallow-equal.d.ts.map +0 -1
  487. package/lib/utils/upper-first/upper-first.d.ts.map +0 -1
@@ -5,33 +5,34 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
 
7
7
  function useInterval(fn, interval) {
8
- const [active, setActive] = React.useState(false);
9
- const intervalRef = React.useRef();
10
- const fnRef = React.useRef();
11
- React.useEffect(() => {
12
- fnRef.current = fn;
13
- }, [fn]);
14
- const start = () => {
15
- setActive((old) => {
16
- if (!old && !intervalRef.current) {
17
- intervalRef.current = window.setInterval(fnRef.current, interval);
18
- }
19
- return true;
20
- });
21
- };
22
- const stop = () => {
23
- setActive(false);
24
- window.clearInterval(intervalRef.current);
25
- intervalRef.current = void 0;
26
- };
27
- const toggle = () => {
28
- if (active) {
29
- stop();
30
- } else {
31
- start();
32
- }
33
- };
34
- return { start, stop, toggle, active };
8
+ const [active, setActive] = React.useState(false);
9
+ const intervalRef = React.useRef();
10
+ const fnRef = React.useRef();
11
+ React.useEffect(() => {
12
+ fnRef.current = fn;
13
+ }, [fn]);
14
+ const start = () => {
15
+ setActive((old) => {
16
+ if (!old && !intervalRef.current) {
17
+ intervalRef.current = window.setInterval(fnRef.current, interval);
18
+ }
19
+ return true;
20
+ });
21
+ };
22
+ const stop = () => {
23
+ setActive(false);
24
+ window.clearInterval(intervalRef.current);
25
+ intervalRef.current = undefined;
26
+ };
27
+ const toggle = () => {
28
+ if (active) {
29
+ stop();
30
+ }
31
+ else {
32
+ start();
33
+ }
34
+ };
35
+ return { start, stop, toggle, active };
35
36
  }
36
37
 
37
38
  exports.useInterval = useInterval;
@@ -1 +1 @@
1
- {"version":3,"file":"use-interval.js","sources":["../../src/use-interval/use-interval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport function useInterval(fn: () => void, interval: number) {\n const [active, setActive] = useState(false);\n const intervalRef = useRef<number>();\n const fnRef = useRef<() => void>();\n\n useEffect(() => {\n fnRef.current = fn;\n }, [fn]);\n\n const start = () => {\n setActive((old) => {\n if (!old && !intervalRef.current) {\n intervalRef.current = window.setInterval(fnRef.current, interval);\n }\n return true;\n });\n };\n\n const stop = () => {\n setActive(false);\n window.clearInterval(intervalRef.current);\n intervalRef.current = undefined;\n };\n\n const toggle = () => {\n if (active) {\n stop();\n } else {\n start();\n }\n };\n\n return { start, stop, toggle, active };\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;AACO,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE;AAC1C,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAGC,YAAM,EAAE,CAAC;AAC/B,EAAE,MAAM,KAAK,GAAGA,YAAM,EAAE,CAAC;AACzB,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AACvB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,EAAE,MAAM,KAAK,GAAG,MAAM;AACtB,IAAI,SAAS,CAAC,CAAC,GAAG,KAAK;AACvB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AACxC,QAAQ,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1E,OAAO;AACP,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,MAAM;AACrB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACrB,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,IAAI,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,MAAM;AACvB,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,EAAE,CAAC;AACb,KAAK,MAAM;AACX,MAAM,KAAK,EAAE,CAAC;AACd,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACzC;;;;"}
1
+ {"version":3,"file":"use-interval.js","sources":["../../src/use-interval/use-interval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport function useInterval(fn: () => void, interval: number) {\n const [active, setActive] = useState(false);\n const intervalRef = useRef<number>();\n const fnRef = useRef<() => void>();\n\n useEffect(() => {\n fnRef.current = fn;\n }, [fn]);\n\n const start = () => {\n setActive((old) => {\n if (!old && !intervalRef.current) {\n intervalRef.current = window.setInterval(fnRef.current!, interval);\n }\n return true;\n });\n };\n\n const stop = () => {\n setActive(false);\n window.clearInterval(intervalRef.current);\n intervalRef.current = undefined;\n };\n\n const toggle = () => {\n if (active) {\n stop();\n } else {\n start();\n }\n };\n\n return { start, stop, toggle, active };\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;SAEgB,WAAW,CAAC,EAAc,EAAE,QAAgB;IAC1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAGC,YAAM,EAAU,CAAC;IACrC,MAAM,KAAK,GAAGA,YAAM,EAAc,CAAC;IAEnCC,eAAS,CAAC;QACR,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KACpB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,MAAM,KAAK,GAAG;QACZ,SAAS,CAAC,CAAC,GAAG;YACZ,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAChC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAQ,EAAE,QAAQ,CAAC,CAAC;aACpE;YACD,OAAO,IAAI,CAAC;SACb,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,IAAI,GAAG;QACX,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;KACjC,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,IAAI,MAAM,EAAE;YACV,IAAI,EAAE,CAAC;SACR;aAAM;YACL,KAAK,EAAE,CAAC;SACT;KACF,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACzC;;;;"}
@@ -4,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
 
7
- const useIsomorphicEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect;
7
+ // useLayoutEffect will show warning if used during ssr, e.g. with Next.js
8
+ // useIsomorphicEffect removes it by replacing useLayoutEffect with useEffect during ssr
9
+ const useIsomorphicEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;
8
10
 
9
11
  exports.useIsomorphicEffect = useIsomorphicEffect;
10
12
  //# sourceMappingURL=use-isomorphic-effect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-isomorphic-effect.js","sources":["../../src/use-isomorphic-effect/use-isomorphic-effect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\n// useLayoutEffect will show warning if used during ssr, e.g. with Next.js\n// useIsomorphicEffect removes it by replacing useLayoutEffect with useEffect during ssr\nexport const useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n"],"names":["useLayoutEffect","useEffect"],"mappings":";;;;;;AACY,MAAC,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAGA,qBAAe,GAAGC;;;;"}
1
+ {"version":3,"file":"use-isomorphic-effect.js","sources":["../../src/use-isomorphic-effect/use-isomorphic-effect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\n// useLayoutEffect will show warning if used during ssr, e.g. with Next.js\n// useIsomorphicEffect removes it by replacing useLayoutEffect with useEffect during ssr\nexport const useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n"],"names":["useLayoutEffect","useEffect"],"mappings":";;;;;;AAEA;AACA;MACa,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAGA,qBAAe,GAAGC;;;;"}
@@ -4,81 +4,62 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
 
7
- var __defProp = Object.defineProperty;
8
- var __defProps = Object.defineProperties;
9
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
- var __spreadValues = (a, b) => {
15
- for (var prop in b || (b = {}))
16
- if (__hasOwnProp.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- if (__getOwnPropSymbols)
19
- for (var prop of __getOwnPropSymbols(b)) {
20
- if (__propIsEnum.call(b, prop))
21
- __defNormalProp(a, prop, b[prop]);
22
- }
23
- return a;
24
- };
25
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
7
  function useListState(initialValue = []) {
27
- const [state, setState] = React.useState(initialValue);
28
- const append = (...items) => setState((current) => [...current, ...items]);
29
- const prepend = (...items) => setState((current) => [...items, ...current]);
30
- const insert = (index, ...items) => setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);
31
- const apply = (fn) => setState((current) => current.map((item, index) => fn(item, index)));
32
- const remove = (...indices) => setState((current) => current.filter((_, index) => !indices.includes(index)));
33
- const pop = () => setState((current) => {
34
- const cloned = [...current];
35
- cloned.pop();
36
- return cloned;
37
- });
38
- const shift = () => setState((current) => {
39
- const cloned = [...current];
40
- cloned.shift();
41
- return cloned;
42
- });
43
- const reorder = ({ from, to }) => setState((current) => {
44
- const cloned = [...current];
45
- const item = current[from];
46
- cloned.splice(from, 1);
47
- cloned.splice(to, 0, item);
48
- return cloned;
49
- });
50
- const setItem = (index, item) => setState((current) => {
51
- const cloned = [...current];
52
- cloned[index] = item;
53
- return cloned;
54
- });
55
- const setItemProp = (index, prop, value) => setState((current) => {
56
- const cloned = [...current];
57
- cloned[index] = __spreadProps(__spreadValues({}, cloned[index]), { [prop]: value });
58
- return cloned;
59
- });
60
- const applyWhere = (condition, fn) => setState((current) => current.map((item, index) => condition(item, index) ? fn(item, index) : item));
61
- const filter = (fn) => {
62
- setState((current) => current.filter(fn));
63
- };
64
- return [
65
- state,
66
- {
67
- setState,
68
- append,
69
- prepend,
70
- insert,
71
- pop,
72
- shift,
73
- apply,
74
- applyWhere,
75
- remove,
76
- reorder,
77
- setItem,
78
- setItemProp,
79
- filter
80
- }
81
- ];
8
+ const [state, setState] = React.useState(initialValue);
9
+ const append = (...items) => setState((current) => [...current, ...items]);
10
+ const prepend = (...items) => setState((current) => [...items, ...current]);
11
+ const insert = (index, ...items) => setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);
12
+ const apply = (fn) => setState((current) => current.map((item, index) => fn(item, index)));
13
+ const remove = (...indices) => setState((current) => current.filter((_, index) => !indices.includes(index)));
14
+ const pop = () => setState((current) => {
15
+ const cloned = [...current];
16
+ cloned.pop();
17
+ return cloned;
18
+ });
19
+ const shift = () => setState((current) => {
20
+ const cloned = [...current];
21
+ cloned.shift();
22
+ return cloned;
23
+ });
24
+ const reorder = ({ from, to }) => setState((current) => {
25
+ const cloned = [...current];
26
+ const item = current[from];
27
+ cloned.splice(from, 1);
28
+ cloned.splice(to, 0, item);
29
+ return cloned;
30
+ });
31
+ const setItem = (index, item) => setState((current) => {
32
+ const cloned = [...current];
33
+ cloned[index] = item;
34
+ return cloned;
35
+ });
36
+ const setItemProp = (index, prop, value) => setState((current) => {
37
+ const cloned = [...current];
38
+ cloned[index] = Object.assign(Object.assign({}, cloned[index]), { [prop]: value });
39
+ return cloned;
40
+ });
41
+ const applyWhere = (condition, fn) => setState((current) => current.map((item, index) => (condition(item, index) ? fn(item, index) : item)));
42
+ const filter = (fn) => {
43
+ setState((current) => current.filter(fn));
44
+ };
45
+ return [
46
+ state,
47
+ {
48
+ setState,
49
+ append,
50
+ prepend,
51
+ insert,
52
+ pop,
53
+ shift,
54
+ apply,
55
+ applyWhere,
56
+ remove,
57
+ reorder,
58
+ setItem,
59
+ setItemProp,
60
+ filter,
61
+ },
62
+ ];
82
63
  }
83
64
 
84
65
  exports.useListState = useListState;
@@ -1 +1 @@
1
- {"version":3,"file":"use-list-state.js","sources":["../../src/use-list-state/use-list-state.ts"],"sourcesContent":["import React, { useState } from 'react';\n\nexport interface UseListStateHandlers<T> {\n setState: React.Dispatch<React.SetStateAction<T[]>>;\n append: (...items: T[]) => void;\n prepend: (...items: T[]) => void;\n insert: (index: number, ...items: T[]) => void;\n pop: () => void;\n shift: () => void;\n apply: (fn: (item: T, index?: number) => T) => void;\n applyWhere: (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) => void;\n remove: (...indices: number[]) => void;\n reorder: ({ from, to }: { from: number; to: number }) => void;\n setItem: (index: number, item: T) => void;\n setItemProp: <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) => void;\n filter: (fn: (item: T, i: number) => boolean) => void;\n}\n\nexport type UseListState<T> = [T[], UseListStateHandlers<T>];\n\nexport function useListState<T>(initialValue: T[] = []): UseListState<T> {\n const [state, setState] = useState(initialValue);\n\n const append = (...items: T[]) => setState((current) => [...current, ...items]);\n const prepend = (...items: T[]) => setState((current) => [...items, ...current]);\n\n const insert = (index: number, ...items: T[]) =>\n setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);\n\n const apply = (fn: (item: T, index?: number) => T) =>\n setState((current) => current.map((item, index) => fn(item, index)));\n\n const remove = (...indices: number[]) =>\n setState((current) => current.filter((_, index) => !indices.includes(index)));\n\n const pop = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.pop();\n return cloned;\n });\n\n const shift = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.shift();\n return cloned;\n });\n\n const reorder = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const item = current[from];\n\n cloned.splice(from, 1);\n cloned.splice(to, 0, item);\n\n return cloned;\n });\n\n const setItem = (index: number, item: T) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = item;\n return cloned;\n });\n\n const setItemProp = <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = { ...cloned[index], [prop]: value };\n return cloned;\n });\n\n const applyWhere = (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) =>\n setState((current) =>\n current.map((item, index) => (condition(item, index) ? fn(item, index) : item))\n );\n\n const filter = (fn: (item: T, i: number) => boolean) => {\n setState((current) => current.filter(fn));\n };\n\n return [\n state,\n {\n setState,\n append,\n prepend,\n insert,\n pop,\n shift,\n apply,\n applyWhere,\n remove,\n reorder,\n setItem,\n setItemProp,\n filter,\n },\n ];\n}\n"],"names":["useState"],"mappings":"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"}
1
+ {"version":3,"file":"use-list-state.js","sources":["../../src/use-list-state/use-list-state.ts"],"sourcesContent":["import React, { useState } from 'react';\n\nexport interface UseListStateHandlers<T> {\n setState: React.Dispatch<React.SetStateAction<T[]>>;\n append: (...items: T[]) => void;\n prepend: (...items: T[]) => void;\n insert: (index: number, ...items: T[]) => void;\n pop: () => void;\n shift: () => void;\n apply: (fn: (item: T, index?: number) => T) => void;\n applyWhere: (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) => void;\n remove: (...indices: number[]) => void;\n reorder: ({ from, to }: { from: number; to: number }) => void;\n setItem: (index: number, item: T) => void;\n setItemProp: <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) => void;\n filter: (fn: (item: T, i: number) => boolean) => void;\n}\n\nexport type UseListState<T> = [T[], UseListStateHandlers<T>];\n\nexport function useListState<T>(initialValue: T[] = []): UseListState<T> {\n const [state, setState] = useState(initialValue);\n\n const append = (...items: T[]) => setState((current) => [...current, ...items]);\n const prepend = (...items: T[]) => setState((current) => [...items, ...current]);\n\n const insert = (index: number, ...items: T[]) =>\n setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);\n\n const apply = (fn: (item: T, index?: number) => T) =>\n setState((current) => current.map((item, index) => fn(item, index)));\n\n const remove = (...indices: number[]) =>\n setState((current) => current.filter((_, index) => !indices.includes(index)));\n\n const pop = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.pop();\n return cloned;\n });\n\n const shift = () =>\n setState((current) => {\n const cloned = [...current];\n cloned.shift();\n return cloned;\n });\n\n const reorder = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const item = current[from];\n\n cloned.splice(from, 1);\n cloned.splice(to, 0, item);\n\n return cloned;\n });\n\n const setItem = (index: number, item: T) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = item;\n return cloned;\n });\n\n const setItemProp = <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = { ...cloned[index], [prop]: value };\n return cloned;\n });\n\n const applyWhere = (\n condition: (item: T, index: number) => boolean,\n fn: (item: T, index?: number) => T\n ) =>\n setState((current) =>\n current.map((item, index) => (condition(item, index) ? fn(item, index) : item))\n );\n\n const filter = (fn: (item: T, i: number) => boolean) => {\n setState((current) => current.filter(fn));\n };\n\n return [\n state,\n {\n setState,\n append,\n prepend,\n insert,\n pop,\n shift,\n apply,\n applyWhere,\n remove,\n reorder,\n setItem,\n setItemProp,\n filter,\n },\n ];\n}\n"],"names":["useState"],"mappings":"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"}
@@ -6,81 +6,81 @@ var React = require('react');
6
6
  var useWindowEvent = require('../use-window-event/use-window-event.js');
7
7
 
8
8
  function serializeJSON(value, hookName) {
9
- try {
10
- return JSON.stringify(value);
11
- } catch (error) {
12
- throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);
13
- }
9
+ try {
10
+ return JSON.stringify(value);
11
+ }
12
+ catch (error) {
13
+ throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);
14
+ }
14
15
  }
15
16
  function deserializeJSON(value) {
16
- try {
17
- return JSON.parse(value);
18
- } catch (e) {
19
- return value;
20
- }
17
+ try {
18
+ return JSON.parse(value);
19
+ }
20
+ catch (_a) {
21
+ return value;
22
+ }
21
23
  }
22
24
  function createStorage(type, hookName) {
23
- const eventName = type === "localStorage" ? "mantine-local-storage" : "mantine-session-storage";
24
- return function useStorage({
25
- key,
26
- defaultValue = void 0,
27
- getInitialValueInEffect = true,
28
- deserialize = deserializeJSON,
29
- serialize = (value) => serializeJSON(value, hookName)
30
- }) {
31
- const readStorageValue = React.useCallback((skipStorage) => {
32
- if (typeof window === "undefined" || !(type in window) || window[type] === null || skipStorage) {
33
- return defaultValue;
34
- }
35
- const storageValue = window[type].getItem(key);
36
- return storageValue !== null ? deserialize(storageValue) : defaultValue;
37
- }, [key, defaultValue]);
38
- const [value, setValue] = React.useState(readStorageValue(getInitialValueInEffect));
39
- const setStorageValue = React.useCallback((val) => {
40
- if (val instanceof Function) {
41
- setValue((current) => {
42
- const result = val(current);
43
- window[type].setItem(key, serialize(result));
44
- window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val(current) } }));
45
- return result;
25
+ const eventName = type === 'localStorage' ? 'mantine-local-storage' : 'mantine-session-storage';
26
+ return function useStorage({ key, defaultValue = undefined, getInitialValueInEffect = true, deserialize = deserializeJSON, serialize = (value) => serializeJSON(value, hookName), }) {
27
+ const readStorageValue = React.useCallback((skipStorage) => {
28
+ if (typeof window === 'undefined' ||
29
+ !(type in window) ||
30
+ window[type] === null ||
31
+ skipStorage) {
32
+ return defaultValue;
33
+ }
34
+ const storageValue = window[type].getItem(key);
35
+ return storageValue !== null ? deserialize(storageValue) : defaultValue;
36
+ }, [key, defaultValue]);
37
+ const [value, setValue] = React.useState(readStorageValue(getInitialValueInEffect));
38
+ const setStorageValue = React.useCallback((val) => {
39
+ if (val instanceof Function) {
40
+ setValue((current) => {
41
+ const result = val(current);
42
+ window[type].setItem(key, serialize(result));
43
+ window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val(current) } }));
44
+ return result;
45
+ });
46
+ }
47
+ else {
48
+ window[type].setItem(key, serialize(val));
49
+ window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));
50
+ setValue(val);
51
+ }
52
+ }, [key]);
53
+ const removeStorageValue = React.useCallback(() => {
54
+ window[type].removeItem(key);
55
+ window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));
56
+ }, []);
57
+ useWindowEvent.useWindowEvent('storage', (event) => {
58
+ var _a;
59
+ if (event.storageArea === window[type] && event.key === key) {
60
+ setValue(deserialize((_a = event.newValue) !== null && _a !== void 0 ? _a : undefined));
61
+ }
46
62
  });
47
- } else {
48
- window[type].setItem(key, serialize(val));
49
- window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));
50
- setValue(val);
51
- }
52
- }, [key]);
53
- const removeStorageValue = React.useCallback(() => {
54
- window[type].removeItem(key);
55
- window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));
56
- }, []);
57
- useWindowEvent.useWindowEvent("storage", (event) => {
58
- var _a;
59
- if (event.storageArea === window[type] && event.key === key) {
60
- setValue(deserialize((_a = event.newValue) != null ? _a : void 0));
61
- }
62
- });
63
- useWindowEvent.useWindowEvent(eventName, (event) => {
64
- if (event.detail.key === key) {
65
- setValue(event.detail.value);
66
- }
67
- });
68
- React.useEffect(() => {
69
- if (defaultValue !== void 0 && value === void 0) {
70
- setStorageValue(defaultValue);
71
- }
72
- }, [defaultValue, value, setStorageValue]);
73
- React.useEffect(() => {
74
- if (getInitialValueInEffect) {
75
- setValue(readStorageValue());
76
- }
77
- }, [key]);
78
- return [
79
- value === void 0 ? defaultValue : value,
80
- setStorageValue,
81
- removeStorageValue
82
- ];
83
- };
63
+ useWindowEvent.useWindowEvent(eventName, (event) => {
64
+ if (event.detail.key === key) {
65
+ setValue(event.detail.value);
66
+ }
67
+ });
68
+ React.useEffect(() => {
69
+ if (defaultValue !== undefined && value === undefined) {
70
+ setStorageValue(defaultValue);
71
+ }
72
+ }, [defaultValue, value, setStorageValue]);
73
+ React.useEffect(() => {
74
+ if (getInitialValueInEffect) {
75
+ setValue(readStorageValue());
76
+ }
77
+ }, []);
78
+ return [
79
+ value === undefined ? defaultValue : value,
80
+ setStorageValue,
81
+ removeStorageValue,
82
+ ];
83
+ };
84
84
  }
85
85
 
86
86
  exports.createStorage = createStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"create-storage.js","sources":["../../src/use-local-storage/create-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport type StorageType = 'localStorage' | 'sessionStorage';\n\nexport interface IStorageProperties<T> {\n /** Storage key */\n key: string;\n\n /** Default value that will be set if value is not found in storage */\n defaultValue?: T;\n\n /** If set to true, value will be updated in useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into a string to be saved in storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from storage to value */\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T, hookName: string) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function createStorage<T>(type: StorageType, hookName: string) {\n const eventName = type === 'localStorage' ? 'mantine-local-storage' : 'mantine-session-storage';\n\n return function useStorage({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = true,\n deserialize = deserializeJSON,\n serialize = (value: T) => serializeJSON(value, hookName),\n }: IStorageProperties<T>) {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): T => {\n if (\n typeof window === 'undefined' ||\n !(type in window) ||\n window[type] === null ||\n skipStorage\n ) {\n return defaultValue as T;\n }\n\n const storageValue = window[type].getItem(key);\n\n return storageValue !== null ? deserialize(storageValue) : (defaultValue as T);\n },\n [key, defaultValue]\n );\n\n const [value, setValue] = useState<T>(readStorageValue(getInitialValueInEffect));\n\n const setStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window[type].setItem(key, serialize(result));\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: val(current) } })\n );\n return result;\n });\n } else {\n window[type].setItem(key, serialize(val));\n window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));\n setValue(val);\n }\n },\n [key]\n );\n\n const removeStorageValue = useCallback(() => {\n window[type].removeItem(key);\n window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));\n }, []);\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window[type] && event.key === key) {\n setValue(deserialize(event.newValue ?? undefined));\n }\n });\n\n useWindowEvent(eventName, (event) => {\n if (event.detail.key === key) {\n setValue(event.detail.value);\n }\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setStorageValue(defaultValue);\n }\n }, [defaultValue, value, setStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(readStorageValue());\n }\n }, [key]);\n\n return [\n value === undefined ? defaultValue : value,\n setStorageValue,\n removeStorageValue,\n ] as const;\n };\n}\n"],"names":["useCallback","useState","useWindowEvent","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"create-storage.js","sources":["../../src/use-local-storage/create-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport type StorageType = 'localStorage' | 'sessionStorage';\n\nexport interface IStorageProperties<T> {\n /** Storage key */\n key: string;\n\n /** Default value that will be set if value is not found in storage */\n defaultValue?: T;\n\n /** If set to true, value will be update is useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into string to be save in storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from storage to value */\n deserialize?(value: string | undefined): T;\n}\n\nfunction serializeJSON<T>(value: T, hookName: string) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function createStorage<T>(type: StorageType, hookName: string) {\n const eventName = type === 'localStorage' ? 'mantine-local-storage' : 'mantine-session-storage';\n\n return function useStorage({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = true,\n deserialize = deserializeJSON,\n serialize = (value: T) => serializeJSON(value, hookName),\n }: IStorageProperties<T>) {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): T => {\n if (\n typeof window === 'undefined' ||\n !(type in window) ||\n window[type] === null ||\n skipStorage\n ) {\n return defaultValue as T;\n }\n\n const storageValue = window[type].getItem(key);\n\n return storageValue !== null ? deserialize(storageValue) : (defaultValue as T);\n },\n [key, defaultValue]\n );\n\n const [value, setValue] = useState<T>(readStorageValue(getInitialValueInEffect));\n\n const setStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window[type].setItem(key, serialize(result));\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: val(current) } })\n );\n return result;\n });\n } else {\n window[type].setItem(key, serialize(val));\n window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));\n setValue(val);\n }\n },\n [key]\n );\n\n const removeStorageValue = useCallback(() => {\n window[type].removeItem(key);\n window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));\n }, []);\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window[type] && event.key === key) {\n setValue(deserialize(event.newValue ?? undefined));\n }\n });\n\n useWindowEvent(eventName, (event) => {\n if (event.detail.key === key) {\n setValue(event.detail.value);\n }\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setStorageValue(defaultValue);\n }\n }, [defaultValue, value, setStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(readStorageValue());\n }\n }, []);\n\n return [\n value === undefined ? defaultValue : value,\n setStorageValue,\n removeStorageValue,\n ] as const;\n };\n}\n"],"names":["useCallback","useState","useWindowEvent","useEffect"],"mappings":"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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var createStorage = require('./create-storage.js');
6
6
 
7
7
  function useLocalStorage(props) {
8
- return createStorage.createStorage("localStorage", "use-local-storage")(props);
8
+ return createStorage.createStorage('localStorage', 'use-local-storage')(props);
9
9
  }
10
10
 
11
11
  exports.useLocalStorage = useLocalStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { createStorage, IStorageProperties } from './create-storage';\n\nexport function useLocalStorage<T = string>(props: IStorageProperties<T>) {\n return createStorage<T>('localStorage', 'use-local-storage')(props);\n}\n"],"names":["createStorage"],"mappings":";;;;;;AACO,SAAS,eAAe,CAAC,KAAK,EAAE;AACvC,EAAE,OAAOA,2BAAa,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC;AACnE;;;;"}
1
+ {"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { createStorage, IStorageProperties } from './create-storage';\n\nexport function useLocalStorage<T = string>(props: IStorageProperties<T>) {\n return createStorage<T>('localStorage', 'use-local-storage')(props);\n}\n"],"names":["createStorage"],"mappings":";;;;;;SAEgB,eAAe,CAAa,KAA4B;IACtE,OAAOA,2BAAa,CAAI,cAAc,EAAE,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC;AACtE;;;;"}
@@ -5,15 +5,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var useDidUpdate = require('../use-did-update/use-did-update.js');
7
7
 
8
+ /* eslint-disable no-console */
8
9
  function useLogger(componentName, props) {
9
- React.useEffect(() => {
10
- console.log(`${componentName} mounted`, ...props);
11
- return () => console.log(`${componentName} unmounted`);
12
- }, []);
13
- useDidUpdate.useDidUpdate(() => {
14
- console.log(`${componentName} updated`, ...props);
15
- }, props);
16
- return null;
10
+ React.useEffect(() => {
11
+ console.log(`${componentName} mounted`, ...props);
12
+ return () => console.log(`${componentName} unmounted`);
13
+ }, []);
14
+ useDidUpdate.useDidUpdate(() => {
15
+ console.log(`${componentName} updated`, ...props);
16
+ }, props);
17
+ return null;
17
18
  }
18
19
 
19
20
  exports.useLogger = useLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"use-logger.js","sources":["../../src/use-logger/use-logger.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { useEffect } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\nexport function useLogger(componentName: string, props: any[]) {\n useEffect(() => {\n console.log(`${componentName} mounted`, ...props);\n return () => console.log(`${componentName} unmounted`);\n }, []);\n\n useDidUpdate(() => {\n console.log(`${componentName} updated`, ...props);\n }, props);\n\n return null;\n}\n"],"names":["useEffect","useDidUpdate"],"mappings":";;;;;;;AAEO,SAAS,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE;AAChD,EAAEA,eAAS,CAAC,MAAM;AAClB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;AACtD,IAAI,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3D,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAEC,yBAAY,CAAC,MAAM;AACrB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;AACtD,GAAG,EAAE,KAAK,CAAC,CAAC;AACZ,EAAE,OAAO,IAAI,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"use-logger.js","sources":["../../src/use-logger/use-logger.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { useEffect } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\nexport function useLogger(componentName: string, props: any[]) {\n useEffect(() => {\n console.log(`${componentName} mounted`, ...props);\n return () => console.log(`${componentName} unmounted`);\n }, []);\n\n useDidUpdate(() => {\n console.log(`${componentName} updated`, ...props);\n }, props);\n\n return null;\n}\n"],"names":["useEffect","useDidUpdate"],"mappings":";;;;;;;AAAA;SAIgB,SAAS,CAAC,aAAqB,EAAE,KAAY;IAC3DA,eAAS,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;KACxD,EAAE,EAAE,CAAC,CAAC;IAEPC,yBAAY,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;KACnD,EAAE,KAAK,CAAC,CAAC;IAEV,OAAO,IAAI,CAAC;AACd;;;;"}
@@ -4,38 +4,43 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
 
7
+ /**
8
+ * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia
9
+ * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent
10
+ * */
7
11
  function attachMediaListener(query, callback) {
8
- try {
9
- query.addEventListener("change", callback);
10
- return () => query.removeEventListener("change", callback);
11
- } catch (e) {
12
- query.addListener(callback);
13
- return () => query.removeListener(callback);
14
- }
12
+ try {
13
+ query.addEventListener('change', callback);
14
+ return () => query.removeEventListener('change', callback);
15
+ }
16
+ catch (e) {
17
+ query.addListener(callback);
18
+ return () => query.removeListener(callback);
19
+ }
15
20
  }
16
21
  function getInitialValue(query, initialValue) {
17
- if (typeof initialValue === "boolean") {
18
- return initialValue;
19
- }
20
- if (typeof window !== "undefined" && "matchMedia" in window) {
21
- return window.matchMedia(query).matches;
22
- }
23
- return false;
22
+ if (typeof initialValue === 'boolean') {
23
+ return initialValue;
24
+ }
25
+ if (typeof window !== 'undefined' && 'matchMedia' in window) {
26
+ return window.matchMedia(query).matches;
27
+ }
28
+ return false;
24
29
  }
25
30
  function useMediaQuery(query, initialValue, { getInitialValueInEffect } = {
26
- getInitialValueInEffect: true
31
+ getInitialValueInEffect: true,
27
32
  }) {
28
- const [matches, setMatches] = React.useState(getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue));
29
- const queryRef = React.useRef();
30
- React.useEffect(() => {
31
- if ("matchMedia" in window) {
32
- queryRef.current = window.matchMedia(query);
33
- setMatches(queryRef.current.matches);
34
- return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
35
- }
36
- return void 0;
37
- }, [query]);
38
- return matches;
33
+ const [matches, setMatches] = React.useState(getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue));
34
+ const queryRef = React.useRef();
35
+ React.useEffect(() => {
36
+ if ('matchMedia' in window) {
37
+ queryRef.current = window.matchMedia(query);
38
+ setMatches(queryRef.current.matches);
39
+ return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
40
+ }
41
+ return undefined;
42
+ }, [query]);
43
+ return matches;
39
44
  }
40
45
 
41
46
  exports.useMediaQuery = useMediaQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\nexport interface UseMediaQueryOptions {\n getInitialValueInEffect: boolean;\n}\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string, initialValue?: boolean) {\n if (typeof initialValue === 'boolean') {\n return initialValue;\n }\n\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n}\n\nexport function useMediaQuery(\n query: string,\n initialValue?: boolean,\n { getInitialValueInEffect }: UseMediaQueryOptions = {\n getInitialValueInEffect: true,\n }\n) {\n const [matches, setMatches] = useState(\n getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue)\n );\n const queryRef = useRef<MediaQueryList>();\n\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n\n return undefined;\n }, [query]);\n\n return matches;\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,EAAE,IAAI;AACN,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/C,IAAI,OAAO,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,OAAO,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChD,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE;AAC9C,EAAE,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;AAC/D,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAC5C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,uBAAuB,EAAE,GAAG;AACjF,EAAE,uBAAuB,EAAE,IAAI;AAC/B,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,uBAAuB,GAAG,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AACxH,EAAE,MAAM,QAAQ,GAAGC,YAAM,EAAE,CAAC;AAC5B,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,MAAM,EAAE;AAChC,MAAM,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClD,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3C,MAAM,OAAO,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB;;;;"}
1
+ {"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\nexport interface UseMediaQueryOptions {\n getInitialValueInEffect: boolean;\n}\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string, initialValue?: boolean) {\n if (typeof initialValue === 'boolean') {\n return initialValue;\n }\n\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n}\n\nexport function useMediaQuery(\n query: string,\n initialValue?: boolean,\n { getInitialValueInEffect }: UseMediaQueryOptions = {\n getInitialValueInEffect: true,\n }\n) {\n const [matches, setMatches] = useState(\n getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue)\n );\n const queryRef = useRef<MediaQueryList>();\n\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n\n return undefined;\n }, [query]);\n\n return matches;\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;AAQA;;;;AAIA,SAAS,mBAAmB,CAAC,KAAqB,EAAE,QAA4B;IAC9E,IAAI;QACF,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,YAAsB;IAC5D,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;QACrC,OAAO,YAAY,CAAC;KACrB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;QAC3D,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;KACzC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;SAEe,aAAa,CAC3B,KAAa,EACb,YAAsB,EACtB,EAAE,uBAAuB,KAA2B;IAClD,uBAAuB,EAAE,IAAI;CAC9B;IAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CACpC,uBAAuB,GAAG,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAC9E,CAAC;IACF,MAAM,QAAQ,GAAGC,YAAM,EAAkB,CAAC;IAE1CC,eAAS,CAAC;QACR,IAAI,YAAY,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SACpF;QAED,OAAO,SAAS,CAAC;KAClB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,OAAO,CAAC;AACjB;;;;"}