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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/cjs/index.cjs +164 -0
  2. package/cjs/index.cjs.map +1 -0
  3. package/cjs/use-callback-ref/use-callback-ref.cjs +15 -0
  4. package/cjs/use-callback-ref/use-callback-ref.cjs.map +1 -0
  5. package/cjs/use-click-outside/use-click-outside.cjs +29 -0
  6. package/cjs/use-click-outside/use-click-outside.cjs.map +1 -0
  7. package/cjs/use-clipboard/use-clipboard.cjs +31 -0
  8. package/cjs/use-clipboard/use-clipboard.cjs.map +1 -0
  9. package/cjs/use-color-scheme/use-color-scheme.cjs +11 -0
  10. package/cjs/use-color-scheme/use-color-scheme.cjs.map +1 -0
  11. package/cjs/use-counter/use-counter.cjs +22 -0
  12. package/cjs/use-counter/use-counter.cjs.map +1 -0
  13. package/cjs/use-debounced-callback/use-debounced-callback.cjs +21 -0
  14. package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -0
  15. package/cjs/use-debounced-state/use-debounced-state.cjs +31 -0
  16. package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -0
  17. package/cjs/use-debounced-value/use-debounced-value.cjs +34 -0
  18. package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -0
  19. package/cjs/use-did-update/use-did-update.cjs +24 -0
  20. package/cjs/use-did-update/use-did-update.cjs.map +1 -0
  21. package/cjs/use-disclosure/use-disclosure.cjs +34 -0
  22. package/cjs/use-disclosure/use-disclosure.cjs.map +1 -0
  23. package/cjs/use-document-title/use-document-title.cjs +15 -0
  24. package/cjs/use-document-title/use-document-title.cjs.map +1 -0
  25. package/cjs/use-document-visibility/use-document-visibility.cjs +17 -0
  26. package/cjs/use-document-visibility/use-document-visibility.cjs.map +1 -0
  27. package/cjs/use-event-listener/use-event-listener.cjs +19 -0
  28. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -0
  29. package/cjs/use-eye-dropper/use-eye-dropper.cjs +29 -0
  30. package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -0
  31. package/cjs/use-favicon/use-favicon.cjs +37 -0
  32. package/cjs/use-favicon/use-favicon.cjs.map +1 -0
  33. package/cjs/use-fetch/use-fetch.cjs +51 -0
  34. package/cjs/use-fetch/use-fetch.cjs.map +1 -0
  35. package/cjs/use-focus-return/use-focus-return.cjs +36 -0
  36. package/cjs/use-focus-return/use-focus-return.cjs.map +1 -0
  37. package/cjs/use-focus-trap/create-aria-hider.cjs +45 -0
  38. package/cjs/use-focus-trap/create-aria-hider.cjs.map +1 -0
  39. package/cjs/use-focus-trap/scope-tab.cjs +34 -0
  40. package/cjs/use-focus-trap/scope-tab.cjs.map +1 -0
  41. package/cjs/use-focus-trap/tabbable.cjs +58 -0
  42. package/cjs/use-focus-trap/tabbable.cjs.map +1 -0
  43. package/cjs/use-focus-trap/use-focus-trap.cjs +83 -0
  44. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -0
  45. package/cjs/use-focus-within/use-focus-within.cjs +50 -0
  46. package/cjs/use-focus-within/use-focus-within.cjs.map +1 -0
  47. package/cjs/use-force-update/use-force-update.cjs +13 -0
  48. package/cjs/use-force-update/use-force-update.cjs.map +1 -0
  49. package/cjs/use-fullscreen/use-fullscreen.cjs +99 -0
  50. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -0
  51. package/cjs/use-hash/use-hash.cjs +31 -0
  52. package/cjs/use-hash/use-hash.cjs.map +1 -0
  53. package/cjs/use-headroom/use-headroom.cjs +81 -0
  54. package/cjs/use-headroom/use-headroom.cjs.map +1 -0
  55. package/cjs/use-hotkeys/parse-hotkey.cjs +66 -0
  56. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -0
  57. package/cjs/use-hotkeys/use-hotkeys.cjs +35 -0
  58. package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -0
  59. package/cjs/use-hover/use-hover.cjs +26 -0
  60. package/cjs/use-hover/use-hover.cjs.map +1 -0
  61. package/cjs/use-id/use-id.cjs +25 -0
  62. package/cjs/use-id/use-id.cjs.map +1 -0
  63. package/cjs/use-id/use-react-id.cjs +17 -0
  64. package/cjs/use-id/use-react-id.cjs.map +1 -0
  65. package/cjs/use-idle/use-idle.cjs +43 -0
  66. package/cjs/use-idle/use-idle.cjs.map +1 -0
  67. package/cjs/use-in-viewport/use-in-viewport.cjs +29 -0
  68. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -0
  69. package/cjs/use-input-state/use-input-state.cjs +31 -0
  70. package/cjs/use-input-state/use-input-state.cjs.map +1 -0
  71. package/cjs/use-intersection/use-intersection.cjs +30 -0
  72. package/cjs/use-intersection/use-intersection.cjs.map +1 -0
  73. package/cjs/use-interval/use-interval.cjs +44 -0
  74. package/cjs/use-interval/use-interval.cjs.map +1 -0
  75. package/cjs/use-is-first-render/use-is-first-render.cjs +16 -0
  76. package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -0
  77. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +9 -0
  78. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -0
  79. package/cjs/use-list-state/use-list-state.cjs +76 -0
  80. package/cjs/use-list-state/use-list-state.cjs.map +1 -0
  81. package/cjs/use-local-storage/create-storage.cjs +143 -0
  82. package/cjs/use-local-storage/create-storage.cjs.map +1 -0
  83. package/cjs/use-local-storage/use-local-storage.cjs +13 -0
  84. package/cjs/use-local-storage/use-local-storage.cjs.map +1 -0
  85. package/cjs/use-logger/use-logger.cjs +19 -0
  86. package/cjs/use-logger/use-logger.cjs.map +1 -0
  87. package/cjs/use-map/use-map.cjs +28 -0
  88. package/cjs/use-map/use-map.cjs.map +1 -0
  89. package/cjs/use-media-query/use-media-query.cjs +40 -0
  90. package/cjs/use-media-query/use-media-query.cjs.map +1 -0
  91. package/cjs/use-merged-ref/use-merged-ref.cjs +25 -0
  92. package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -0
  93. package/cjs/use-mounted/use-mounted.cjs +13 -0
  94. package/cjs/use-mounted/use-mounted.cjs.map +1 -0
  95. package/cjs/use-mouse/use-mouse.cjs +43 -0
  96. package/cjs/use-mouse/use-mouse.cjs.map +1 -0
  97. package/cjs/use-move/use-move.cjs +102 -0
  98. package/cjs/use-move/use-move.cjs.map +1 -0
  99. package/cjs/use-mutation-observer/use-mutation-observer.cjs +23 -0
  100. package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -0
  101. package/cjs/use-network/use-network.cjs +51 -0
  102. package/cjs/use-network/use-network.cjs.map +1 -0
  103. package/cjs/use-orientation/use-orientation.cjs +21 -0
  104. package/cjs/use-orientation/use-orientation.cjs.map +1 -0
  105. package/cjs/use-os/use-os.cjs +60 -0
  106. package/cjs/use-os/use-os.cjs.map +1 -0
  107. package/cjs/use-page-leave/use-page-leave.cjs +14 -0
  108. package/cjs/use-page-leave/use-page-leave.cjs.map +1 -0
  109. package/cjs/use-pagination/use-pagination.cjs +78 -0
  110. package/cjs/use-pagination/use-pagination.cjs.map +1 -0
  111. package/cjs/use-previous/use-previous.cjs +15 -0
  112. package/cjs/use-previous/use-previous.cjs.map +1 -0
  113. package/cjs/use-queue/use-queue.cjs +36 -0
  114. package/cjs/use-queue/use-queue.cjs.map +1 -0
  115. package/cjs/use-reduced-motion/use-reduced-motion.cjs +11 -0
  116. package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -0
  117. package/cjs/use-resize-observer/use-resize-observer.cjs +54 -0
  118. package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -0
  119. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +94 -0
  120. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -0
  121. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs +7 -0
  122. package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs.map +1 -0
  123. package/cjs/use-scroll-into-view/utils/get-relative-position.cjs +66 -0
  124. package/cjs/use-scroll-into-view/utils/get-relative-position.cjs.map +1 -0
  125. package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs +17 -0
  126. package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs.map +1 -0
  127. package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs +19 -0
  128. package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs.map +1 -0
  129. package/cjs/use-session-storage/use-session-storage.cjs +13 -0
  130. package/cjs/use-session-storage/use-session-storage.cjs.map +1 -0
  131. package/cjs/use-set/use-set.cjs +28 -0
  132. package/cjs/use-set/use-set.cjs.map +1 -0
  133. package/cjs/use-set-state/use-set-state.cjs +19 -0
  134. package/cjs/use-set-state/use-set-state.cjs.map +1 -0
  135. package/cjs/use-shallow-effect/use-shallow-effect.cjs +38 -0
  136. package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -0
  137. package/cjs/use-state-history/use-state-history.cjs +43 -0
  138. package/cjs/use-state-history/use-state-history.cjs.map +1 -0
  139. package/cjs/use-text-selection/use-text-selection.cjs +23 -0
  140. package/cjs/use-text-selection/use-text-selection.cjs.map +1 -0
  141. package/cjs/use-throttled-callback/use-throttled-callback.cjs +54 -0
  142. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -0
  143. package/cjs/use-throttled-state/use-throttled-state.cjs +15 -0
  144. package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -0
  145. package/cjs/use-throttled-value/use-throttled-value.cjs +25 -0
  146. package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -0
  147. package/cjs/use-timeout/use-timeout.cjs +35 -0
  148. package/cjs/use-timeout/use-timeout.cjs.map +1 -0
  149. package/cjs/use-toggle/use-toggle.cjs +16 -0
  150. package/cjs/use-toggle/use-toggle.cjs.map +1 -0
  151. package/cjs/use-uncontrolled/use-uncontrolled.cjs +27 -0
  152. package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -0
  153. package/cjs/use-validated-state/use-validated-state.cjs +27 -0
  154. package/cjs/use-validated-state/use-validated-state.cjs.map +1 -0
  155. package/cjs/use-viewport-size/use-viewport-size.cjs +25 -0
  156. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -0
  157. package/cjs/use-window-event/use-window-event.cjs +14 -0
  158. package/cjs/use-window-event/use-window-event.cjs.map +1 -0
  159. package/cjs/use-window-scroll/use-window-scroll.cjs +33 -0
  160. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -0
  161. package/cjs/utils/clamp/clamp.cjs +18 -0
  162. package/cjs/utils/clamp/clamp.cjs.map +1 -0
  163. package/cjs/utils/lower-first/lower-first.cjs +9 -0
  164. package/cjs/utils/lower-first/lower-first.cjs.map +1 -0
  165. package/cjs/utils/random-id/random-id.cjs +9 -0
  166. package/cjs/utils/random-id/random-id.cjs.map +1 -0
  167. package/cjs/utils/range/range.cjs +14 -0
  168. package/cjs/utils/range/range.cjs.map +1 -0
  169. package/cjs/utils/shallow-equal/shallow-equal.cjs +29 -0
  170. package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -0
  171. package/cjs/utils/upper-first/upper-first.cjs +9 -0
  172. package/cjs/utils/upper-first/upper-first.cjs.map +1 -0
  173. package/esm/index.mjs +77 -0
  174. package/esm/index.mjs.map +1 -0
  175. package/esm/use-callback-ref/use-callback-ref.mjs +13 -0
  176. package/esm/use-callback-ref/use-callback-ref.mjs.map +1 -0
  177. package/esm/use-click-outside/use-click-outside.mjs +27 -0
  178. package/esm/use-click-outside/use-click-outside.mjs.map +1 -0
  179. package/esm/use-clipboard/use-clipboard.mjs +29 -0
  180. package/esm/use-clipboard/use-clipboard.mjs.map +1 -0
  181. package/esm/use-color-scheme/use-color-scheme.mjs +9 -0
  182. package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -0
  183. package/esm/use-counter/use-counter.mjs +20 -0
  184. package/esm/use-counter/use-counter.mjs.map +1 -0
  185. package/esm/use-debounced-callback/use-debounced-callback.mjs +19 -0
  186. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -0
  187. package/esm/use-debounced-state/use-debounced-state.mjs +29 -0
  188. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -0
  189. package/esm/use-debounced-value/use-debounced-value.mjs +32 -0
  190. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -0
  191. package/esm/use-did-update/use-did-update.mjs +22 -0
  192. package/esm/use-did-update/use-did-update.mjs.map +1 -0
  193. package/esm/use-disclosure/use-disclosure.mjs +32 -0
  194. package/esm/use-disclosure/use-disclosure.mjs.map +1 -0
  195. package/esm/use-document-title/use-document-title.mjs +13 -0
  196. package/esm/use-document-title/use-document-title.mjs.map +1 -0
  197. package/esm/use-document-visibility/use-document-visibility.mjs +15 -0
  198. package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -0
  199. package/esm/use-event-listener/use-event-listener.mjs +17 -0
  200. package/esm/use-event-listener/use-event-listener.mjs.map +1 -0
  201. package/esm/use-eye-dropper/use-eye-dropper.mjs +27 -0
  202. package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -0
  203. package/esm/use-favicon/use-favicon.mjs +35 -0
  204. package/esm/use-favicon/use-favicon.mjs.map +1 -0
  205. package/esm/use-fetch/use-fetch.mjs +49 -0
  206. package/esm/use-fetch/use-fetch.mjs.map +1 -0
  207. package/esm/use-focus-return/use-focus-return.mjs +34 -0
  208. package/esm/use-focus-return/use-focus-return.mjs.map +1 -0
  209. package/esm/use-focus-trap/create-aria-hider.mjs +43 -0
  210. package/esm/use-focus-trap/create-aria-hider.mjs.map +1 -0
  211. package/esm/use-focus-trap/scope-tab.mjs +32 -0
  212. package/esm/use-focus-trap/scope-tab.mjs.map +1 -0
  213. package/esm/use-focus-trap/tabbable.mjs +53 -0
  214. package/esm/use-focus-trap/tabbable.mjs.map +1 -0
  215. package/esm/use-focus-trap/use-focus-trap.mjs +81 -0
  216. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -0
  217. package/esm/use-focus-within/use-focus-within.mjs +48 -0
  218. package/esm/use-focus-within/use-focus-within.mjs.map +1 -0
  219. package/esm/use-force-update/use-force-update.mjs +11 -0
  220. package/esm/use-force-update/use-force-update.mjs.map +1 -0
  221. package/esm/use-fullscreen/use-fullscreen.mjs +97 -0
  222. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -0
  223. package/esm/use-hash/use-hash.mjs +29 -0
  224. package/esm/use-hash/use-hash.mjs.map +1 -0
  225. package/esm/use-headroom/use-headroom.mjs +76 -0
  226. package/esm/use-headroom/use-headroom.mjs.map +1 -0
  227. package/esm/use-hotkeys/parse-hotkey.mjs +62 -0
  228. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -0
  229. package/esm/use-hotkeys/use-hotkeys.mjs +33 -0
  230. package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -0
  231. package/esm/use-hover/use-hover.mjs +24 -0
  232. package/esm/use-hover/use-hover.mjs.map +1 -0
  233. package/esm/use-id/use-id.mjs +23 -0
  234. package/esm/use-id/use-id.mjs.map +1 -0
  235. package/esm/use-id/use-react-id.mjs +11 -0
  236. package/esm/use-id/use-react-id.mjs.map +1 -0
  237. package/esm/use-idle/use-idle.mjs +41 -0
  238. package/esm/use-idle/use-idle.mjs.map +1 -0
  239. package/esm/use-in-viewport/use-in-viewport.mjs +27 -0
  240. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -0
  241. package/esm/use-input-state/use-input-state.mjs +28 -0
  242. package/esm/use-input-state/use-input-state.mjs.map +1 -0
  243. package/esm/use-intersection/use-intersection.mjs +28 -0
  244. package/esm/use-intersection/use-intersection.mjs.map +1 -0
  245. package/esm/use-interval/use-interval.mjs +42 -0
  246. package/esm/use-interval/use-interval.mjs.map +1 -0
  247. package/esm/use-is-first-render/use-is-first-render.mjs +14 -0
  248. package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -0
  249. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +7 -0
  250. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -0
  251. package/esm/use-list-state/use-list-state.mjs +74 -0
  252. package/esm/use-list-state/use-list-state.mjs.map +1 -0
  253. package/esm/use-local-storage/create-storage.mjs +140 -0
  254. package/esm/use-local-storage/create-storage.mjs.map +1 -0
  255. package/esm/use-local-storage/use-local-storage.mjs +10 -0
  256. package/esm/use-local-storage/use-local-storage.mjs.map +1 -0
  257. package/esm/use-logger/use-logger.mjs +17 -0
  258. package/esm/use-logger/use-logger.mjs.map +1 -0
  259. package/esm/use-map/use-map.mjs +26 -0
  260. package/esm/use-map/use-map.mjs.map +1 -0
  261. package/esm/use-media-query/use-media-query.mjs +38 -0
  262. package/esm/use-media-query/use-media-query.mjs.map +1 -0
  263. package/esm/use-merged-ref/use-merged-ref.mjs +21 -0
  264. package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -0
  265. package/esm/use-mounted/use-mounted.mjs +11 -0
  266. package/esm/use-mounted/use-mounted.mjs.map +1 -0
  267. package/esm/use-mouse/use-mouse.mjs +41 -0
  268. package/esm/use-mouse/use-mouse.mjs.map +1 -0
  269. package/esm/use-move/use-move.mjs +99 -0
  270. package/esm/use-move/use-move.mjs.map +1 -0
  271. package/esm/use-mutation-observer/use-mutation-observer.mjs +21 -0
  272. package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -0
  273. package/esm/use-network/use-network.mjs +49 -0
  274. package/esm/use-network/use-network.mjs.map +1 -0
  275. package/esm/use-orientation/use-orientation.mjs +19 -0
  276. package/esm/use-orientation/use-orientation.mjs.map +1 -0
  277. package/esm/use-os/use-os.mjs +58 -0
  278. package/esm/use-os/use-os.mjs.map +1 -0
  279. package/esm/use-page-leave/use-page-leave.mjs +12 -0
  280. package/esm/use-page-leave/use-page-leave.mjs.map +1 -0
  281. package/esm/use-pagination/use-pagination.mjs +75 -0
  282. package/esm/use-pagination/use-pagination.mjs.map +1 -0
  283. package/esm/use-previous/use-previous.mjs +13 -0
  284. package/esm/use-previous/use-previous.mjs.map +1 -0
  285. package/esm/use-queue/use-queue.mjs +34 -0
  286. package/esm/use-queue/use-queue.mjs.map +1 -0
  287. package/esm/use-reduced-motion/use-reduced-motion.mjs +9 -0
  288. package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -0
  289. package/esm/use-resize-observer/use-resize-observer.mjs +51 -0
  290. package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -0
  291. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +92 -0
  292. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -0
  293. package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs +5 -0
  294. package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs.map +1 -0
  295. package/esm/use-scroll-into-view/utils/get-relative-position.mjs +64 -0
  296. package/esm/use-scroll-into-view/utils/get-relative-position.mjs.map +1 -0
  297. package/esm/use-scroll-into-view/utils/get-scroll-start.mjs +15 -0
  298. package/esm/use-scroll-into-view/utils/get-scroll-start.mjs.map +1 -0
  299. package/esm/use-scroll-into-view/utils/set-scroll-param.mjs +17 -0
  300. package/esm/use-scroll-into-view/utils/set-scroll-param.mjs.map +1 -0
  301. package/esm/use-session-storage/use-session-storage.mjs +10 -0
  302. package/esm/use-session-storage/use-session-storage.mjs.map +1 -0
  303. package/esm/use-set/use-set.mjs +26 -0
  304. package/esm/use-set/use-set.mjs.map +1 -0
  305. package/esm/use-set-state/use-set-state.mjs +17 -0
  306. package/esm/use-set-state/use-set-state.mjs.map +1 -0
  307. package/esm/use-shallow-effect/use-shallow-effect.mjs +36 -0
  308. package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -0
  309. package/esm/use-state-history/use-state-history.mjs +41 -0
  310. package/esm/use-state-history/use-state-history.mjs.map +1 -0
  311. package/esm/use-text-selection/use-text-selection.mjs +21 -0
  312. package/esm/use-text-selection/use-text-selection.mjs.map +1 -0
  313. package/esm/use-throttled-callback/use-throttled-callback.mjs +51 -0
  314. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -0
  315. package/esm/use-throttled-state/use-throttled-state.mjs +13 -0
  316. package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -0
  317. package/esm/use-throttled-value/use-throttled-value.mjs +23 -0
  318. package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -0
  319. package/esm/use-timeout/use-timeout.mjs +33 -0
  320. package/esm/use-timeout/use-timeout.mjs.map +1 -0
  321. package/esm/use-toggle/use-toggle.mjs +14 -0
  322. package/esm/use-toggle/use-toggle.mjs.map +1 -0
  323. package/esm/use-uncontrolled/use-uncontrolled.mjs +25 -0
  324. package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -0
  325. package/esm/use-validated-state/use-validated-state.mjs +25 -0
  326. package/esm/use-validated-state/use-validated-state.mjs.map +1 -0
  327. package/esm/use-viewport-size/use-viewport-size.mjs +23 -0
  328. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -0
  329. package/esm/use-window-event/use-window-event.mjs +12 -0
  330. package/esm/use-window-event/use-window-event.mjs.map +1 -0
  331. package/esm/use-window-scroll/use-window-scroll.mjs +31 -0
  332. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -0
  333. package/esm/utils/clamp/clamp.mjs +16 -0
  334. package/esm/utils/clamp/clamp.mjs.map +1 -0
  335. package/esm/utils/lower-first/lower-first.mjs +7 -0
  336. package/esm/utils/lower-first/lower-first.mjs.map +1 -0
  337. package/esm/utils/random-id/random-id.mjs +7 -0
  338. package/esm/utils/random-id/random-id.mjs.map +1 -0
  339. package/esm/utils/range/range.mjs +12 -0
  340. package/esm/utils/range/range.mjs.map +1 -0
  341. package/esm/utils/shallow-equal/shallow-equal.mjs +27 -0
  342. package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -0
  343. package/esm/utils/upper-first/upper-first.mjs +7 -0
  344. package/esm/utils/upper-first/upper-first.mjs.map +1 -0
  345. package/lib/index.d.mts +78 -0
  346. package/lib/index.d.ts +78 -0
  347. package/lib/use-callback-ref/use-callback-ref.d.ts +1 -0
  348. package/lib/use-click-outside/use-click-outside.d.ts +1 -0
  349. package/lib/use-clipboard/use-clipboard.d.ts +8 -0
  350. package/lib/use-color-scheme/use-color-scheme.d.ts +2 -0
  351. package/lib/use-counter/use-counter.d.ts +9 -0
  352. package/lib/use-debounced-callback/use-debounced-callback.d.ts +1 -0
  353. package/lib/use-debounced-state/use-debounced-state.d.ts +4 -0
  354. package/lib/use-debounced-value/use-debounced-value.d.ts +3 -0
  355. package/lib/use-did-update/use-did-update.d.ts +2 -0
  356. package/lib/use-disclosure/use-disclosure.d.ts +8 -0
  357. package/lib/use-document-title/use-document-title.d.ts +1 -0
  358. package/lib/use-document-visibility/use-document-visibility.d.ts +1 -0
  359. package/lib/use-event-listener/use-event-listener.d.ts +1 -0
  360. package/lib/use-eye-dropper/use-eye-dropper.d.ts +11 -0
  361. package/lib/use-favicon/use-favicon.d.ts +1 -0
  362. package/lib/use-fetch/use-fetch.d.ts +10 -0
  363. package/lib/use-focus-return/use-focus-return.d.ts +7 -0
  364. package/lib/use-focus-trap/create-aria-hider.d.ts +1 -0
  365. package/lib/use-focus-trap/scope-tab.d.ts +1 -0
  366. package/lib/use-focus-trap/tabbable.d.ts +4 -0
  367. package/lib/use-focus-trap/use-focus-trap.d.ts +1 -0
  368. package/lib/use-focus-within/use-focus-within.d.ts +8 -0
  369. package/lib/use-force-update/use-force-update.d.ts +1 -0
  370. package/lib/use-fullscreen/use-fullscreen.d.ts +5 -0
  371. package/lib/use-hash/use-hash.d.ts +5 -0
  372. package/lib/use-headroom/use-headroom.d.ts +17 -0
  373. package/lib/use-hotkeys/parse-hotkey.d.ts +19 -0
  374. package/lib/use-hotkeys/use-hotkeys.d.ts +5 -0
  375. package/lib/use-hover/use-hover.d.ts +4 -0
  376. package/lib/use-id/use-id.d.ts +1 -0
  377. package/lib/use-id/use-react-id.d.ts +1 -0
  378. package/lib/use-idle/use-idle.d.ts +4 -0
  379. package/lib/use-in-viewport/use-in-viewport.d.ts +4 -0
  380. package/lib/use-input-state/use-input-state.d.ts +2 -0
  381. package/lib/use-intersection/use-intersection.d.ts +4 -0
  382. package/lib/use-interval/use-interval.d.ts +11 -0
  383. package/lib/use-is-first-render/use-is-first-render.d.ts +1 -0
  384. package/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts +2 -0
  385. package/lib/use-list-state/use-list-state.d.ts +24 -0
  386. package/lib/use-local-storage/create-storage.d.ts +15 -0
  387. package/lib/use-local-storage/use-local-storage.d.ts +3 -0
  388. package/lib/use-logger/use-logger.d.ts +1 -0
  389. package/lib/use-map/use-map.d.ts +1 -0
  390. package/lib/use-media-query/use-media-query.d.ts +4 -0
  391. package/lib/use-merged-ref/use-merged-ref.d.ts +6 -0
  392. package/lib/use-mounted/use-mounted.d.ts +1 -0
  393. package/lib/use-mouse/use-mouse.d.ts +7 -0
  394. package/lib/use-move/use-move.d.ts +17 -0
  395. package/lib/use-mutation-observer/use-mutation-observer.d.ts +2 -0
  396. package/lib/use-network/use-network.d.ts +12 -0
  397. package/lib/use-orientation/use-orientation.d.ts +4 -0
  398. package/lib/use-os/use-os.d.ts +6 -0
  399. package/lib/use-page-leave/use-page-leave.d.ts +1 -0
  400. package/lib/use-pagination/use-pagination.d.ts +24 -0
  401. package/lib/use-previous/use-previous.d.ts +1 -0
  402. package/lib/use-queue/use-queue.d.ts +10 -0
  403. package/lib/use-reduced-motion/use-reduced-motion.d.ts +2 -0
  404. package/lib/use-resize-observer/use-resize-observer.d.ts +8 -0
  405. package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +28 -0
  406. package/lib/use-scroll-into-view/utils/ease-in-out-quad.d.ts +1 -0
  407. package/lib/use-scroll-into-view/utils/get-relative-position.d.ts +1 -0
  408. package/lib/use-scroll-into-view/utils/get-scroll-start.d.ts +1 -0
  409. package/lib/use-scroll-into-view/utils/set-scroll-param.d.ts +1 -0
  410. package/lib/use-session-storage/use-session-storage.d.ts +3 -0
  411. package/lib/use-set/use-set.d.ts +1 -0
  412. package/lib/use-set-state/use-set-state.d.ts +1 -0
  413. package/lib/use-shallow-effect/use-shallow-effect.d.ts +1 -0
  414. package/lib/use-state-history/use-state-history.d.ts +11 -0
  415. package/lib/use-text-selection/use-text-selection.d.ts +1 -0
  416. package/lib/use-throttled-callback/use-throttled-callback.d.ts +2 -0
  417. package/lib/use-throttled-state/use-throttled-state.d.ts +1 -0
  418. package/lib/use-throttled-value/use-throttled-value.d.ts +1 -0
  419. package/lib/use-timeout/use-timeout.d.ts +6 -0
  420. package/lib/use-toggle/use-toggle.d.ts +1 -0
  421. package/lib/use-uncontrolled/use-uncontrolled.d.ts +12 -0
  422. package/lib/use-validated-state/use-validated-state.d.ts +5 -0
  423. package/lib/use-viewport-size/use-viewport-size.d.ts +4 -0
  424. package/lib/use-window-event/use-window-event.d.ts +1 -0
  425. package/lib/use-window-scroll/use-window-scroll.d.ts +7 -0
  426. package/lib/utils/clamp/clamp.d.ts +1 -0
  427. package/lib/utils/index.d.ts +6 -0
  428. package/lib/utils/lower-first/lower-first.d.ts +1 -0
  429. package/lib/utils/random-id/random-id.d.ts +1 -0
  430. package/lib/utils/range/range.d.ts +1 -0
  431. package/lib/utils/shallow-equal/shallow-equal.d.ts +1 -0
  432. package/lib/utils/upper-first/upper-first.d.ts +1 -0
  433. package/package.json +2 -2
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function getInputOnChange(setValue) {
7
+ return (val) => {
8
+ if (!val) {
9
+ setValue(val);
10
+ } else if (typeof val === "function") {
11
+ setValue(val);
12
+ } else if (typeof val === "object" && "nativeEvent" in val) {
13
+ const { currentTarget } = val;
14
+ if (currentTarget.type === "checkbox") {
15
+ setValue(currentTarget.checked);
16
+ } else {
17
+ setValue(currentTarget.value);
18
+ }
19
+ } else {
20
+ setValue(val);
21
+ }
22
+ };
23
+ }
24
+ function useInputState(initialState) {
25
+ const [value, setValue] = React.useState(initialState);
26
+ return [value, getInputOnChange(setValue)];
27
+ }
28
+
29
+ exports.getInputOnChange = getInputOnChange;
30
+ exports.useInputState = useInputState;
31
+ //# sourceMappingURL=use-input-state.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-input-state.cjs","sources":["../../src/use-input-state/use-input-state.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function getInputOnChange<T>(\n setValue: (value: null | undefined | T | ((current: T) => T)) => void\n) {\n return (val: null | undefined | T | React.ChangeEvent<any> | ((current: T) => T)) => {\n if (!val) {\n setValue(val as T);\n } else if (typeof val === 'function') {\n setValue(val);\n } else if (typeof val === 'object' && 'nativeEvent' in val) {\n const { currentTarget } = val;\n\n if (currentTarget.type === 'checkbox') {\n setValue((currentTarget as any).checked as any);\n } else {\n setValue(currentTarget.value as any);\n }\n } else {\n setValue(val);\n }\n };\n}\n\nexport function useInputState<T>(initialState: T) {\n const [value, setValue] = useState<T>(initialState);\n return [value, getInputOnChange<T>(setValue as any)] as [\n T,\n (value: null | undefined | T | React.ChangeEvent<any>) => void,\n ];\n}\n"],"names":["useState"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useIntersection(options) {
7
+ const [entry, setEntry] = React.useState(null);
8
+ const observer = React.useRef(null);
9
+ const ref = React.useCallback(
10
+ (element) => {
11
+ if (observer.current) {
12
+ observer.current.disconnect();
13
+ observer.current = null;
14
+ }
15
+ if (element === null) {
16
+ setEntry(null);
17
+ return;
18
+ }
19
+ observer.current = new IntersectionObserver(([_entry]) => {
20
+ setEntry(_entry);
21
+ }, options);
22
+ observer.current.observe(element);
23
+ },
24
+ [options?.rootMargin, options?.root, options?.threshold]
25
+ );
26
+ return { ref, entry };
27
+ }
28
+
29
+ exports.useIntersection = useIntersection;
30
+ //# sourceMappingURL=use-intersection.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-intersection.cjs","sources":["../../src/use-intersection/use-intersection.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: ConstructorParameters<typeof IntersectionObserver>[1]\n) {\n const [entry, setEntry] = useState<IntersectionObserverEntry | null>(null);\n\n const observer = useRef<IntersectionObserver | null>(null);\n\n const ref = useCallback(\n (element: T | null) => {\n if (observer.current) {\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (element === null) {\n setEntry(null);\n return;\n }\n\n observer.current = new IntersectionObserver(([_entry]) => {\n setEntry(_entry);\n }, options);\n\n observer.current.observe(element);\n },\n [options?.rootMargin, options?.root, options?.threshold]\n );\n\n return { ref, entry };\n}\n"],"names":["useState","useRef","useCallback"],"mappings":";;;;;AAEO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA;AACzC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AAC1C,CAAA,CAAE,MAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACzB,CAAI,CAAA,CAAA,CAAA,CAAC,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AAC5B,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACtB,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAChE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA;AACxB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,OAAO,CAAC,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAA;AACvC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3D,CAAG,CAAA,CAAA,CAAA;AACH,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAE,KAAK,CAAE,CAAA,CAAA;AACvB,CAAA;;"}
@@ -0,0 +1,44 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useInterval(fn, interval, { autoInvoke = false } = {}) {
7
+ const [active, setActive] = React.useState(false);
8
+ const intervalRef = React.useRef();
9
+ const fnRef = React.useRef();
10
+ const start = () => {
11
+ setActive((old) => {
12
+ if (!old && !intervalRef.current) {
13
+ intervalRef.current = window.setInterval(fnRef.current, interval);
14
+ }
15
+ return true;
16
+ });
17
+ };
18
+ const stop = () => {
19
+ setActive(false);
20
+ window.clearInterval(intervalRef.current);
21
+ intervalRef.current = void 0;
22
+ };
23
+ const toggle = () => {
24
+ if (active) {
25
+ stop();
26
+ } else {
27
+ start();
28
+ }
29
+ };
30
+ React.useEffect(() => {
31
+ fnRef.current = fn;
32
+ active && start();
33
+ return stop;
34
+ }, [fn, active, interval]);
35
+ React.useEffect(() => {
36
+ if (autoInvoke) {
37
+ start();
38
+ }
39
+ }, []);
40
+ return { start, stop, toggle, active };
41
+ }
42
+
43
+ exports.useInterval = useInterval;
44
+ //# sourceMappingURL=use-interval.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-interval.cjs","sources":["../../src/use-interval/use-interval.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\ninterface UseIntervalOptions {\n /** If set, the interval will start automatically when the component is mounted, `false` by default */\n autoInvoke?: boolean;\n}\n\nexport function useInterval(\n fn: () => void,\n interval: number,\n { autoInvoke = false }: UseIntervalOptions = {}\n) {\n const [active, setActive] = useState(false);\n const intervalRef = useRef<number>();\n const fnRef = useRef<() => void>();\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 useEffect(() => {\n fnRef.current = fn;\n active && start();\n return stop;\n }, [fn, active, interval]);\n\n useEffect(() => {\n if (autoInvoke) {\n start();\n }\n }, []);\n\n return { start, stop, toggle, active };\n}\n"],"names":["useState","useRef","useEffect"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useIsFirstRender() {
7
+ const renderRef = React.useRef(true);
8
+ if (renderRef.current === true) {
9
+ renderRef.current = false;
10
+ return true;
11
+ }
12
+ return renderRef.current;
13
+ }
14
+
15
+ exports.useIsFirstRender = useIsFirstRender;
16
+ //# sourceMappingURL=use-is-first-render.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-first-render.cjs","sources":["../../src/use-is-first-render/use-is-first-render.ts"],"sourcesContent":["import { useRef } from 'react';\n\nexport function useIsFirstRender() {\n const renderRef = useRef(true);\n\n if (renderRef.current === true) {\n renderRef.current = false;\n return true;\n }\n\n return renderRef.current;\n}\n"],"names":["useRef"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,gBAAgB,CAAG,CAAA,CAAA,CAAA;AACnC,CAAA,CAAE,MAAM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA;AAChC,CAAA,CAAE,IAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAE,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAI,OAAO,CAAI,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA;AACA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA;;"}
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ const useIsomorphicEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect;
7
+
8
+ exports.useIsomorphicEffect = useIsomorphicEffect;
9
+ //# sourceMappingURL=use-isomorphic-effect.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-isomorphic-effect.cjs","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":";;;;;AAEY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,GAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGA,qBAAe,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;;"}
@@ -0,0 +1,76 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useListState(initialValue = []) {
7
+ const [state, setState] = React.useState(initialValue);
8
+ const append = (...items) => setState((current) => [...current, ...items]);
9
+ const prepend = (...items) => setState((current) => [...items, ...current]);
10
+ const insert = (index, ...items) => setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);
11
+ const apply = (fn) => setState((current) => current.map((item, index) => fn(item, index)));
12
+ const remove = (...indices) => setState((current) => current.filter((_, index) => !indices.includes(index)));
13
+ const pop = () => setState((current) => {
14
+ const cloned = [...current];
15
+ cloned.pop();
16
+ return cloned;
17
+ });
18
+ const shift = () => setState((current) => {
19
+ const cloned = [...current];
20
+ cloned.shift();
21
+ return cloned;
22
+ });
23
+ const reorder = ({ from, to }) => setState((current) => {
24
+ const cloned = [...current];
25
+ const item = current[from];
26
+ cloned.splice(from, 1);
27
+ cloned.splice(to, 0, item);
28
+ return cloned;
29
+ });
30
+ const swap = ({ from, to }) => setState((current) => {
31
+ const cloned = [...current];
32
+ const fromItem = cloned[from];
33
+ const toItem = cloned[to];
34
+ cloned.splice(to, 1, fromItem);
35
+ cloned.splice(from, 1, toItem);
36
+ return cloned;
37
+ });
38
+ const setItem = (index, item) => setState((current) => {
39
+ const cloned = [...current];
40
+ cloned[index] = item;
41
+ return cloned;
42
+ });
43
+ const setItemProp = (index, prop, value) => setState((current) => {
44
+ const cloned = [...current];
45
+ cloned[index] = { ...cloned[index], [prop]: value };
46
+ return cloned;
47
+ });
48
+ const applyWhere = (condition, fn) => setState(
49
+ (current) => current.map((item, index) => condition(item, index) ? fn(item, index) : item)
50
+ );
51
+ const filter = (fn) => {
52
+ setState((current) => current.filter(fn));
53
+ };
54
+ return [
55
+ state,
56
+ {
57
+ setState,
58
+ append,
59
+ prepend,
60
+ insert,
61
+ pop,
62
+ shift,
63
+ apply,
64
+ applyWhere,
65
+ remove,
66
+ reorder,
67
+ swap,
68
+ setItem,
69
+ setItemProp,
70
+ filter
71
+ }
72
+ ];
73
+ }
74
+
75
+ exports.useListState = useListState;
76
+ //# sourceMappingURL=use-list-state.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-list-state.cjs","sources":["../../src/use-list-state/use-list-state.ts"],"sourcesContent":["import { 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 swap: ({ 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 swap = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const fromItem = cloned[from];\n const toItem = cloned[to];\n\n cloned.splice(to, 1, fromItem);\n cloned.splice(from, 1, toItem);\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 swap,\n setItem,\n setItemProp,\n filter,\n },\n ];\n}\n"],"names":["useState"],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useWindowEvent = require('../use-window-event/use-window-event.cjs');
6
+
7
+ function serializeJSON(value, hookName = "use-local-storage") {
8
+ try {
9
+ return JSON.stringify(value);
10
+ } catch (error) {
11
+ throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);
12
+ }
13
+ }
14
+ function deserializeJSON(value) {
15
+ try {
16
+ return value && JSON.parse(value);
17
+ } catch {
18
+ return value;
19
+ }
20
+ }
21
+ function createStorageHandler(type) {
22
+ const getItem = (key) => {
23
+ try {
24
+ return window[type].getItem(key);
25
+ } catch (error) {
26
+ console.warn("use-local-storage: Failed to get value from storage, localStorage is blocked");
27
+ return null;
28
+ }
29
+ };
30
+ const setItem = (key, value) => {
31
+ try {
32
+ window[type].setItem(key, value);
33
+ } catch (error) {
34
+ console.warn("use-local-storage: Failed to set value to storage, localStorage is blocked");
35
+ }
36
+ };
37
+ const removeItem = (key) => {
38
+ try {
39
+ window[type].removeItem(key);
40
+ } catch (error) {
41
+ console.warn(
42
+ "use-local-storage: Failed to remove value from storage, localStorage is blocked"
43
+ );
44
+ }
45
+ };
46
+ return { getItem, setItem, removeItem };
47
+ }
48
+ function createStorage(type, hookName) {
49
+ const eventName = type === "localStorage" ? "mantine-local-storage" : "mantine-session-storage";
50
+ const { getItem, setItem, removeItem } = createStorageHandler(type);
51
+ return function useStorage({
52
+ key,
53
+ defaultValue,
54
+ getInitialValueInEffect = true,
55
+ deserialize = deserializeJSON,
56
+ serialize = (value) => serializeJSON(value, hookName)
57
+ }) {
58
+ const readStorageValue = React.useCallback(
59
+ (skipStorage) => {
60
+ let storageBlockedOrSkipped;
61
+ try {
62
+ storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null || !!skipStorage;
63
+ } catch (_e) {
64
+ storageBlockedOrSkipped = true;
65
+ }
66
+ if (storageBlockedOrSkipped) {
67
+ return defaultValue;
68
+ }
69
+ const storageValue = getItem(key);
70
+ return storageValue !== null ? deserialize(storageValue) : defaultValue;
71
+ },
72
+ [key, defaultValue]
73
+ );
74
+ const [value, setValue] = React.useState(readStorageValue(getInitialValueInEffect));
75
+ const setStorageValue = React.useCallback(
76
+ (val) => {
77
+ if (val instanceof Function) {
78
+ setValue((current) => {
79
+ const result = val(current);
80
+ setItem(key, serialize(result));
81
+ window.dispatchEvent(
82
+ new CustomEvent(eventName, { detail: { key, value: val(current) } })
83
+ );
84
+ return result;
85
+ });
86
+ } else {
87
+ setItem(key, serialize(val));
88
+ window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));
89
+ setValue(val);
90
+ }
91
+ },
92
+ [key]
93
+ );
94
+ const removeStorageValue = React.useCallback(() => {
95
+ removeItem(key);
96
+ window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));
97
+ }, []);
98
+ useWindowEvent.useWindowEvent("storage", (event) => {
99
+ if (event.storageArea === window[type] && event.key === key) {
100
+ setValue(deserialize(event.newValue ?? void 0));
101
+ }
102
+ });
103
+ useWindowEvent.useWindowEvent(eventName, (event) => {
104
+ if (event.detail.key === key) {
105
+ setValue(event.detail.value);
106
+ }
107
+ });
108
+ React.useEffect(() => {
109
+ if (defaultValue !== void 0 && value === void 0) {
110
+ setStorageValue(defaultValue);
111
+ }
112
+ }, [defaultValue, value, setStorageValue]);
113
+ React.useEffect(() => {
114
+ const val = readStorageValue();
115
+ val !== void 0 && setStorageValue(val);
116
+ }, []);
117
+ return [value === void 0 ? defaultValue : value, setStorageValue, removeStorageValue];
118
+ };
119
+ }
120
+ function readValue(type) {
121
+ const { getItem } = createStorageHandler(type);
122
+ return function read({
123
+ key,
124
+ defaultValue,
125
+ deserialize = deserializeJSON
126
+ }) {
127
+ let storageBlockedOrSkipped;
128
+ try {
129
+ storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null;
130
+ } catch (_e) {
131
+ storageBlockedOrSkipped = true;
132
+ }
133
+ if (storageBlockedOrSkipped) {
134
+ return defaultValue;
135
+ }
136
+ const storageValue = getItem(key);
137
+ return storageValue !== null ? deserialize(storageValue) : defaultValue;
138
+ };
139
+ }
140
+
141
+ exports.createStorage = createStorage;
142
+ exports.readValue = readValue;
143
+ //# sourceMappingURL=create-storage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-storage.cjs","sources":["../../src/use-local-storage/create-storage.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { useCallback, useEffect, useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport type StorageType = 'localStorage' | 'sessionStorage';\n\nexport interface StorageProperties<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. Default value is true. */\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 = 'use-local-storage') {\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 | undefined) {\n try {\n return value && JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nfunction createStorageHandler(type: StorageType) {\n const getItem = (key: string) => {\n try {\n return window[type].getItem(key);\n } catch (error) {\n console.warn('use-local-storage: Failed to get value from storage, localStorage is blocked');\n return null;\n }\n };\n\n const setItem = (key: string, value: string) => {\n try {\n window[type].setItem(key, value);\n } catch (error) {\n console.warn('use-local-storage: Failed to set value to storage, localStorage is blocked');\n }\n };\n\n const removeItem = (key: string) => {\n try {\n window[type].removeItem(key);\n } catch (error) {\n console.warn(\n 'use-local-storage: Failed to remove value from storage, localStorage is blocked'\n );\n }\n };\n\n return { getItem, setItem, removeItem };\n}\n\nexport function createStorage<T>(type: StorageType, hookName: string) {\n const eventName = type === 'localStorage' ? 'mantine-local-storage' : 'mantine-session-storage';\n const { getItem, setItem, removeItem } = createStorageHandler(type);\n\n return function useStorage({\n key,\n defaultValue,\n getInitialValueInEffect = true,\n deserialize = deserializeJSON,\n serialize = (value: T) => serializeJSON(value, hookName),\n }: StorageProperties<T>) {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): T => {\n let storageBlockedOrSkipped;\n\n try {\n storageBlockedOrSkipped =\n typeof window === 'undefined' ||\n !(type in window) ||\n window[type] === null ||\n !!skipStorage;\n } catch (_e) {\n storageBlockedOrSkipped = true;\n }\n\n if (storageBlockedOrSkipped) {\n return defaultValue as T;\n }\n\n const storageValue = getItem(key);\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 setItem(key, serialize(result));\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: val(current) } })\n );\n return result;\n });\n } else {\n 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 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 const val = readStorageValue();\n val !== undefined && setStorageValue(val);\n }, []);\n\n return [value === undefined ? defaultValue : value, setStorageValue, removeStorageValue] as [\n T,\n (val: T | ((prevState: T) => T)) => void,\n () => void,\n ];\n };\n}\n\nexport function readValue(type: StorageType) {\n const { getItem } = createStorageHandler(type);\n\n return function read<T>({\n key,\n defaultValue,\n deserialize = deserializeJSON,\n }: StorageProperties<T>) {\n let storageBlockedOrSkipped;\n\n try {\n storageBlockedOrSkipped =\n typeof window === 'undefined' || !(type in window) || window[type] === null;\n } catch (_e) {\n storageBlockedOrSkipped = true;\n }\n\n if (storageBlockedOrSkipped) {\n return defaultValue as T;\n }\n\n const storageValue = getItem(key);\n return storageValue !== null ? deserialize(storageValue) : (defaultValue as T);\n };\n}\n"],"names":["useCallback","useState","useWindowEvent","useEffect"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var createStorage = require('./create-storage.cjs');
5
+
6
+ function useLocalStorage(props) {
7
+ return createStorage.createStorage("localStorage", "use-local-storage")(props);
8
+ }
9
+ const readLocalStorageValue = createStorage.readValue("localStorage");
10
+
11
+ exports.readLocalStorageValue = readLocalStorageValue;
12
+ exports.useLocalStorage = useLocalStorage;
13
+ //# sourceMappingURL=use-local-storage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-local-storage.cjs","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { createStorage, readValue, StorageProperties } from './create-storage';\n\nexport function useLocalStorage<T = string>(props: StorageProperties<T>) {\n return createStorage<T>('localStorage', 'use-local-storage')(props);\n}\n\nexport const readLocalStorageValue = readValue('localStorage');\n"],"names":["createStorage","readValue"],"mappings":";;;;;AAEO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA;AACvC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,2BAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AAClE,CAAA;AACY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useDidUpdate = require('../use-did-update/use-did-update.cjs');
6
+
7
+ function useLogger(componentName, props) {
8
+ React.useEffect(() => {
9
+ console.log(`${componentName} mounted`, ...props);
10
+ return () => console.log(`${componentName} unmounted`);
11
+ }, []);
12
+ useDidUpdate.useDidUpdate(() => {
13
+ console.log(`${componentName} updated`, ...props);
14
+ }, props);
15
+ return null;
16
+ }
17
+
18
+ exports.useLogger = useLogger;
19
+ //# sourceMappingURL=use-logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-logger.cjs","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":";;;;;;AAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,KAAK,CAAE,CAAA,CAAA;AAChD,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA;AACrD,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AAC1D,CAAG,CAAA,CAAA,CAAA,CAAE,EAAE,CAAC,CAAA;AACR,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA;AACrD,CAAG,CAAA,CAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AACX,CAAA,CAAE,OAAO,CAAI,CAAA,CAAA,CAAA,CAAA;AACb,CAAA;;"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+ var useForceUpdate = require('../use-force-update/use-force-update.cjs');
6
+
7
+ function useMap(initialState) {
8
+ const mapRef = React.useRef(new Map(initialState));
9
+ const forceUpdate = useForceUpdate.useForceUpdate();
10
+ mapRef.current.set = (...args) => {
11
+ Map.prototype.set.apply(mapRef.current, args);
12
+ forceUpdate();
13
+ return mapRef.current;
14
+ };
15
+ mapRef.current.clear = (...args) => {
16
+ Map.prototype.clear.apply(mapRef.current, args);
17
+ forceUpdate();
18
+ };
19
+ mapRef.current.delete = (...args) => {
20
+ const res = Map.prototype.delete.apply(mapRef.current, args);
21
+ forceUpdate();
22
+ return res;
23
+ };
24
+ return mapRef.current;
25
+ }
26
+
27
+ exports.useMap = useMap;
28
+ //# sourceMappingURL=use-map.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-map.cjs","sources":["../../src/use-map/use-map.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useForceUpdate } from '../use-force-update/use-force-update';\n\nexport function useMap<T, V>(initialState?: [T, V][]): Map<T, V> {\n const mapRef = useRef(new Map<T, V>(initialState));\n const forceUpdate = useForceUpdate();\n\n mapRef.current.set = (...args) => {\n Map.prototype.set.apply(mapRef.current, args);\n forceUpdate();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n Map.prototype.clear.apply(mapRef.current, args);\n forceUpdate();\n };\n\n mapRef.current.delete = (...args) => {\n const res = Map.prototype.delete.apply(mapRef.current, args);\n forceUpdate();\n\n return res;\n };\n\n return mapRef.current;\n}\n"],"names":["useRef","useForceUpdate"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function attachMediaListener(query, callback) {
7
+ try {
8
+ query.addEventListener("change", callback);
9
+ return () => query.removeEventListener("change", callback);
10
+ } catch (e) {
11
+ query.addListener(callback);
12
+ return () => query.removeListener(callback);
13
+ }
14
+ }
15
+ function getInitialValue(query, initialValue) {
16
+ if (typeof window !== "undefined" && "matchMedia" in window) {
17
+ return window.matchMedia(query).matches;
18
+ }
19
+ return false;
20
+ }
21
+ function useMediaQuery(query, initialValue, { getInitialValueInEffect } = {
22
+ getInitialValueInEffect: true
23
+ }) {
24
+ const [matches, setMatches] = React.useState(
25
+ getInitialValueInEffect ? initialValue : getInitialValue(query)
26
+ );
27
+ const queryRef = React.useRef();
28
+ React.useEffect(() => {
29
+ if ("matchMedia" in window) {
30
+ queryRef.current = window.matchMedia(query);
31
+ setMatches(queryRef.current.matches);
32
+ return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
33
+ }
34
+ return void 0;
35
+ }, [query]);
36
+ return matches;
37
+ }
38
+
39
+ exports.useMediaQuery = useMediaQuery;
40
+ //# sourceMappingURL=use-media-query.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-media-query.cjs","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useEffect, useRef, useState } 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)\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":"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"}