@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.
- package/cjs/index.cjs +164 -0
- package/cjs/index.cjs.map +1 -0
- package/cjs/use-callback-ref/use-callback-ref.cjs +15 -0
- package/cjs/use-callback-ref/use-callback-ref.cjs.map +1 -0
- package/cjs/use-click-outside/use-click-outside.cjs +29 -0
- package/cjs/use-click-outside/use-click-outside.cjs.map +1 -0
- package/cjs/use-clipboard/use-clipboard.cjs +31 -0
- package/cjs/use-clipboard/use-clipboard.cjs.map +1 -0
- package/cjs/use-color-scheme/use-color-scheme.cjs +11 -0
- package/cjs/use-color-scheme/use-color-scheme.cjs.map +1 -0
- package/cjs/use-counter/use-counter.cjs +22 -0
- package/cjs/use-counter/use-counter.cjs.map +1 -0
- package/cjs/use-debounced-callback/use-debounced-callback.cjs +21 -0
- package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -0
- package/cjs/use-debounced-state/use-debounced-state.cjs +31 -0
- package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -0
- package/cjs/use-debounced-value/use-debounced-value.cjs +34 -0
- package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -0
- package/cjs/use-did-update/use-did-update.cjs +24 -0
- package/cjs/use-did-update/use-did-update.cjs.map +1 -0
- package/cjs/use-disclosure/use-disclosure.cjs +34 -0
- package/cjs/use-disclosure/use-disclosure.cjs.map +1 -0
- package/cjs/use-document-title/use-document-title.cjs +15 -0
- package/cjs/use-document-title/use-document-title.cjs.map +1 -0
- package/cjs/use-document-visibility/use-document-visibility.cjs +17 -0
- package/cjs/use-document-visibility/use-document-visibility.cjs.map +1 -0
- package/cjs/use-event-listener/use-event-listener.cjs +19 -0
- package/cjs/use-event-listener/use-event-listener.cjs.map +1 -0
- package/cjs/use-eye-dropper/use-eye-dropper.cjs +29 -0
- package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -0
- package/cjs/use-favicon/use-favicon.cjs +37 -0
- package/cjs/use-favicon/use-favicon.cjs.map +1 -0
- package/cjs/use-fetch/use-fetch.cjs +51 -0
- package/cjs/use-fetch/use-fetch.cjs.map +1 -0
- package/cjs/use-focus-return/use-focus-return.cjs +36 -0
- package/cjs/use-focus-return/use-focus-return.cjs.map +1 -0
- package/cjs/use-focus-trap/create-aria-hider.cjs +45 -0
- package/cjs/use-focus-trap/create-aria-hider.cjs.map +1 -0
- package/cjs/use-focus-trap/scope-tab.cjs +34 -0
- package/cjs/use-focus-trap/scope-tab.cjs.map +1 -0
- package/cjs/use-focus-trap/tabbable.cjs +58 -0
- package/cjs/use-focus-trap/tabbable.cjs.map +1 -0
- package/cjs/use-focus-trap/use-focus-trap.cjs +83 -0
- package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -0
- package/cjs/use-focus-within/use-focus-within.cjs +50 -0
- package/cjs/use-focus-within/use-focus-within.cjs.map +1 -0
- package/cjs/use-force-update/use-force-update.cjs +13 -0
- package/cjs/use-force-update/use-force-update.cjs.map +1 -0
- package/cjs/use-fullscreen/use-fullscreen.cjs +99 -0
- package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -0
- package/cjs/use-hash/use-hash.cjs +31 -0
- package/cjs/use-hash/use-hash.cjs.map +1 -0
- package/cjs/use-headroom/use-headroom.cjs +81 -0
- package/cjs/use-headroom/use-headroom.cjs.map +1 -0
- package/cjs/use-hotkeys/parse-hotkey.cjs +66 -0
- package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -0
- package/cjs/use-hotkeys/use-hotkeys.cjs +35 -0
- package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -0
- package/cjs/use-hover/use-hover.cjs +26 -0
- package/cjs/use-hover/use-hover.cjs.map +1 -0
- package/cjs/use-id/use-id.cjs +25 -0
- package/cjs/use-id/use-id.cjs.map +1 -0
- package/cjs/use-id/use-react-id.cjs +17 -0
- package/cjs/use-id/use-react-id.cjs.map +1 -0
- package/cjs/use-idle/use-idle.cjs +43 -0
- package/cjs/use-idle/use-idle.cjs.map +1 -0
- package/cjs/use-in-viewport/use-in-viewport.cjs +29 -0
- package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -0
- package/cjs/use-input-state/use-input-state.cjs +31 -0
- package/cjs/use-input-state/use-input-state.cjs.map +1 -0
- package/cjs/use-intersection/use-intersection.cjs +30 -0
- package/cjs/use-intersection/use-intersection.cjs.map +1 -0
- package/cjs/use-interval/use-interval.cjs +44 -0
- package/cjs/use-interval/use-interval.cjs.map +1 -0
- package/cjs/use-is-first-render/use-is-first-render.cjs +16 -0
- package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -0
- package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +9 -0
- package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -0
- package/cjs/use-list-state/use-list-state.cjs +76 -0
- package/cjs/use-list-state/use-list-state.cjs.map +1 -0
- package/cjs/use-local-storage/create-storage.cjs +143 -0
- package/cjs/use-local-storage/create-storage.cjs.map +1 -0
- package/cjs/use-local-storage/use-local-storage.cjs +13 -0
- package/cjs/use-local-storage/use-local-storage.cjs.map +1 -0
- package/cjs/use-logger/use-logger.cjs +19 -0
- package/cjs/use-logger/use-logger.cjs.map +1 -0
- package/cjs/use-map/use-map.cjs +28 -0
- package/cjs/use-map/use-map.cjs.map +1 -0
- package/cjs/use-media-query/use-media-query.cjs +40 -0
- package/cjs/use-media-query/use-media-query.cjs.map +1 -0
- package/cjs/use-merged-ref/use-merged-ref.cjs +25 -0
- package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -0
- package/cjs/use-mounted/use-mounted.cjs +13 -0
- package/cjs/use-mounted/use-mounted.cjs.map +1 -0
- package/cjs/use-mouse/use-mouse.cjs +43 -0
- package/cjs/use-mouse/use-mouse.cjs.map +1 -0
- package/cjs/use-move/use-move.cjs +102 -0
- package/cjs/use-move/use-move.cjs.map +1 -0
- package/cjs/use-mutation-observer/use-mutation-observer.cjs +23 -0
- package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -0
- package/cjs/use-network/use-network.cjs +51 -0
- package/cjs/use-network/use-network.cjs.map +1 -0
- package/cjs/use-orientation/use-orientation.cjs +21 -0
- package/cjs/use-orientation/use-orientation.cjs.map +1 -0
- package/cjs/use-os/use-os.cjs +60 -0
- package/cjs/use-os/use-os.cjs.map +1 -0
- package/cjs/use-page-leave/use-page-leave.cjs +14 -0
- package/cjs/use-page-leave/use-page-leave.cjs.map +1 -0
- package/cjs/use-pagination/use-pagination.cjs +78 -0
- package/cjs/use-pagination/use-pagination.cjs.map +1 -0
- package/cjs/use-previous/use-previous.cjs +15 -0
- package/cjs/use-previous/use-previous.cjs.map +1 -0
- package/cjs/use-queue/use-queue.cjs +36 -0
- package/cjs/use-queue/use-queue.cjs.map +1 -0
- package/cjs/use-reduced-motion/use-reduced-motion.cjs +11 -0
- package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -0
- package/cjs/use-resize-observer/use-resize-observer.cjs +54 -0
- package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -0
- package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +94 -0
- package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -0
- package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs +7 -0
- package/cjs/use-scroll-into-view/utils/ease-in-out-quad.cjs.map +1 -0
- package/cjs/use-scroll-into-view/utils/get-relative-position.cjs +66 -0
- package/cjs/use-scroll-into-view/utils/get-relative-position.cjs.map +1 -0
- package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs +17 -0
- package/cjs/use-scroll-into-view/utils/get-scroll-start.cjs.map +1 -0
- package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs +19 -0
- package/cjs/use-scroll-into-view/utils/set-scroll-param.cjs.map +1 -0
- package/cjs/use-session-storage/use-session-storage.cjs +13 -0
- package/cjs/use-session-storage/use-session-storage.cjs.map +1 -0
- package/cjs/use-set/use-set.cjs +28 -0
- package/cjs/use-set/use-set.cjs.map +1 -0
- package/cjs/use-set-state/use-set-state.cjs +19 -0
- package/cjs/use-set-state/use-set-state.cjs.map +1 -0
- package/cjs/use-shallow-effect/use-shallow-effect.cjs +38 -0
- package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -0
- package/cjs/use-state-history/use-state-history.cjs +43 -0
- package/cjs/use-state-history/use-state-history.cjs.map +1 -0
- package/cjs/use-text-selection/use-text-selection.cjs +23 -0
- package/cjs/use-text-selection/use-text-selection.cjs.map +1 -0
- package/cjs/use-throttled-callback/use-throttled-callback.cjs +54 -0
- package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -0
- package/cjs/use-throttled-state/use-throttled-state.cjs +15 -0
- package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -0
- package/cjs/use-throttled-value/use-throttled-value.cjs +25 -0
- package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -0
- package/cjs/use-timeout/use-timeout.cjs +35 -0
- package/cjs/use-timeout/use-timeout.cjs.map +1 -0
- package/cjs/use-toggle/use-toggle.cjs +16 -0
- package/cjs/use-toggle/use-toggle.cjs.map +1 -0
- package/cjs/use-uncontrolled/use-uncontrolled.cjs +27 -0
- package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -0
- package/cjs/use-validated-state/use-validated-state.cjs +27 -0
- package/cjs/use-validated-state/use-validated-state.cjs.map +1 -0
- package/cjs/use-viewport-size/use-viewport-size.cjs +25 -0
- package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -0
- package/cjs/use-window-event/use-window-event.cjs +14 -0
- package/cjs/use-window-event/use-window-event.cjs.map +1 -0
- package/cjs/use-window-scroll/use-window-scroll.cjs +33 -0
- package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -0
- package/cjs/utils/clamp/clamp.cjs +18 -0
- package/cjs/utils/clamp/clamp.cjs.map +1 -0
- package/cjs/utils/lower-first/lower-first.cjs +9 -0
- package/cjs/utils/lower-first/lower-first.cjs.map +1 -0
- package/cjs/utils/random-id/random-id.cjs +9 -0
- package/cjs/utils/random-id/random-id.cjs.map +1 -0
- package/cjs/utils/range/range.cjs +14 -0
- package/cjs/utils/range/range.cjs.map +1 -0
- package/cjs/utils/shallow-equal/shallow-equal.cjs +29 -0
- package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -0
- package/cjs/utils/upper-first/upper-first.cjs +9 -0
- package/cjs/utils/upper-first/upper-first.cjs.map +1 -0
- package/esm/index.mjs +77 -0
- package/esm/index.mjs.map +1 -0
- package/esm/use-callback-ref/use-callback-ref.mjs +13 -0
- package/esm/use-callback-ref/use-callback-ref.mjs.map +1 -0
- package/esm/use-click-outside/use-click-outside.mjs +27 -0
- package/esm/use-click-outside/use-click-outside.mjs.map +1 -0
- package/esm/use-clipboard/use-clipboard.mjs +29 -0
- package/esm/use-clipboard/use-clipboard.mjs.map +1 -0
- package/esm/use-color-scheme/use-color-scheme.mjs +9 -0
- package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -0
- package/esm/use-counter/use-counter.mjs +20 -0
- package/esm/use-counter/use-counter.mjs.map +1 -0
- package/esm/use-debounced-callback/use-debounced-callback.mjs +19 -0
- package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -0
- package/esm/use-debounced-state/use-debounced-state.mjs +29 -0
- package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -0
- package/esm/use-debounced-value/use-debounced-value.mjs +32 -0
- package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -0
- package/esm/use-did-update/use-did-update.mjs +22 -0
- package/esm/use-did-update/use-did-update.mjs.map +1 -0
- package/esm/use-disclosure/use-disclosure.mjs +32 -0
- package/esm/use-disclosure/use-disclosure.mjs.map +1 -0
- package/esm/use-document-title/use-document-title.mjs +13 -0
- package/esm/use-document-title/use-document-title.mjs.map +1 -0
- package/esm/use-document-visibility/use-document-visibility.mjs +15 -0
- package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -0
- package/esm/use-event-listener/use-event-listener.mjs +17 -0
- package/esm/use-event-listener/use-event-listener.mjs.map +1 -0
- package/esm/use-eye-dropper/use-eye-dropper.mjs +27 -0
- package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -0
- package/esm/use-favicon/use-favicon.mjs +35 -0
- package/esm/use-favicon/use-favicon.mjs.map +1 -0
- package/esm/use-fetch/use-fetch.mjs +49 -0
- package/esm/use-fetch/use-fetch.mjs.map +1 -0
- package/esm/use-focus-return/use-focus-return.mjs +34 -0
- package/esm/use-focus-return/use-focus-return.mjs.map +1 -0
- package/esm/use-focus-trap/create-aria-hider.mjs +43 -0
- package/esm/use-focus-trap/create-aria-hider.mjs.map +1 -0
- package/esm/use-focus-trap/scope-tab.mjs +32 -0
- package/esm/use-focus-trap/scope-tab.mjs.map +1 -0
- package/esm/use-focus-trap/tabbable.mjs +53 -0
- package/esm/use-focus-trap/tabbable.mjs.map +1 -0
- package/esm/use-focus-trap/use-focus-trap.mjs +81 -0
- package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -0
- package/esm/use-focus-within/use-focus-within.mjs +48 -0
- package/esm/use-focus-within/use-focus-within.mjs.map +1 -0
- package/esm/use-force-update/use-force-update.mjs +11 -0
- package/esm/use-force-update/use-force-update.mjs.map +1 -0
- package/esm/use-fullscreen/use-fullscreen.mjs +97 -0
- package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -0
- package/esm/use-hash/use-hash.mjs +29 -0
- package/esm/use-hash/use-hash.mjs.map +1 -0
- package/esm/use-headroom/use-headroom.mjs +76 -0
- package/esm/use-headroom/use-headroom.mjs.map +1 -0
- package/esm/use-hotkeys/parse-hotkey.mjs +62 -0
- package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -0
- package/esm/use-hotkeys/use-hotkeys.mjs +33 -0
- package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -0
- package/esm/use-hover/use-hover.mjs +24 -0
- package/esm/use-hover/use-hover.mjs.map +1 -0
- package/esm/use-id/use-id.mjs +23 -0
- package/esm/use-id/use-id.mjs.map +1 -0
- package/esm/use-id/use-react-id.mjs +11 -0
- package/esm/use-id/use-react-id.mjs.map +1 -0
- package/esm/use-idle/use-idle.mjs +41 -0
- package/esm/use-idle/use-idle.mjs.map +1 -0
- package/esm/use-in-viewport/use-in-viewport.mjs +27 -0
- package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -0
- package/esm/use-input-state/use-input-state.mjs +28 -0
- package/esm/use-input-state/use-input-state.mjs.map +1 -0
- package/esm/use-intersection/use-intersection.mjs +28 -0
- package/esm/use-intersection/use-intersection.mjs.map +1 -0
- package/esm/use-interval/use-interval.mjs +42 -0
- package/esm/use-interval/use-interval.mjs.map +1 -0
- package/esm/use-is-first-render/use-is-first-render.mjs +14 -0
- package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -0
- package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +7 -0
- package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -0
- package/esm/use-list-state/use-list-state.mjs +74 -0
- package/esm/use-list-state/use-list-state.mjs.map +1 -0
- package/esm/use-local-storage/create-storage.mjs +140 -0
- package/esm/use-local-storage/create-storage.mjs.map +1 -0
- package/esm/use-local-storage/use-local-storage.mjs +10 -0
- package/esm/use-local-storage/use-local-storage.mjs.map +1 -0
- package/esm/use-logger/use-logger.mjs +17 -0
- package/esm/use-logger/use-logger.mjs.map +1 -0
- package/esm/use-map/use-map.mjs +26 -0
- package/esm/use-map/use-map.mjs.map +1 -0
- package/esm/use-media-query/use-media-query.mjs +38 -0
- package/esm/use-media-query/use-media-query.mjs.map +1 -0
- package/esm/use-merged-ref/use-merged-ref.mjs +21 -0
- package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -0
- package/esm/use-mounted/use-mounted.mjs +11 -0
- package/esm/use-mounted/use-mounted.mjs.map +1 -0
- package/esm/use-mouse/use-mouse.mjs +41 -0
- package/esm/use-mouse/use-mouse.mjs.map +1 -0
- package/esm/use-move/use-move.mjs +99 -0
- package/esm/use-move/use-move.mjs.map +1 -0
- package/esm/use-mutation-observer/use-mutation-observer.mjs +21 -0
- package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -0
- package/esm/use-network/use-network.mjs +49 -0
- package/esm/use-network/use-network.mjs.map +1 -0
- package/esm/use-orientation/use-orientation.mjs +19 -0
- package/esm/use-orientation/use-orientation.mjs.map +1 -0
- package/esm/use-os/use-os.mjs +58 -0
- package/esm/use-os/use-os.mjs.map +1 -0
- package/esm/use-page-leave/use-page-leave.mjs +12 -0
- package/esm/use-page-leave/use-page-leave.mjs.map +1 -0
- package/esm/use-pagination/use-pagination.mjs +75 -0
- package/esm/use-pagination/use-pagination.mjs.map +1 -0
- package/esm/use-previous/use-previous.mjs +13 -0
- package/esm/use-previous/use-previous.mjs.map +1 -0
- package/esm/use-queue/use-queue.mjs +34 -0
- package/esm/use-queue/use-queue.mjs.map +1 -0
- package/esm/use-reduced-motion/use-reduced-motion.mjs +9 -0
- package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -0
- package/esm/use-resize-observer/use-resize-observer.mjs +51 -0
- package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -0
- package/esm/use-scroll-into-view/use-scroll-into-view.mjs +92 -0
- package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -0
- package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs +5 -0
- package/esm/use-scroll-into-view/utils/ease-in-out-quad.mjs.map +1 -0
- package/esm/use-scroll-into-view/utils/get-relative-position.mjs +64 -0
- package/esm/use-scroll-into-view/utils/get-relative-position.mjs.map +1 -0
- package/esm/use-scroll-into-view/utils/get-scroll-start.mjs +15 -0
- package/esm/use-scroll-into-view/utils/get-scroll-start.mjs.map +1 -0
- package/esm/use-scroll-into-view/utils/set-scroll-param.mjs +17 -0
- package/esm/use-scroll-into-view/utils/set-scroll-param.mjs.map +1 -0
- package/esm/use-session-storage/use-session-storage.mjs +10 -0
- package/esm/use-session-storage/use-session-storage.mjs.map +1 -0
- package/esm/use-set/use-set.mjs +26 -0
- package/esm/use-set/use-set.mjs.map +1 -0
- package/esm/use-set-state/use-set-state.mjs +17 -0
- package/esm/use-set-state/use-set-state.mjs.map +1 -0
- package/esm/use-shallow-effect/use-shallow-effect.mjs +36 -0
- package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -0
- package/esm/use-state-history/use-state-history.mjs +41 -0
- package/esm/use-state-history/use-state-history.mjs.map +1 -0
- package/esm/use-text-selection/use-text-selection.mjs +21 -0
- package/esm/use-text-selection/use-text-selection.mjs.map +1 -0
- package/esm/use-throttled-callback/use-throttled-callback.mjs +51 -0
- package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -0
- package/esm/use-throttled-state/use-throttled-state.mjs +13 -0
- package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -0
- package/esm/use-throttled-value/use-throttled-value.mjs +23 -0
- package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -0
- package/esm/use-timeout/use-timeout.mjs +33 -0
- package/esm/use-timeout/use-timeout.mjs.map +1 -0
- package/esm/use-toggle/use-toggle.mjs +14 -0
- package/esm/use-toggle/use-toggle.mjs.map +1 -0
- package/esm/use-uncontrolled/use-uncontrolled.mjs +25 -0
- package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -0
- package/esm/use-validated-state/use-validated-state.mjs +25 -0
- package/esm/use-validated-state/use-validated-state.mjs.map +1 -0
- package/esm/use-viewport-size/use-viewport-size.mjs +23 -0
- package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -0
- package/esm/use-window-event/use-window-event.mjs +12 -0
- package/esm/use-window-event/use-window-event.mjs.map +1 -0
- package/esm/use-window-scroll/use-window-scroll.mjs +31 -0
- package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -0
- package/esm/utils/clamp/clamp.mjs +16 -0
- package/esm/utils/clamp/clamp.mjs.map +1 -0
- package/esm/utils/lower-first/lower-first.mjs +7 -0
- package/esm/utils/lower-first/lower-first.mjs.map +1 -0
- package/esm/utils/random-id/random-id.mjs +7 -0
- package/esm/utils/random-id/random-id.mjs.map +1 -0
- package/esm/utils/range/range.mjs +12 -0
- package/esm/utils/range/range.mjs.map +1 -0
- package/esm/utils/shallow-equal/shallow-equal.mjs +27 -0
- package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -0
- package/esm/utils/upper-first/upper-first.mjs +7 -0
- package/esm/utils/upper-first/upper-first.mjs.map +1 -0
- package/lib/index.d.mts +78 -0
- package/lib/index.d.ts +78 -0
- package/lib/use-callback-ref/use-callback-ref.d.ts +1 -0
- package/lib/use-click-outside/use-click-outside.d.ts +1 -0
- package/lib/use-clipboard/use-clipboard.d.ts +8 -0
- package/lib/use-color-scheme/use-color-scheme.d.ts +2 -0
- package/lib/use-counter/use-counter.d.ts +9 -0
- package/lib/use-debounced-callback/use-debounced-callback.d.ts +1 -0
- package/lib/use-debounced-state/use-debounced-state.d.ts +4 -0
- package/lib/use-debounced-value/use-debounced-value.d.ts +3 -0
- package/lib/use-did-update/use-did-update.d.ts +2 -0
- package/lib/use-disclosure/use-disclosure.d.ts +8 -0
- package/lib/use-document-title/use-document-title.d.ts +1 -0
- package/lib/use-document-visibility/use-document-visibility.d.ts +1 -0
- package/lib/use-event-listener/use-event-listener.d.ts +1 -0
- package/lib/use-eye-dropper/use-eye-dropper.d.ts +11 -0
- package/lib/use-favicon/use-favicon.d.ts +1 -0
- package/lib/use-fetch/use-fetch.d.ts +10 -0
- package/lib/use-focus-return/use-focus-return.d.ts +7 -0
- package/lib/use-focus-trap/create-aria-hider.d.ts +1 -0
- package/lib/use-focus-trap/scope-tab.d.ts +1 -0
- package/lib/use-focus-trap/tabbable.d.ts +4 -0
- package/lib/use-focus-trap/use-focus-trap.d.ts +1 -0
- package/lib/use-focus-within/use-focus-within.d.ts +8 -0
- package/lib/use-force-update/use-force-update.d.ts +1 -0
- package/lib/use-fullscreen/use-fullscreen.d.ts +5 -0
- package/lib/use-hash/use-hash.d.ts +5 -0
- package/lib/use-headroom/use-headroom.d.ts +17 -0
- package/lib/use-hotkeys/parse-hotkey.d.ts +19 -0
- package/lib/use-hotkeys/use-hotkeys.d.ts +5 -0
- package/lib/use-hover/use-hover.d.ts +4 -0
- package/lib/use-id/use-id.d.ts +1 -0
- package/lib/use-id/use-react-id.d.ts +1 -0
- package/lib/use-idle/use-idle.d.ts +4 -0
- package/lib/use-in-viewport/use-in-viewport.d.ts +4 -0
- package/lib/use-input-state/use-input-state.d.ts +2 -0
- package/lib/use-intersection/use-intersection.d.ts +4 -0
- package/lib/use-interval/use-interval.d.ts +11 -0
- package/lib/use-is-first-render/use-is-first-render.d.ts +1 -0
- package/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts +2 -0
- package/lib/use-list-state/use-list-state.d.ts +24 -0
- package/lib/use-local-storage/create-storage.d.ts +15 -0
- package/lib/use-local-storage/use-local-storage.d.ts +3 -0
- package/lib/use-logger/use-logger.d.ts +1 -0
- package/lib/use-map/use-map.d.ts +1 -0
- package/lib/use-media-query/use-media-query.d.ts +4 -0
- package/lib/use-merged-ref/use-merged-ref.d.ts +6 -0
- package/lib/use-mounted/use-mounted.d.ts +1 -0
- package/lib/use-mouse/use-mouse.d.ts +7 -0
- package/lib/use-move/use-move.d.ts +17 -0
- package/lib/use-mutation-observer/use-mutation-observer.d.ts +2 -0
- package/lib/use-network/use-network.d.ts +12 -0
- package/lib/use-orientation/use-orientation.d.ts +4 -0
- package/lib/use-os/use-os.d.ts +6 -0
- package/lib/use-page-leave/use-page-leave.d.ts +1 -0
- package/lib/use-pagination/use-pagination.d.ts +24 -0
- package/lib/use-previous/use-previous.d.ts +1 -0
- package/lib/use-queue/use-queue.d.ts +10 -0
- package/lib/use-reduced-motion/use-reduced-motion.d.ts +2 -0
- package/lib/use-resize-observer/use-resize-observer.d.ts +8 -0
- package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +28 -0
- package/lib/use-scroll-into-view/utils/ease-in-out-quad.d.ts +1 -0
- package/lib/use-scroll-into-view/utils/get-relative-position.d.ts +1 -0
- package/lib/use-scroll-into-view/utils/get-scroll-start.d.ts +1 -0
- package/lib/use-scroll-into-view/utils/set-scroll-param.d.ts +1 -0
- package/lib/use-session-storage/use-session-storage.d.ts +3 -0
- package/lib/use-set/use-set.d.ts +1 -0
- package/lib/use-set-state/use-set-state.d.ts +1 -0
- package/lib/use-shallow-effect/use-shallow-effect.d.ts +1 -0
- package/lib/use-state-history/use-state-history.d.ts +11 -0
- package/lib/use-text-selection/use-text-selection.d.ts +1 -0
- package/lib/use-throttled-callback/use-throttled-callback.d.ts +2 -0
- package/lib/use-throttled-state/use-throttled-state.d.ts +1 -0
- package/lib/use-throttled-value/use-throttled-value.d.ts +1 -0
- package/lib/use-timeout/use-timeout.d.ts +6 -0
- package/lib/use-toggle/use-toggle.d.ts +1 -0
- package/lib/use-uncontrolled/use-uncontrolled.d.ts +12 -0
- package/lib/use-validated-state/use-validated-state.d.ts +5 -0
- package/lib/use-viewport-size/use-viewport-size.d.ts +4 -0
- package/lib/use-window-event/use-window-event.d.ts +1 -0
- package/lib/use-window-scroll/use-window-scroll.d.ts +7 -0
- package/lib/utils/clamp/clamp.d.ts +1 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/lower-first/lower-first.d.ts +1 -0
- package/lib/utils/random-id/random-id.d.ts +1 -0
- package/lib/utils/range/range.d.ts +1 -0
- package/lib/utils/shallow-equal/shallow-equal.d.ts +1 -0
- package/lib/utils/upper-first/upper-first.d.ts +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-isomorphic-effect.mjs","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":[],"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,CAAG,eAAe,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
|
|
4
|
+
function useListState(initialValue = []) {
|
|
5
|
+
const [state, setState] = useState(initialValue);
|
|
6
|
+
const append = (...items) => setState((current) => [...current, ...items]);
|
|
7
|
+
const prepend = (...items) => setState((current) => [...items, ...current]);
|
|
8
|
+
const insert = (index, ...items) => setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);
|
|
9
|
+
const apply = (fn) => setState((current) => current.map((item, index) => fn(item, index)));
|
|
10
|
+
const remove = (...indices) => setState((current) => current.filter((_, index) => !indices.includes(index)));
|
|
11
|
+
const pop = () => setState((current) => {
|
|
12
|
+
const cloned = [...current];
|
|
13
|
+
cloned.pop();
|
|
14
|
+
return cloned;
|
|
15
|
+
});
|
|
16
|
+
const shift = () => setState((current) => {
|
|
17
|
+
const cloned = [...current];
|
|
18
|
+
cloned.shift();
|
|
19
|
+
return cloned;
|
|
20
|
+
});
|
|
21
|
+
const reorder = ({ from, to }) => setState((current) => {
|
|
22
|
+
const cloned = [...current];
|
|
23
|
+
const item = current[from];
|
|
24
|
+
cloned.splice(from, 1);
|
|
25
|
+
cloned.splice(to, 0, item);
|
|
26
|
+
return cloned;
|
|
27
|
+
});
|
|
28
|
+
const swap = ({ from, to }) => setState((current) => {
|
|
29
|
+
const cloned = [...current];
|
|
30
|
+
const fromItem = cloned[from];
|
|
31
|
+
const toItem = cloned[to];
|
|
32
|
+
cloned.splice(to, 1, fromItem);
|
|
33
|
+
cloned.splice(from, 1, toItem);
|
|
34
|
+
return cloned;
|
|
35
|
+
});
|
|
36
|
+
const setItem = (index, item) => setState((current) => {
|
|
37
|
+
const cloned = [...current];
|
|
38
|
+
cloned[index] = item;
|
|
39
|
+
return cloned;
|
|
40
|
+
});
|
|
41
|
+
const setItemProp = (index, prop, value) => setState((current) => {
|
|
42
|
+
const cloned = [...current];
|
|
43
|
+
cloned[index] = { ...cloned[index], [prop]: value };
|
|
44
|
+
return cloned;
|
|
45
|
+
});
|
|
46
|
+
const applyWhere = (condition, fn) => setState(
|
|
47
|
+
(current) => current.map((item, index) => condition(item, index) ? fn(item, index) : item)
|
|
48
|
+
);
|
|
49
|
+
const filter = (fn) => {
|
|
50
|
+
setState((current) => current.filter(fn));
|
|
51
|
+
};
|
|
52
|
+
return [
|
|
53
|
+
state,
|
|
54
|
+
{
|
|
55
|
+
setState,
|
|
56
|
+
append,
|
|
57
|
+
prepend,
|
|
58
|
+
insert,
|
|
59
|
+
pop,
|
|
60
|
+
shift,
|
|
61
|
+
apply,
|
|
62
|
+
applyWhere,
|
|
63
|
+
remove,
|
|
64
|
+
reorder,
|
|
65
|
+
swap,
|
|
66
|
+
setItem,
|
|
67
|
+
setItemProp,
|
|
68
|
+
filter
|
|
69
|
+
}
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { useListState };
|
|
74
|
+
//# sourceMappingURL=use-list-state.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-list-state.mjs","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":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useCallback, useState, useEffect } from 'react';
|
|
3
|
+
import { useWindowEvent } from '../use-window-event/use-window-event.mjs';
|
|
4
|
+
|
|
5
|
+
function serializeJSON(value, hookName = "use-local-storage") {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.stringify(value);
|
|
8
|
+
} catch (error) {
|
|
9
|
+
throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function deserializeJSON(value) {
|
|
13
|
+
try {
|
|
14
|
+
return value && JSON.parse(value);
|
|
15
|
+
} catch {
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function createStorageHandler(type) {
|
|
20
|
+
const getItem = (key) => {
|
|
21
|
+
try {
|
|
22
|
+
return window[type].getItem(key);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.warn("use-local-storage: Failed to get value from storage, localStorage is blocked");
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const setItem = (key, value) => {
|
|
29
|
+
try {
|
|
30
|
+
window[type].setItem(key, value);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.warn("use-local-storage: Failed to set value to storage, localStorage is blocked");
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const removeItem = (key) => {
|
|
36
|
+
try {
|
|
37
|
+
window[type].removeItem(key);
|
|
38
|
+
} catch (error) {
|
|
39
|
+
console.warn(
|
|
40
|
+
"use-local-storage: Failed to remove value from storage, localStorage is blocked"
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return { getItem, setItem, removeItem };
|
|
45
|
+
}
|
|
46
|
+
function createStorage(type, hookName) {
|
|
47
|
+
const eventName = type === "localStorage" ? "mantine-local-storage" : "mantine-session-storage";
|
|
48
|
+
const { getItem, setItem, removeItem } = createStorageHandler(type);
|
|
49
|
+
return function useStorage({
|
|
50
|
+
key,
|
|
51
|
+
defaultValue,
|
|
52
|
+
getInitialValueInEffect = true,
|
|
53
|
+
deserialize = deserializeJSON,
|
|
54
|
+
serialize = (value) => serializeJSON(value, hookName)
|
|
55
|
+
}) {
|
|
56
|
+
const readStorageValue = useCallback(
|
|
57
|
+
(skipStorage) => {
|
|
58
|
+
let storageBlockedOrSkipped;
|
|
59
|
+
try {
|
|
60
|
+
storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null || !!skipStorage;
|
|
61
|
+
} catch (_e) {
|
|
62
|
+
storageBlockedOrSkipped = true;
|
|
63
|
+
}
|
|
64
|
+
if (storageBlockedOrSkipped) {
|
|
65
|
+
return defaultValue;
|
|
66
|
+
}
|
|
67
|
+
const storageValue = getItem(key);
|
|
68
|
+
return storageValue !== null ? deserialize(storageValue) : defaultValue;
|
|
69
|
+
},
|
|
70
|
+
[key, defaultValue]
|
|
71
|
+
);
|
|
72
|
+
const [value, setValue] = useState(readStorageValue(getInitialValueInEffect));
|
|
73
|
+
const setStorageValue = useCallback(
|
|
74
|
+
(val) => {
|
|
75
|
+
if (val instanceof Function) {
|
|
76
|
+
setValue((current) => {
|
|
77
|
+
const result = val(current);
|
|
78
|
+
setItem(key, serialize(result));
|
|
79
|
+
window.dispatchEvent(
|
|
80
|
+
new CustomEvent(eventName, { detail: { key, value: val(current) } })
|
|
81
|
+
);
|
|
82
|
+
return result;
|
|
83
|
+
});
|
|
84
|
+
} else {
|
|
85
|
+
setItem(key, serialize(val));
|
|
86
|
+
window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));
|
|
87
|
+
setValue(val);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
[key]
|
|
91
|
+
);
|
|
92
|
+
const removeStorageValue = useCallback(() => {
|
|
93
|
+
removeItem(key);
|
|
94
|
+
window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));
|
|
95
|
+
}, []);
|
|
96
|
+
useWindowEvent("storage", (event) => {
|
|
97
|
+
if (event.storageArea === window[type] && event.key === key) {
|
|
98
|
+
setValue(deserialize(event.newValue ?? void 0));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
useWindowEvent(eventName, (event) => {
|
|
102
|
+
if (event.detail.key === key) {
|
|
103
|
+
setValue(event.detail.value);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (defaultValue !== void 0 && value === void 0) {
|
|
108
|
+
setStorageValue(defaultValue);
|
|
109
|
+
}
|
|
110
|
+
}, [defaultValue, value, setStorageValue]);
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
const val = readStorageValue();
|
|
113
|
+
val !== void 0 && setStorageValue(val);
|
|
114
|
+
}, []);
|
|
115
|
+
return [value === void 0 ? defaultValue : value, setStorageValue, removeStorageValue];
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function readValue(type) {
|
|
119
|
+
const { getItem } = createStorageHandler(type);
|
|
120
|
+
return function read({
|
|
121
|
+
key,
|
|
122
|
+
defaultValue,
|
|
123
|
+
deserialize = deserializeJSON
|
|
124
|
+
}) {
|
|
125
|
+
let storageBlockedOrSkipped;
|
|
126
|
+
try {
|
|
127
|
+
storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null;
|
|
128
|
+
} catch (_e) {
|
|
129
|
+
storageBlockedOrSkipped = true;
|
|
130
|
+
}
|
|
131
|
+
if (storageBlockedOrSkipped) {
|
|
132
|
+
return defaultValue;
|
|
133
|
+
}
|
|
134
|
+
const storageValue = getItem(key);
|
|
135
|
+
return storageValue !== null ? deserialize(storageValue) : defaultValue;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export { createStorage, readValue };
|
|
140
|
+
//# sourceMappingURL=create-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-storage.mjs","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":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createStorage, readValue } from './create-storage.mjs';
|
|
3
|
+
|
|
4
|
+
function useLocalStorage(props) {
|
|
5
|
+
return createStorage("localStorage", "use-local-storage")(props);
|
|
6
|
+
}
|
|
7
|
+
const readLocalStorageValue = readValue("localStorage");
|
|
8
|
+
|
|
9
|
+
export { readLocalStorageValue, useLocalStorage };
|
|
10
|
+
//# sourceMappingURL=use-local-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-local-storage.mjs","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":[],"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,CAAO,aAAa,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,CAAG,CAAS,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,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { useDidUpdate } from '../use-did-update/use-did-update.mjs';
|
|
4
|
+
|
|
5
|
+
function useLogger(componentName, props) {
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
console.log(`${componentName} mounted`, ...props);
|
|
8
|
+
return () => console.log(`${componentName} unmounted`);
|
|
9
|
+
}, []);
|
|
10
|
+
useDidUpdate(() => {
|
|
11
|
+
console.log(`${componentName} updated`, ...props);
|
|
12
|
+
}, props);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { useLogger };
|
|
17
|
+
//# sourceMappingURL=use-logger.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-logger.mjs","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":[],"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,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { useForceUpdate } from '../use-force-update/use-force-update.mjs';
|
|
4
|
+
|
|
5
|
+
function useMap(initialState) {
|
|
6
|
+
const mapRef = useRef(new Map(initialState));
|
|
7
|
+
const forceUpdate = useForceUpdate();
|
|
8
|
+
mapRef.current.set = (...args) => {
|
|
9
|
+
Map.prototype.set.apply(mapRef.current, args);
|
|
10
|
+
forceUpdate();
|
|
11
|
+
return mapRef.current;
|
|
12
|
+
};
|
|
13
|
+
mapRef.current.clear = (...args) => {
|
|
14
|
+
Map.prototype.clear.apply(mapRef.current, args);
|
|
15
|
+
forceUpdate();
|
|
16
|
+
};
|
|
17
|
+
mapRef.current.delete = (...args) => {
|
|
18
|
+
const res = Map.prototype.delete.apply(mapRef.current, args);
|
|
19
|
+
forceUpdate();
|
|
20
|
+
return res;
|
|
21
|
+
};
|
|
22
|
+
return mapRef.current;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { useMap };
|
|
26
|
+
//# sourceMappingURL=use-map.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-map.mjs","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":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useRef, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
function attachMediaListener(query, callback) {
|
|
5
|
+
try {
|
|
6
|
+
query.addEventListener("change", callback);
|
|
7
|
+
return () => query.removeEventListener("change", callback);
|
|
8
|
+
} catch (e) {
|
|
9
|
+
query.addListener(callback);
|
|
10
|
+
return () => query.removeListener(callback);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function getInitialValue(query, initialValue) {
|
|
14
|
+
if (typeof window !== "undefined" && "matchMedia" in window) {
|
|
15
|
+
return window.matchMedia(query).matches;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
function useMediaQuery(query, initialValue, { getInitialValueInEffect } = {
|
|
20
|
+
getInitialValueInEffect: true
|
|
21
|
+
}) {
|
|
22
|
+
const [matches, setMatches] = useState(
|
|
23
|
+
getInitialValueInEffect ? initialValue : getInitialValue(query)
|
|
24
|
+
);
|
|
25
|
+
const queryRef = useRef();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if ("matchMedia" in window) {
|
|
28
|
+
queryRef.current = window.matchMedia(query);
|
|
29
|
+
setMatches(queryRef.current.matches);
|
|
30
|
+
return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
|
|
31
|
+
}
|
|
32
|
+
return void 0;
|
|
33
|
+
}, [query]);
|
|
34
|
+
return matches;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { useMediaQuery };
|
|
38
|
+
//# sourceMappingURL=use-media-query.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media-query.mjs","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":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
function assignRef(ref, value) {
|
|
5
|
+
if (typeof ref === "function") {
|
|
6
|
+
ref(value);
|
|
7
|
+
} else if (typeof ref === "object" && ref !== null && "current" in ref) {
|
|
8
|
+
ref.current = value;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function mergeRefs(...refs) {
|
|
12
|
+
return (node) => {
|
|
13
|
+
refs.forEach((ref) => assignRef(ref, node));
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function useMergedRef(...refs) {
|
|
17
|
+
return useCallback(mergeRefs(...refs), refs);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { assignRef, mergeRefs, useMergedRef };
|
|
21
|
+
//# sourceMappingURL=use-merged-ref.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-merged-ref.mjs","sources":["../../src/use-merged-ref/use-merged-ref.ts"],"sourcesContent":["import { Ref, useCallback } from 'react';\n\ntype PossibleRef<T> = Ref<T> | undefined;\n\nexport function assignRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (typeof ref === 'object' && ref !== null && 'current' in ref) {\n (ref as React.MutableRefObject<T>).current = value;\n }\n}\n\nexport function mergeRefs<T>(...refs: PossibleRef<T>[]) {\n return (node: T | null) => {\n refs.forEach((ref) => assignRef(ref, node));\n };\n}\n\nexport function useMergedRef<T>(...refs: PossibleRef<T>[]) {\n return useCallback(mergeRefs(...refs), refs);\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,KAAK,CAAE,CAAA,CAAA;AACtC,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA;AACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AACd,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,KAAK,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAE,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA;AACA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AACnC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA;AAC/C,CAAG,CAAA,CAAA,CAAA;AACH,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AACtC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AAC9C,CAAA;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
function useMounted() {
|
|
5
|
+
const [mounted, setMounted] = useState(false);
|
|
6
|
+
useEffect(() => setMounted(true), []);
|
|
7
|
+
return mounted;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { useMounted };
|
|
11
|
+
//# sourceMappingURL=use-mounted.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mounted.mjs","sources":["../../src/use-mounted/use-mounted.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport function useMounted() {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n return mounted;\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAU,CAAG,CAAA,CAAA,CAAA;AAC7B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AAC/C,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAE,CAAC,CAAA;AACvC,CAAA,CAAE,OAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useRef, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
function useMouse(options = { resetOnExit: false }) {
|
|
5
|
+
const [position, setPosition] = useState({ x: 0, y: 0 });
|
|
6
|
+
const ref = useRef();
|
|
7
|
+
const setMousePosition = (event) => {
|
|
8
|
+
if (ref.current) {
|
|
9
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
10
|
+
const x = Math.max(
|
|
11
|
+
0,
|
|
12
|
+
Math.round(event.pageX - rect.left - (window.pageXOffset || window.scrollX))
|
|
13
|
+
);
|
|
14
|
+
const y = Math.max(
|
|
15
|
+
0,
|
|
16
|
+
Math.round(event.pageY - rect.top - (window.pageYOffset || window.scrollY))
|
|
17
|
+
);
|
|
18
|
+
setPosition({ x, y });
|
|
19
|
+
} else {
|
|
20
|
+
setPosition({ x: event.clientX, y: event.clientY });
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const resetMousePosition = () => setPosition({ x: 0, y: 0 });
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
const element = ref?.current ? ref.current : document;
|
|
26
|
+
element.addEventListener("mousemove", setMousePosition);
|
|
27
|
+
if (options.resetOnExit) {
|
|
28
|
+
element.addEventListener("mouseleave", resetMousePosition);
|
|
29
|
+
}
|
|
30
|
+
return () => {
|
|
31
|
+
element.removeEventListener("mousemove", setMousePosition);
|
|
32
|
+
if (options.resetOnExit) {
|
|
33
|
+
element.removeEventListener("mouseleave", resetMousePosition);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}, [ref.current]);
|
|
37
|
+
return { ref, ...position };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { useMouse };
|
|
41
|
+
//# sourceMappingURL=use-mouse.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mouse.mjs","sources":["../../src/use-mouse/use-mouse.ts"],"sourcesContent":["import { MouseEvent, useEffect, useRef, useState } from 'react';\n\nexport function useMouse<T extends HTMLElement = any>(\n options: { resetOnExit?: boolean } = { resetOnExit: false }\n) {\n const [position, setPosition] = useState({ x: 0, y: 0 });\n\n const ref = useRef<T>();\n\n const setMousePosition = (event: MouseEvent<HTMLElement>) => {\n if (ref.current) {\n const rect = event.currentTarget.getBoundingClientRect();\n\n const x = Math.max(\n 0,\n Math.round(event.pageX - rect.left - (window.pageXOffset || window.scrollX))\n );\n\n const y = Math.max(\n 0,\n Math.round(event.pageY - rect.top - (window.pageYOffset || window.scrollY))\n );\n\n setPosition({ x, y });\n } else {\n setPosition({ x: event.clientX, y: event.clientY });\n }\n };\n\n const resetMousePosition = () => setPosition({ x: 0, y: 0 });\n\n useEffect(() => {\n const element = ref?.current ? ref.current : document;\n element.addEventListener('mousemove', setMousePosition as any);\n if (options.resetOnExit) {\n element.addEventListener('mouseleave', resetMousePosition as any);\n }\n\n return () => {\n element.removeEventListener('mousemove', setMousePosition as any);\n if (options.resetOnExit) {\n element.removeEventListener('mouseleave', resetMousePosition as any);\n }\n };\n }, [ref.current]);\n\n return { ref, ...position };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useRef, useState, useEffect } from 'react';
|
|
3
|
+
import { clamp } from '../utils/clamp/clamp.mjs';
|
|
4
|
+
|
|
5
|
+
function clampUseMovePosition(position) {
|
|
6
|
+
return {
|
|
7
|
+
x: clamp(position.x, 0, 1),
|
|
8
|
+
y: clamp(position.y, 0, 1)
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function useMove(onChange, handlers, dir = "ltr") {
|
|
12
|
+
const ref = useRef(null);
|
|
13
|
+
const mounted = useRef(false);
|
|
14
|
+
const isSliding = useRef(false);
|
|
15
|
+
const frame = useRef(0);
|
|
16
|
+
const [active, setActive] = useState(false);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
mounted.current = true;
|
|
19
|
+
}, []);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
const onScrub = ({ x, y }) => {
|
|
22
|
+
cancelAnimationFrame(frame.current);
|
|
23
|
+
frame.current = requestAnimationFrame(() => {
|
|
24
|
+
if (mounted.current && ref.current) {
|
|
25
|
+
ref.current.style.userSelect = "none";
|
|
26
|
+
const rect = ref.current.getBoundingClientRect();
|
|
27
|
+
if (rect.width && rect.height) {
|
|
28
|
+
const _x = clamp((x - rect.left) / rect.width, 0, 1);
|
|
29
|
+
onChange({
|
|
30
|
+
x: dir === "ltr" ? _x : 1 - _x,
|
|
31
|
+
y: clamp((y - rect.top) / rect.height, 0, 1)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const bindEvents = () => {
|
|
38
|
+
document.addEventListener("mousemove", onMouseMove);
|
|
39
|
+
document.addEventListener("mouseup", stopScrubbing);
|
|
40
|
+
document.addEventListener("touchmove", onTouchMove);
|
|
41
|
+
document.addEventListener("touchend", stopScrubbing);
|
|
42
|
+
};
|
|
43
|
+
const unbindEvents = () => {
|
|
44
|
+
document.removeEventListener("mousemove", onMouseMove);
|
|
45
|
+
document.removeEventListener("mouseup", stopScrubbing);
|
|
46
|
+
document.removeEventListener("touchmove", onTouchMove);
|
|
47
|
+
document.removeEventListener("touchend", stopScrubbing);
|
|
48
|
+
};
|
|
49
|
+
const startScrubbing = () => {
|
|
50
|
+
if (!isSliding.current && mounted.current) {
|
|
51
|
+
isSliding.current = true;
|
|
52
|
+
typeof handlers?.onScrubStart === "function" && handlers.onScrubStart();
|
|
53
|
+
setActive(true);
|
|
54
|
+
bindEvents();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const stopScrubbing = () => {
|
|
58
|
+
if (isSliding.current && mounted.current) {
|
|
59
|
+
isSliding.current = false;
|
|
60
|
+
setActive(false);
|
|
61
|
+
unbindEvents();
|
|
62
|
+
setTimeout(() => {
|
|
63
|
+
typeof handlers?.onScrubEnd === "function" && handlers.onScrubEnd();
|
|
64
|
+
}, 0);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const onMouseDown = (event) => {
|
|
68
|
+
startScrubbing();
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
onMouseMove(event);
|
|
71
|
+
};
|
|
72
|
+
const onMouseMove = (event) => onScrub({ x: event.clientX, y: event.clientY });
|
|
73
|
+
const onTouchStart = (event) => {
|
|
74
|
+
if (event.cancelable) {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
}
|
|
77
|
+
startScrubbing();
|
|
78
|
+
onTouchMove(event);
|
|
79
|
+
};
|
|
80
|
+
const onTouchMove = (event) => {
|
|
81
|
+
if (event.cancelable) {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
}
|
|
84
|
+
onScrub({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY });
|
|
85
|
+
};
|
|
86
|
+
ref.current?.addEventListener("mousedown", onMouseDown);
|
|
87
|
+
ref.current?.addEventListener("touchstart", onTouchStart, { passive: false });
|
|
88
|
+
return () => {
|
|
89
|
+
if (ref.current) {
|
|
90
|
+
ref.current.removeEventListener("mousedown", onMouseDown);
|
|
91
|
+
ref.current.removeEventListener("touchstart", onTouchStart);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}, [dir, onChange]);
|
|
95
|
+
return { ref, active };
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export { clampUseMovePosition, useMove };
|
|
99
|
+
//# sourceMappingURL=use-move.mjs.map
|