Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

21
node_modules/@mantine/hooks/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Vitaly Rtishchev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

21
node_modules/@mantine/hooks/README.md generated vendored Normal file
View File

@@ -0,0 +1,21 @@
# Mantine Hooks
[![npm](https://img.shields.io/npm/dm/@mantine/hooks)](https://www.npmjs.com/package/@mantine/hooks)
A set of react hooks for state and UI management
[View documentation](https://mantine.dev/)
## Installation
```bash
# With yarn
yarn add @mantine/hooks
# With npm
npm install @mantine/hooks
```
## License
MIT

175
node_modules/@mantine/hooks/cjs/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,175 @@
'use strict';
var clamp = require('./utils/clamp/clamp.cjs');
var lowerFirst = require('./utils/lower-first/lower-first.cjs');
var randomId = require('./utils/random-id/random-id.cjs');
var range = require('./utils/range/range.cjs');
var shallowEqual = require('./utils/shallow-equal/shallow-equal.cjs');
var upperFirst = require('./utils/upper-first/upper-first.cjs');
var useCallbackRef = require('./utils/use-callback-ref/use-callback-ref.cjs');
var useDebouncedCallback = require('./use-debounced-callback/use-debounced-callback.cjs');
var useClickOutside = require('./use-click-outside/use-click-outside.cjs');
var useClipboard = require('./use-clipboard/use-clipboard.cjs');
var useColorScheme = require('./use-color-scheme/use-color-scheme.cjs');
var useCounter = require('./use-counter/use-counter.cjs');
var useDebouncedState = require('./use-debounced-state/use-debounced-state.cjs');
var useDebouncedValue = require('./use-debounced-value/use-debounced-value.cjs');
var useDocumentTitle = require('./use-document-title/use-document-title.cjs');
var useDocumentVisibility = require('./use-document-visibility/use-document-visibility.cjs');
var useFocusReturn = require('./use-focus-return/use-focus-return.cjs');
var useDidUpdate = require('./use-did-update/use-did-update.cjs');
var useFocusTrap = require('./use-focus-trap/use-focus-trap.cjs');
var useForceUpdate = require('./use-force-update/use-force-update.cjs');
var useId = require('./use-id/use-id.cjs');
var useIdle = require('./use-idle/use-idle.cjs');
var useInterval = require('./use-interval/use-interval.cjs');
var useIsomorphicEffect = require('./use-isomorphic-effect/use-isomorphic-effect.cjs');
var useListState = require('./use-list-state/use-list-state.cjs');
var useLocalStorage = require('./use-local-storage/use-local-storage.cjs');
var useSessionStorage = require('./use-session-storage/use-session-storage.cjs');
var useMediaQuery = require('./use-media-query/use-media-query.cjs');
var useMergedRef = require('./use-merged-ref/use-merged-ref.cjs');
var useMouse = require('./use-mouse/use-mouse.cjs');
var useMove = require('./use-move/use-move.cjs');
var usePagination = require('./use-pagination/use-pagination.cjs');
var useQueue = require('./use-queue/use-queue.cjs');
var usePageLeave = require('./use-page-leave/use-page-leave.cjs');
var useReducedMotion = require('./use-reduced-motion/use-reduced-motion.cjs');
var useScrollIntoView = require('./use-scroll-into-view/use-scroll-into-view.cjs');
var useResizeObserver = require('./use-resize-observer/use-resize-observer.cjs');
var useShallowEffect = require('./use-shallow-effect/use-shallow-effect.cjs');
var useToggle = require('./use-toggle/use-toggle.cjs');
var useUncontrolled = require('./use-uncontrolled/use-uncontrolled.cjs');
var useViewportSize = require('./use-viewport-size/use-viewport-size.cjs');
var useWindowEvent = require('./use-window-event/use-window-event.cjs');
var useWindowScroll = require('./use-window-scroll/use-window-scroll.cjs');
var useIntersection = require('./use-intersection/use-intersection.cjs');
var useHash = require('./use-hash/use-hash.cjs');
var useHotkeys = require('./use-hotkeys/use-hotkeys.cjs');
var useFullscreen = require('./use-fullscreen/use-fullscreen.cjs');
var useLogger = require('./use-logger/use-logger.cjs');
var useHover = require('./use-hover/use-hover.cjs');
var useValidatedState = require('./use-validated-state/use-validated-state.cjs');
var useOs = require('./use-os/use-os.cjs');
var useSetState = require('./use-set-state/use-set-state.cjs');
var useInputState = require('./use-input-state/use-input-state.cjs');
var useEventListener = require('./use-event-listener/use-event-listener.cjs');
var useDisclosure = require('./use-disclosure/use-disclosure.cjs');
var useFocusWithin = require('./use-focus-within/use-focus-within.cjs');
var useNetwork = require('./use-network/use-network.cjs');
var useTimeout = require('./use-timeout/use-timeout.cjs');
var useTextSelection = require('./use-text-selection/use-text-selection.cjs');
var usePrevious = require('./use-previous/use-previous.cjs');
var useFavicon = require('./use-favicon/use-favicon.cjs');
var useHeadroom = require('./use-headroom/use-headroom.cjs');
var useEyeDropper = require('./use-eye-dropper/use-eye-dropper.cjs');
var useInViewport = require('./use-in-viewport/use-in-viewport.cjs');
var useMutationObserver = require('./use-mutation-observer/use-mutation-observer.cjs');
var useMounted = require('./use-mounted/use-mounted.cjs');
var useStateHistory = require('./use-state-history/use-state-history.cjs');
var useMap = require('./use-map/use-map.cjs');
var useSet = require('./use-set/use-set.cjs');
var useThrottledCallback = require('./use-throttled-callback/use-throttled-callback.cjs');
var useThrottledState = require('./use-throttled-state/use-throttled-state.cjs');
var useThrottledValue = require('./use-throttled-value/use-throttled-value.cjs');
var useIsFirstRender = require('./use-is-first-render/use-is-first-render.cjs');
var useOrientation = require('./use-orientation/use-orientation.cjs');
var useFetch = require('./use-fetch/use-fetch.cjs');
var useRadialMove = require('./use-radial-move/use-radial-move.cjs');
var useScrollSpy = require('./use-scroll-spy/use-scroll-spy.cjs');
var useFileDialog = require('./use-file-dialog/use-file-dialog.cjs');
var useLongPress = require('./use-long-press/use-long-press.cjs');
var useSelection = require('./use-selection/use-selection.cjs');
var parseHotkey = require('./use-hotkeys/parse-hotkey.cjs');
exports.clamp = clamp.clamp;
exports.lowerFirst = lowerFirst.lowerFirst;
exports.randomId = randomId.randomId;
exports.range = range.range;
exports.shallowEqual = shallowEqual.shallowEqual;
exports.upperFirst = upperFirst.upperFirst;
exports.useCallbackRef = useCallbackRef.useCallbackRef;
exports.useDebouncedCallback = useDebouncedCallback.useDebouncedCallback;
exports.useClickOutside = useClickOutside.useClickOutside;
exports.useClipboard = useClipboard.useClipboard;
exports.useColorScheme = useColorScheme.useColorScheme;
exports.useCounter = useCounter.useCounter;
exports.useDebouncedState = useDebouncedState.useDebouncedState;
exports.useDebouncedValue = useDebouncedValue.useDebouncedValue;
exports.useDocumentTitle = useDocumentTitle.useDocumentTitle;
exports.useDocumentVisibility = useDocumentVisibility.useDocumentVisibility;
exports.useFocusReturn = useFocusReturn.useFocusReturn;
exports.useDidUpdate = useDidUpdate.useDidUpdate;
exports.useFocusTrap = useFocusTrap.useFocusTrap;
exports.useForceUpdate = useForceUpdate.useForceUpdate;
exports.useId = useId.useId;
exports.useIdle = useIdle.useIdle;
exports.useInterval = useInterval.useInterval;
exports.useIsomorphicEffect = useIsomorphicEffect.useIsomorphicEffect;
exports.useListState = useListState.useListState;
exports.readLocalStorageValue = useLocalStorage.readLocalStorageValue;
exports.useLocalStorage = useLocalStorage.useLocalStorage;
exports.readSessionStorageValue = useSessionStorage.readSessionStorageValue;
exports.useSessionStorage = useSessionStorage.useSessionStorage;
exports.useMediaQuery = useMediaQuery.useMediaQuery;
exports.assignRef = useMergedRef.assignRef;
exports.mergeRefs = useMergedRef.mergeRefs;
exports.useMergedRef = useMergedRef.useMergedRef;
exports.useMouse = useMouse.useMouse;
exports.clampUseMovePosition = useMove.clampUseMovePosition;
exports.useMove = useMove.useMove;
exports.usePagination = usePagination.usePagination;
exports.useQueue = useQueue.useQueue;
exports.usePageLeave = usePageLeave.usePageLeave;
exports.useReducedMotion = useReducedMotion.useReducedMotion;
exports.useScrollIntoView = useScrollIntoView.useScrollIntoView;
exports.useElementSize = useResizeObserver.useElementSize;
exports.useResizeObserver = useResizeObserver.useResizeObserver;
exports.useShallowEffect = useShallowEffect.useShallowEffect;
exports.useToggle = useToggle.useToggle;
exports.useUncontrolled = useUncontrolled.useUncontrolled;
exports.useViewportSize = useViewportSize.useViewportSize;
exports.useWindowEvent = useWindowEvent.useWindowEvent;
exports.useWindowScroll = useWindowScroll.useWindowScroll;
exports.useIntersection = useIntersection.useIntersection;
exports.useHash = useHash.useHash;
exports.useHotkeys = useHotkeys.useHotkeys;
exports.useFullscreen = useFullscreen.useFullscreen;
exports.useLogger = useLogger.useLogger;
exports.useHover = useHover.useHover;
exports.useValidatedState = useValidatedState.useValidatedState;
exports.useOs = useOs.useOs;
exports.useSetState = useSetState.useSetState;
exports.useInputState = useInputState.useInputState;
exports.useEventListener = useEventListener.useEventListener;
exports.useDisclosure = useDisclosure.useDisclosure;
exports.useFocusWithin = useFocusWithin.useFocusWithin;
exports.useNetwork = useNetwork.useNetwork;
exports.useTimeout = useTimeout.useTimeout;
exports.useTextSelection = useTextSelection.useTextSelection;
exports.usePrevious = usePrevious.usePrevious;
exports.useFavicon = useFavicon.useFavicon;
exports.useHeadroom = useHeadroom.useHeadroom;
exports.useEyeDropper = useEyeDropper.useEyeDropper;
exports.useInViewport = useInViewport.useInViewport;
exports.useMutationObserver = useMutationObserver.useMutationObserver;
exports.useMounted = useMounted.useMounted;
exports.useStateHistory = useStateHistory.useStateHistory;
exports.useMap = useMap.useMap;
exports.useSet = useSet.useSet;
exports.useThrottledCallback = useThrottledCallback.useThrottledCallback;
exports.useThrottledState = useThrottledState.useThrottledState;
exports.useThrottledValue = useThrottledValue.useThrottledValue;
exports.useIsFirstRender = useIsFirstRender.useIsFirstRender;
exports.useOrientation = useOrientation.useOrientation;
exports.useFetch = useFetch.useFetch;
exports.normalizeRadialValue = useRadialMove.normalizeRadialValue;
exports.useRadialMove = useRadialMove.useRadialMove;
exports.useScrollSpy = useScrollSpy.useScrollSpy;
exports.useFileDialog = useFileDialog.useFileDialog;
exports.useLongPress = useLongPress.useLongPress;
exports.useSelection = useSelection.useSelection;
exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
//# sourceMappingURL=index.cjs.map

1
node_modules/@mantine/hooks/cjs/index.cjs.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@@ -0,0 +1,30 @@
'use client';
'use strict';
var React = require('react');
const DEFAULT_EVENTS = ["mousedown", "touchstart"];
function useClickOutside(callback, events, nodes) {
const ref = React.useRef(null);
const eventsList = events || DEFAULT_EVENTS;
React.useEffect(() => {
const listener = (event) => {
const { target } = event ?? {};
if (Array.isArray(nodes)) {
const shouldIgnore = !document.body.contains(target) && target?.tagName !== "HTML";
const shouldTrigger = nodes.every((node) => !!node && !event.composedPath().includes(node));
shouldTrigger && !shouldIgnore && callback(event);
} else if (ref.current && !ref.current.contains(target)) {
callback(event);
}
};
eventsList.forEach((fn) => document.addEventListener(fn, listener));
return () => {
eventsList.forEach((fn) => document.removeEventListener(fn, listener));
};
}, [ref, callback, nodes]);
return ref;
}
exports.useClickOutside = useClickOutside;
//# sourceMappingURL=use-click-outside.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-click-outside.cjs","sources":["../../src/use-click-outside/use-click-outside.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ntype EventType = MouseEvent | TouchEvent;\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n callback: (event: EventType) => void,\n events?: string[] | null,\n nodes?: (HTMLElement | null)[]\n) {\n const ref = useRef<T>(null);\n const eventsList = events || DEFAULT_EVENTS;\n\n useEffect(() => {\n const listener = (event: Event) => {\n const { target } = event ?? {};\n if (Array.isArray(nodes)) {\n const shouldIgnore =\n !document.body.contains(target as Node) && (target as Element)?.tagName !== 'HTML';\n const shouldTrigger = nodes.every((node) => !!node && !event.composedPath().includes(node));\n shouldTrigger && !shouldIgnore && callback(event as EventType);\n } else if (ref.current && !ref.current.contains(target as Node)) {\n callback(event as EventType);\n }\n };\n\n eventsList.forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n eventsList.forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, callback, nodes]);\n\n return ref;\n}\n"],"names":["useRef","useEffect"],"mappings":"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"}

View File

@@ -0,0 +1,31 @@
'use client';
'use strict';
var React = require('react');
function useClipboard(options = { timeout: 2e3 }) {
const [error, setError] = React.useState(null);
const [copied, setCopied] = React.useState(false);
const [copyTimeout, setCopyTimeout] = React.useState(null);
const handleCopyResult = (value) => {
window.clearTimeout(copyTimeout);
setCopyTimeout(window.setTimeout(() => setCopied(false), options.timeout));
setCopied(value);
};
const copy = (value) => {
if ("clipboard" in navigator) {
navigator.clipboard.writeText(value).then(() => handleCopyResult(true)).catch((err) => setError(err));
} else {
setError(new Error("useClipboard: navigator.clipboard is not supported"));
}
};
const reset = () => {
setCopied(false);
setError(null);
window.clearTimeout(copyTimeout);
};
return { copy, reset, error, copied };
}
exports.useClipboard = useClipboard;
//# sourceMappingURL=use-clipboard.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
'use client';
'use strict';
var useMediaQuery = require('../use-media-query/use-media-query.cjs');
function useColorScheme(initialValue, options) {
return useMediaQuery.useMediaQuery("(prefers-color-scheme: dark)", initialValue === "dark", options) ? "dark" : "light";
}
exports.useColorScheme = useColorScheme;
//# sourceMappingURL=use-color-scheme.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-color-scheme.cjs","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"sourcesContent":["import { useMediaQuery, UseMediaQueryOptions } from '../use-media-query/use-media-query';\n\nexport type UseColorSchemeValue = 'dark' | 'light';\n\nexport function useColorScheme(\n initialValue?: UseColorSchemeValue,\n options?: UseMediaQueryOptions\n): UseColorSchemeValue {\n return useMediaQuery('(prefers-color-scheme: dark)', initialValue === 'dark', options)\n ? 'dark'\n : 'light';\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;AAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GACA,OAAA,CAAA,CACqB,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACN,CAAA;;"}

View File

@@ -0,0 +1,31 @@
'use client';
'use strict';
var React = require('react');
var clamp = require('../utils/clamp/clamp.cjs');
const DEFAULT_OPTIONS = {
min: -Infinity,
max: Infinity
};
function useCounter(initialValue = 0, options) {
const { min, max } = { ...DEFAULT_OPTIONS, ...options };
const [count, setCount] = React.useState(clamp.clamp(initialValue, min, max));
const increment = React.useCallback(
() => setCount((current) => clamp.clamp(current + 1, min, max)),
[min, max]
);
const decrement = React.useCallback(
() => setCount((current) => clamp.clamp(current - 1, min, max)),
[min, max]
);
const set = React.useCallback((value) => setCount(clamp.clamp(value, min, max)), [min, max]);
const reset = React.useCallback(
() => setCount(clamp.clamp(initialValue, min, max)),
[initialValue, min, max]
);
return [count, { increment, decrement, set, reset }];
}
exports.useCounter = useCounter;
//# sourceMappingURL=use-counter.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,96 @@
'use client';
'use strict';
var React = require('react');
var useCallbackRef = require('../utils/use-callback-ref/use-callback-ref.cjs');
function useDebouncedCallback(callback, options) {
const { delay, flushOnUnmount, leading } = typeof options === "number" ? { delay: options, flushOnUnmount: false, leading: false } : options;
const handleCallback = useCallbackRef.useCallbackRef(callback);
const debounceTimerRef = React.useRef(0);
const lastCallback = React.useMemo(() => {
const currentCallback = Object.assign(
(...args) => {
window.clearTimeout(debounceTimerRef.current);
const isFirstCall = currentCallback._isFirstCall;
currentCallback._isFirstCall = false;
function clearTimeoutAndLeadingRef() {
window.clearTimeout(debounceTimerRef.current);
debounceTimerRef.current = 0;
currentCallback._isFirstCall = true;
}
if (leading && isFirstCall) {
handleCallback(...args);
const resetLeadingState = () => {
clearTimeoutAndLeadingRef();
};
const flush2 = () => {
if (debounceTimerRef.current !== 0) {
clearTimeoutAndLeadingRef();
handleCallback(...args);
}
};
const cancel2 = () => {
clearTimeoutAndLeadingRef();
};
currentCallback.flush = flush2;
currentCallback.cancel = cancel2;
debounceTimerRef.current = window.setTimeout(resetLeadingState, delay);
return;
}
if (leading && !isFirstCall) {
const flush2 = () => {
if (debounceTimerRef.current !== 0) {
clearTimeoutAndLeadingRef();
handleCallback(...args);
}
};
const cancel2 = () => {
clearTimeoutAndLeadingRef();
};
currentCallback.flush = flush2;
currentCallback.cancel = cancel2;
const resetLeadingState = () => {
clearTimeoutAndLeadingRef();
};
debounceTimerRef.current = window.setTimeout(resetLeadingState, delay);
return;
}
const flush = () => {
if (debounceTimerRef.current !== 0) {
clearTimeoutAndLeadingRef();
handleCallback(...args);
}
};
const cancel = () => {
clearTimeoutAndLeadingRef();
};
currentCallback.flush = flush;
currentCallback.cancel = cancel;
debounceTimerRef.current = window.setTimeout(flush, delay);
},
{
flush: () => {
},
cancel: () => {
},
_isFirstCall: true
}
);
return currentCallback;
}, [handleCallback, delay, leading]);
React.useEffect(
() => () => {
if (flushOnUnmount) {
lastCallback.flush();
} else {
lastCallback.cancel();
}
},
[lastCallback, flushOnUnmount]
);
return lastCallback;
}
exports.useDebouncedCallback = useDebouncedCallback;
//# sourceMappingURL=use-debounced-callback.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
'use client';
'use strict';
var React = require('react');
function useDebouncedState(defaultValue, wait, options = { leading: false }) {
const [value, setValue] = React.useState(defaultValue);
const timeoutRef = React.useRef(null);
const leadingRef = React.useRef(true);
const clearTimeout = () => window.clearTimeout(timeoutRef.current);
React.useEffect(() => clearTimeout, []);
const debouncedSetValue = React.useCallback(
(newValue) => {
clearTimeout();
if (leadingRef.current && options.leading) {
setValue(newValue);
} else {
timeoutRef.current = window.setTimeout(() => {
leadingRef.current = true;
setValue(newValue);
}, wait);
}
leadingRef.current = false;
},
[options.leading]
);
return [value, debouncedSetValue];
}
exports.useDebouncedState = useDebouncedState;
//# sourceMappingURL=use-debounced-state.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-debounced-state.cjs","sources":["../../src/use-debounced-state/use-debounced-state.ts"],"sourcesContent":["import { SetStateAction, useCallback, useEffect, useRef, useState } from 'react';\n\nexport interface UseDebouncedStateOptions {\n leading?: boolean;\n}\n\nexport type UseDebouncedStateReturnValue<T> = [T, (newValue: SetStateAction<T>) => void];\n\nexport function useDebouncedState<T = any>(\n defaultValue: T,\n wait: number,\n options: UseDebouncedStateOptions = { leading: false }\n): UseDebouncedStateReturnValue<T> {\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<number | null>(null);\n const leadingRef = useRef(true);\n\n const clearTimeout = () => window.clearTimeout(timeoutRef.current!);\n useEffect(() => clearTimeout, []);\n\n const debouncedSetValue = useCallback(\n (newValue: SetStateAction<T>) => {\n clearTimeout();\n if (leadingRef.current && options.leading) {\n setValue(newValue);\n } else {\n timeoutRef.current = window.setTimeout(() => {\n leadingRef.current = true;\n setValue(newValue);\n }, wait);\n }\n leadingRef.current = false;\n },\n [options.leading]\n );\n\n return [value, debouncedSetValue] as const;\n}\n"],"names":["useState","useRef","useEffect","useCallback"],"mappings":";;;;;AAQO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAoC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,GAAM,CAAA,CACpB,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA;AAC/C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAsB,IAAI,CAAA,CAAA;AAC7C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAO,IAAI,CAAA,CAAA;AAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAClE,CAAA,CAAAC,eAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA;AAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACxB,CAAC,QAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAa,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAA,CAAA,CAAS,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnB,GAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACvB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAClB,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,GAAO,iBAAiB,CAAA,CAAA;AAClC,CAAA;;"}

View File

@@ -0,0 +1,34 @@
'use client';
'use strict';
var React = require('react');
function useDebouncedValue(value, wait, options = { leading: false }) {
const [_value, setValue] = React.useState(value);
const mountedRef = React.useRef(false);
const timeoutRef = React.useRef(null);
const cooldownRef = React.useRef(false);
const cancel = React.useCallback(() => window.clearTimeout(timeoutRef.current), []);
React.useEffect(() => {
if (mountedRef.current) {
if (!cooldownRef.current && options.leading) {
cooldownRef.current = true;
setValue(value);
} else {
cancel();
timeoutRef.current = window.setTimeout(() => {
cooldownRef.current = false;
setValue(value);
}, wait);
}
}
}, [value, options.leading, wait]);
React.useEffect(() => {
mountedRef.current = true;
return cancel;
}, []);
return [_value, cancel];
}
exports.useDebouncedValue = useDebouncedValue;
//# sourceMappingURL=use-debounced-value.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,24 @@
'use client';
'use strict';
var React = require('react');
function useDidUpdate(fn, dependencies) {
const mounted = React.useRef(false);
React.useEffect(
() => () => {
mounted.current = false;
},
[]
);
React.useEffect(() => {
if (mounted.current) {
return fn();
}
mounted.current = true;
return void 0;
}, dependencies);
}
exports.useDidUpdate = useDidUpdate;
//# sourceMappingURL=use-did-update.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-did-update.cjs","sources":["../../src/use-did-update/use-did-update.ts"],"sourcesContent":["import { DependencyList, EffectCallback, useEffect, useRef } from 'react';\n\nexport function useDidUpdate(fn: EffectCallback, dependencies?: DependencyList) {\n const mounted = useRef(false);\n\n useEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useEffect(() => {\n if (mounted.current) {\n return fn();\n }\n\n mounted.current = true;\n return undefined;\n }, dependencies);\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,GAAoB,YAAA,CAAA,CAA+B,CAAA;AAC9E,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAO,KAAK,CAAA,CAAA;AAE5B,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACpB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA;AAAC,CAAA,CAAA,CACH,CAAA;AAEA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAA,CAAA,CAAG,CAAA;AAAA,CAAA,CAAA,CAAA,CACZ,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA;AACjB,CAAA;;"}

View File

@@ -0,0 +1,33 @@
'use client';
'use strict';
var React = require('react');
function useDisclosure(initialState = false, options = {}) {
const [opened, setOpened] = React.useState(initialState);
const open = React.useCallback(() => {
setOpened((isOpened) => {
if (!isOpened) {
options.onOpen?.();
return true;
}
return isOpened;
});
}, [options.onOpen]);
const close = React.useCallback(() => {
setOpened((isOpened) => {
if (isOpened) {
options.onClose?.();
return false;
}
return isOpened;
});
}, [options.onClose]);
const toggle = React.useCallback(() => {
opened ? close() : open();
}, [close, open, opened]);
return [opened, { open, close, toggle }];
}
exports.useDisclosure = useDisclosure;
//# sourceMappingURL=use-disclosure.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-disclosure.cjs","sources":["../../src/use-disclosure/use-disclosure.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport interface UseDisclosureOptions {\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface UseDisclosureHandlers {\n open: () => void;\n close: () => void;\n toggle: () => void;\n}\n\nexport type UseDisclosureReturnValue = [boolean, UseDisclosureHandlers];\n\nexport function useDisclosure(\n initialState = false,\n options: UseDisclosureOptions = {}\n): UseDisclosureReturnValue {\n const [opened, setOpened] = useState(initialState);\n\n const open = useCallback(() => {\n setOpened((isOpened) => {\n if (!isOpened) {\n options.onOpen?.();\n return true;\n }\n return isOpened;\n });\n }, [options.onOpen]);\n\n const close = useCallback(() => {\n setOpened((isOpened) => {\n if (isOpened) {\n options.onClose?.();\n return false;\n }\n return isOpened;\n });\n }, [options.onClose]);\n\n const toggle = useCallback(() => {\n opened ? close() : open();\n }, [close, open, opened]);\n\n return [opened, { open, close, toggle }];\n}\n"],"names":["useState","useCallback"],"mappings":"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"}

View File

@@ -0,0 +1,15 @@
'use client';
'use strict';
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
function useDocumentTitle(title) {
useIsomorphicEffect.useIsomorphicEffect(() => {
if (typeof title === "string" && title.trim().length > 0) {
document.title = title.trim();
}
}, [title]);
}
exports.useDocumentTitle = useDocumentTitle;
//# sourceMappingURL=use-document-title.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-document-title.cjs","sources":["../../src/use-document-title/use-document-title.ts"],"sourcesContent":["import { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nexport function useDocumentTitle(title: string) {\n useIsomorphicEffect(() => {\n if (typeof title === 'string' && title.trim().length > 0) {\n document.title = title.trim();\n }\n }, [title]);\n}\n"],"names":["useIsomorphicEffect"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AAC9C,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,QAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAG,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAA,EAAM,IAAA,CAAA,CAAK,CAAA;AAAA,CAAA,CAAA,CAAA,CAC9B,CAAA;AAAA,CAAA,CACF,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA;AACZ,CAAA;;"}

View File

@@ -0,0 +1,18 @@
'use client';
'use strict';
var React = require('react');
function useDocumentVisibility() {
const [documentVisibility, setDocumentVisibility] = React.useState("visible");
React.useEffect(() => {
setDocumentVisibility(document.visibilityState);
const listener = () => setDocumentVisibility(document.visibilityState);
document.addEventListener("visibilitychange", listener);
return () => document.removeEventListener("visibilitychange", listener);
}, []);
return documentVisibility;
}
exports.useDocumentVisibility = useDocumentVisibility;
//# sourceMappingURL=use-document-visibility.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-document-visibility.cjs","sources":["../../src/use-document-visibility/use-document-visibility.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport function useDocumentVisibility(): DocumentVisibilityState {\n const [documentVisibility, setDocumentVisibility] = useState<DocumentVisibilityState>('visible');\n\n useEffect(() => {\n setDocumentVisibility(document.visibilityState);\n const listener = () => setDocumentVisibility(document.visibilityState);\n document.addEventListener('visibilitychange', listener);\n return () => document.removeEventListener('visibilitychange', listener);\n }, []);\n\n return documentVisibility;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,qBAAA,CAAA,CAAA,CAAiD,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AAE/F,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,eAAe,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,qBAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA;AACrE,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAoB,QAAQ,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAAA,CAAA,CACxE,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AAEL,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}

View File

@@ -0,0 +1,35 @@
'use client';
'use strict';
var React = require('react');
function useEventListener(type, listener, options) {
const previousListener = React.useRef(null);
const previousNode = React.useRef(null);
const callbackRef = React.useCallback(
(node) => {
if (!node) {
return;
}
if (previousNode.current && previousListener.current) {
previousNode.current.removeEventListener(type, previousListener.current, options);
}
node.addEventListener(type, listener, options);
previousNode.current = node;
previousListener.current = listener;
},
[type, listener, options]
);
React.useEffect(
() => () => {
if (previousNode.current && previousListener.current) {
previousNode.current.removeEventListener(type, previousListener.current, options);
}
},
[type, options]
);
return callbackRef;
}
exports.useEventListener = useEventListener;
//# sourceMappingURL=use-event-listener.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,29 @@
'use client';
'use strict';
var React = require('react');
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
function useEyeDropper() {
const [supported, setSupported] = React.useState(false);
useIsomorphicEffect.useIsomorphicEffect(() => {
setSupported(typeof window !== "undefined" && !isOpera() && "EyeDropper" in window);
}, []);
const open = React.useCallback(
(options = {}) => {
if (supported) {
const eyeDropper = new window.EyeDropper();
return eyeDropper.open(options);
}
return Promise.resolve(void 0);
},
[supported]
);
return { supported, open };
}
function isOpera() {
return navigator.userAgent.includes("OPR");
}
exports.useEyeDropper = useEyeDropper;
//# sourceMappingURL=use-eye-dropper.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-eye-dropper.cjs","sources":["../../src/use-eye-dropper/use-eye-dropper.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\n\nexport interface EyeDropperOpenOptions {\n signal?: AbortSignal;\n}\n\nexport interface EyeDropperOpenReturnType {\n sRGBHex: string;\n}\n\nexport interface UseEyeDropperReturnValue {\n supported: boolean;\n open: (options?: EyeDropperOpenOptions) => Promise<EyeDropperOpenReturnType | undefined>;\n}\n\nexport function useEyeDropper(): UseEyeDropperReturnValue {\n const [supported, setSupported] = useState(false);\n\n useIsomorphicEffect(() => {\n setSupported(typeof window !== 'undefined' && !isOpera() && 'EyeDropper' in window);\n }, []);\n\n const open = useCallback(\n (options: EyeDropperOpenOptions = {}): Promise<EyeDropperOpenReturnType | undefined> => {\n if (supported) {\n const eyeDropper = new (window as any).EyeDropper();\n return eyeDropper.open(options);\n }\n\n return Promise.resolve(undefined);\n },\n [supported]\n );\n\n return { supported, open };\n}\n\nfunction isOpera() {\n return navigator.userAgent.includes('OPR');\n}\n"],"names":["useState","useIsomorphicEffect","useCallback"],"mappings":"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"}

View File

@@ -0,0 +1,37 @@
'use client';
'use strict';
var React = require('react');
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
const MIME_TYPES = {
ico: "image/x-icon",
png: "image/png",
svg: "image/svg+xml",
gif: "image/gif"
};
function useFavicon(url) {
const link = React.useRef(null);
useIsomorphicEffect.useIsomorphicEffect(() => {
if (!url) {
return;
}
if (!link.current) {
const existingElements = document.querySelectorAll('link[rel*="icon"]');
existingElements.forEach((element2) => document.head.removeChild(element2));
const element = document.createElement("link");
element.rel = "shortcut icon";
link.current = element;
document.querySelector("head").appendChild(element);
}
const splittedUrl = url.split(".");
link.current.setAttribute(
"type",
MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]
);
link.current.setAttribute("href", url);
}, [url]);
}
exports.useFavicon = useFavicon;
//# sourceMappingURL=use-favicon.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,48 @@
'use client';
'use strict';
var React = require('react');
function useFetch(url, { autoInvoke = true, ...options } = {}) {
const [data, setData] = React.useState(null);
const [loading, setLoading] = React.useState(false);
const [error, setError] = React.useState(null);
const controller = React.useRef(null);
const refetch = React.useCallback(() => {
if (controller.current) {
controller.current.abort();
}
controller.current = new AbortController();
setLoading(true);
return fetch(url, { signal: controller.current.signal, ...options }).then((res) => res.json()).then((res) => {
setData(res);
setLoading(false);
return res;
}).catch((err) => {
setLoading(false);
if (err.name !== "AbortError") {
setError(err);
}
return err;
});
}, [url]);
const abort = React.useCallback(() => {
if (controller.current) {
controller.current?.abort("");
}
}, []);
React.useEffect(() => {
if (autoInvoke) {
refetch();
}
return () => {
if (controller.current) {
controller.current.abort("");
}
};
}, [refetch, autoInvoke]);
return { data, loading, error, refetch, abort };
}
exports.useFetch = useFetch;
//# sourceMappingURL=use-fetch.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,86 @@
'use client';
'use strict';
var React = require('react');
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
const defaultOptions = {
multiple: true,
accept: "*"
};
function getInitialFilesList(files) {
if (!files) {
return null;
}
if (files instanceof FileList) {
return files;
}
const result = new DataTransfer();
for (const file of files) {
result.items.add(file);
}
return result.files;
}
function createInput(options) {
if (typeof document === "undefined") {
return null;
}
const input = document.createElement("input");
input.type = "file";
if (options.accept) {
input.accept = options.accept;
}
if (options.multiple) {
input.multiple = options.multiple;
}
if (options.capture) {
input.capture = options.capture;
}
if (options.directory) {
input.webkitdirectory = options.directory;
}
input.style.display = "none";
return input;
}
function useFileDialog(input = {}) {
const options = { ...defaultOptions, ...input };
const [files, setFiles] = React.useState(getInitialFilesList(options.initialFiles));
const inputRef = React.useRef(null);
const handleChange = React.useCallback(
(event) => {
const target = event.target;
if (target?.files) {
setFiles(target.files);
options.onChange?.(target.files);
}
},
[options.onChange]
);
const createAndSetupInput = React.useCallback(() => {
inputRef.current?.remove();
inputRef.current = createInput(options);
if (inputRef.current) {
inputRef.current.addEventListener("change", handleChange, { once: true });
document.body.appendChild(inputRef.current);
}
}, [options, handleChange]);
useIsomorphicEffect.useIsomorphicEffect(() => {
createAndSetupInput();
return () => inputRef.current?.remove();
}, []);
const reset = React.useCallback(() => {
setFiles(null);
options.onChange?.(null);
}, [options.onChange]);
const open = React.useCallback(() => {
if (options.resetOnOpen) {
reset();
}
createAndSetupInput();
inputRef.current?.click();
}, [options.resetOnOpen, reset, createAndSetupInput]);
return { files, open, reset };
}
exports.useFileDialog = useFileDialog;
//# sourceMappingURL=use-file-dialog.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
'use client';
'use strict';
var React = require('react');
var useDidUpdate = require('../use-did-update/use-did-update.cjs');
function useFocusReturn({
opened,
shouldReturnFocus = true
}) {
const lastActiveElement = React.useRef(null);
const returnFocus = () => {
if (lastActiveElement.current && "focus" in lastActiveElement.current && typeof lastActiveElement.current.focus === "function") {
lastActiveElement.current?.focus({ preventScroll: true });
}
};
useDidUpdate.useDidUpdate(() => {
let timeout = -1;
const clearFocusTimeout = (event) => {
if (event.key === "Tab") {
window.clearTimeout(timeout);
}
};
document.addEventListener("keydown", clearFocusTimeout);
if (opened) {
lastActiveElement.current = document.activeElement;
} else if (shouldReturnFocus) {
timeout = window.setTimeout(returnFocus, 10);
}
return () => {
window.clearTimeout(timeout);
document.removeEventListener("keydown", clearFocusTimeout);
};
}, [opened, shouldReturnFocus]);
return returnFocus;
}
exports.useFocusReturn = useFocusReturn;
//# sourceMappingURL=use-focus-return.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,34 @@
'use client';
'use strict';
var tabbable = require('./tabbable.cjs');
function scopeTab(node, event) {
const tabbable$1 = tabbable.findTabbableDescendants(node);
if (!tabbable$1.length) {
event.preventDefault();
return;
}
const finalTabbable = tabbable$1[event.shiftKey ? 0 : tabbable$1.length - 1];
const root = node.getRootNode();
let leavingFinalTabbable = finalTabbable === root.activeElement || node === root.activeElement;
const activeElement = root.activeElement;
const activeElementIsRadio = activeElement.tagName === "INPUT" && activeElement.getAttribute("type") === "radio";
if (activeElementIsRadio) {
const activeRadioGroup = tabbable$1.filter(
(element) => element.getAttribute("type") === "radio" && element.getAttribute("name") === activeElement.getAttribute("name")
);
leavingFinalTabbable = activeRadioGroup.includes(finalTabbable);
}
if (!leavingFinalTabbable) {
return;
}
event.preventDefault();
const target = tabbable$1[event.shiftKey ? tabbable$1.length - 1 : 0];
if (target) {
target.focus();
}
}
exports.scopeTab = scopeTab;
//# sourceMappingURL=scope-tab.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,58 @@
'use client';
'use strict';
const TABBABLE_NODES = /input|select|textarea|button|object/;
const FOCUS_SELECTOR = "a, input, select, textarea, button, object, [tabindex]";
function hidden(element) {
if (process.env.NODE_ENV === "test") {
return false;
}
return element.style.display === "none";
}
function visible(element) {
const isHidden = element.getAttribute("aria-hidden") || element.getAttribute("hidden") || element.getAttribute("type") === "hidden";
if (isHidden) {
return false;
}
let parentElement = element;
while (parentElement) {
if (parentElement === document.body || parentElement.nodeType === 11) {
break;
}
if (hidden(parentElement)) {
return false;
}
parentElement = parentElement.parentNode;
}
return true;
}
function getElementTabIndex(element) {
let tabIndex = element.getAttribute("tabindex");
if (tabIndex === null) {
tabIndex = void 0;
}
return parseInt(tabIndex, 10);
}
function focusable(element) {
const nodeName = element.nodeName.toLowerCase();
const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));
const res = (
// @ts-expect-error function accepts any html element but if it is a button, it should not be disabled to trigger the condition
TABBABLE_NODES.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN)
);
return res && visible(element);
}
function tabbable(element) {
const tabIndex = getElementTabIndex(element);
const isTabIndexNaN = Number.isNaN(tabIndex);
return (isTabIndexNaN || tabIndex >= 0) && focusable(element);
}
function findTabbableDescendants(element) {
return Array.from(element.querySelectorAll(FOCUS_SELECTOR)).filter(tabbable);
}
exports.FOCUS_SELECTOR = FOCUS_SELECTOR;
exports.findTabbableDescendants = findTabbableDescendants;
exports.focusable = focusable;
exports.tabbable = tabbable;
//# sourceMappingURL=tabbable.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,71 @@
'use client';
'use strict';
var React = require('react');
var scopeTab = require('./scope-tab.cjs');
var tabbable = require('./tabbable.cjs');
function useFocusTrap(active = true) {
const ref = React.useRef(null);
const focusNode = (node) => {
let focusElement = node.querySelector("[data-autofocus]");
if (!focusElement) {
const children = Array.from(node.querySelectorAll(tabbable.FOCUS_SELECTOR));
focusElement = children.find(tabbable.tabbable) || children.find(tabbable.focusable) || null;
if (!focusElement && tabbable.focusable(node)) {
focusElement = node;
}
}
if (focusElement) {
focusElement.focus({ preventScroll: true });
} else if (process.env.NODE_ENV === "development") {
console.warn(
"[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node",
node
);
}
};
const setRef = React.useCallback(
(node) => {
if (!active) {
return;
}
if (node === null) {
return;
}
if (ref.current === node) {
return;
}
if (node) {
setTimeout(() => {
if (node.getRootNode()) {
focusNode(node);
} else if (process.env.NODE_ENV === "development") {
console.warn("[@mantine/hooks/use-focus-trap] Ref node is not part of the dom", node);
}
});
ref.current = node;
} else {
ref.current = null;
}
},
[active]
);
React.useEffect(() => {
if (!active) {
return void 0;
}
ref.current && setTimeout(() => focusNode(ref.current));
const handleKeyDown = (event) => {
if (event.key === "Tab" && ref.current) {
scopeTab.scopeTab(ref.current, event);
}
};
document.addEventListener("keydown", handleKeyDown);
return () => document.removeEventListener("keydown", handleKeyDown);
}, [active]);
return setRef;
}
exports.useFocusTrap = useFocusTrap;
//# sourceMappingURL=use-focus-trap.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,66 @@
'use client';
'use strict';
var React = require('react');
var useCallbackRef = require('../utils/use-callback-ref/use-callback-ref.cjs');
function containsRelatedTarget(event) {
if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {
return event.currentTarget.contains(event.relatedTarget);
}
return false;
}
function useFocusWithin({
onBlur,
onFocus
} = {}) {
const [focused, setFocused] = React.useState(false);
const focusedRef = React.useRef(false);
const previousNode = React.useRef(null);
const onFocusRef = useCallbackRef.useCallbackRef(onFocus);
const onBlurRef = useCallbackRef.useCallbackRef(onBlur);
const _setFocused = React.useCallback((value) => {
setFocused(value);
focusedRef.current = value;
}, []);
const handleFocusIn = React.useCallback((event) => {
if (!focusedRef.current) {
_setFocused(true);
onFocusRef(event);
}
}, []);
const handleFocusOut = React.useCallback((event) => {
if (focusedRef.current && !containsRelatedTarget(event)) {
_setFocused(false);
onBlurRef(event);
}
}, []);
const callbackRef = React.useCallback(
(node) => {
if (!node) {
return;
}
if (previousNode.current) {
previousNode.current.removeEventListener("focusin", handleFocusIn);
previousNode.current.removeEventListener("focusout", handleFocusOut);
}
node.addEventListener("focusin", handleFocusIn);
node.addEventListener("focusout", handleFocusOut);
previousNode.current = node;
},
[handleFocusIn, handleFocusOut]
);
React.useEffect(
() => () => {
if (previousNode.current) {
previousNode.current.removeEventListener("focusin", handleFocusIn);
previousNode.current.removeEventListener("focusout", handleFocusOut);
}
},
[]
);
return { ref: callbackRef, focused };
}
exports.useFocusWithin = useFocusWithin;
//# sourceMappingURL=use-focus-within.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
'use client';
'use strict';
var React = require('react');
const reducer = (value) => (value + 1) % 1e6;
function useForceUpdate() {
const [, update] = React.useReducer(reducer, 0);
return update;
}
exports.useForceUpdate = useForceUpdate;
//# sourceMappingURL=use-force-update.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-force-update.cjs","sources":["../../src/use-force-update/use-force-update.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nconst reducer = (value: number) => (value + 1) % 1000000;\n\nexport function useForceUpdate(): () => void {\n const [, update] = useReducer(reducer, 0);\n return update;\n}\n"],"names":["useReducer"],"mappings":";;;;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA;AAE1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAA,CAAA,CAAA,CAA6B,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAIA,gBAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAC,CAAA,CAAA;AACxC,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}

View File

@@ -0,0 +1,99 @@
'use client';
'use strict';
var React = require('react');
function getFullscreenElement() {
const _document = window.document;
const fullscreenElement = _document.fullscreenElement || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement;
return fullscreenElement;
}
function exitFullscreen() {
const _document = window.document;
if (typeof _document.exitFullscreen === "function") {
return _document.exitFullscreen();
}
if (typeof _document.msExitFullscreen === "function") {
return _document.msExitFullscreen();
}
if (typeof _document.webkitExitFullscreen === "function") {
return _document.webkitExitFullscreen();
}
if (typeof _document.mozCancelFullScreen === "function") {
return _document.mozCancelFullScreen();
}
return null;
}
function enterFullScreen(element) {
const _element = element;
return _element.requestFullscreen?.() || _element.msRequestFullscreen?.() || _element.webkitEnterFullscreen?.() || _element.webkitRequestFullscreen?.() || _element.mozRequestFullscreen?.();
}
const prefixes = ["", "webkit", "moz", "ms"];
function addEvents(element, {
onFullScreen,
onError
}) {
prefixes.forEach((prefix) => {
element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);
element.addEventListener(`${prefix}fullscreenerror`, onError);
});
return () => {
prefixes.forEach((prefix) => {
element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);
element.removeEventListener(`${prefix}fullscreenerror`, onError);
});
};
}
function useFullscreen() {
const [fullscreen, setFullscreen] = React.useState(false);
const _ref = React.useRef(null);
const handleFullscreenChange = React.useCallback(
(event) => {
setFullscreen(event.target === getFullscreenElement());
},
[setFullscreen]
);
const handleFullscreenError = React.useCallback(
(event) => {
setFullscreen(false);
console.error(
`[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`
);
},
[setFullscreen]
);
const toggle = React.useCallback(async () => {
if (!getFullscreenElement()) {
await enterFullScreen(_ref.current);
} else {
await exitFullscreen();
}
}, []);
const ref = React.useCallback((element) => {
if (element === null) {
_ref.current = window.document.documentElement;
} else {
_ref.current = element;
}
}, []);
React.useEffect(() => {
if (!_ref.current && window.document) {
_ref.current = window.document.documentElement;
return addEvents(_ref.current, {
onFullScreen: handleFullscreenChange,
onError: handleFullscreenError
});
}
if (_ref.current) {
return addEvents(_ref.current, {
onFullScreen: handleFullscreenChange,
onError: handleFullscreenError
});
}
return void 0;
}, [_ref.current]);
return { ref, toggle, fullscreen };
}
exports.useFullscreen = useFullscreen;
//# sourceMappingURL=use-fullscreen.cjs.map

File diff suppressed because one or more lines are too long

33
node_modules/@mantine/hooks/cjs/use-hash/use-hash.cjs generated vendored Normal file
View File

@@ -0,0 +1,33 @@
'use client';
'use strict';
var React = require('react');
var useWindowEvent = require('../use-window-event/use-window-event.cjs');
function useHash({
getInitialValueInEffect = true
} = {}) {
const [hash, setHash] = React.useState(
getInitialValueInEffect ? "" : window.location.hash || ""
);
const setHashHandler = (value) => {
const valueWithHash = value.startsWith("#") ? value : `#${value}`;
window.location.hash = valueWithHash;
setHash(valueWithHash);
};
useWindowEvent.useWindowEvent("hashchange", () => {
const newHash = window.location.hash;
if (hash !== newHash) {
setHash(newHash);
}
});
React.useEffect(() => {
if (getInitialValueInEffect) {
setHash(window.location.hash);
}
}, []);
return [hash, setHashHandler];
}
exports.useHash = useHash;
//# sourceMappingURL=use-hash.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-hash.cjs","sources":["../../src/use-hash/use-hash.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport interface UseHashOptions {\n getInitialValueInEffect?: boolean;\n}\n\nexport type UseHashReturnValue = [string, (value: string) => void];\n\nexport function useHash({\n getInitialValueInEffect = true,\n}: UseHashOptions = {}): UseHashReturnValue {\n const [hash, setHash] = useState<string>(\n getInitialValueInEffect ? '' : window.location.hash || ''\n );\n\n const setHashHandler = (value: string) => {\n const valueWithHash = value.startsWith('#') ? value : `#${value}`;\n window.location.hash = valueWithHash;\n setHash(valueWithHash);\n };\n\n useWindowEvent('hashchange', () => {\n const newHash = window.location.hash;\n if (hash !== newHash) {\n setHash(newHash);\n }\n });\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setHash(window.location.hash);\n }\n }, []);\n\n return [hash, setHashHandler];\n}\n"],"names":["useState","useWindowEvent","useEffect"],"mappings":"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"}

View File

@@ -0,0 +1,81 @@
'use client';
'use strict';
var React = require('react');
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
var useWindowScroll = require('../use-window-scroll/use-window-scroll.cjs');
const isFixed = (current, fixedAt) => current <= fixedAt;
const isPinnedOrReleased = (current, fixedAt, isCurrentlyPinnedRef, isScrollingUp, onPin, onRelease) => {
const isInFixedPosition = isFixed(current, fixedAt);
if (isInFixedPosition && !isCurrentlyPinnedRef.current) {
isCurrentlyPinnedRef.current = true;
onPin?.();
} else if (!isInFixedPosition && isScrollingUp && !isCurrentlyPinnedRef.current) {
isCurrentlyPinnedRef.current = true;
onPin?.();
} else if (!isInFixedPosition && isCurrentlyPinnedRef.current) {
isCurrentlyPinnedRef.current = false;
onRelease?.();
}
};
const useScrollDirection = () => {
const [lastScrollTop, setLastScrollTop] = React.useState(0);
const [isScrollingUp, setIsScrollingUp] = React.useState(false);
const [isResizing, setIsResizing] = React.useState(false);
React.useEffect(() => {
let resizeTimer;
const onResize = () => {
setIsResizing(true);
clearTimeout(resizeTimer);
resizeTimer = setTimeout(() => {
setIsResizing(false);
}, 300);
};
const onScroll = () => {
if (isResizing) {
return;
}
const currentScrollTop = window.scrollY || document.documentElement.scrollTop;
setIsScrollingUp(currentScrollTop < lastScrollTop);
setLastScrollTop(currentScrollTop);
};
window.addEventListener("scroll", onScroll);
window.addEventListener("resize", onResize);
return () => {
window.removeEventListener("scroll", onScroll);
window.removeEventListener("resize", onResize);
};
}, [lastScrollTop, isResizing]);
return isScrollingUp;
};
function useHeadroom({ fixedAt = 0, onPin, onFix, onRelease } = {}) {
const isCurrentlyPinnedRef = React.useRef(false);
const isScrollingUp = useScrollDirection();
const [{ y: scrollPosition }] = useWindowScroll.useWindowScroll();
useIsomorphicEffect.useIsomorphicEffect(() => {
isPinnedOrReleased(
scrollPosition,
fixedAt,
isCurrentlyPinnedRef,
isScrollingUp,
onPin,
onRelease
);
}, [scrollPosition]);
useIsomorphicEffect.useIsomorphicEffect(() => {
if (isFixed(scrollPosition, fixedAt)) {
onFix?.();
}
}, [scrollPosition, fixedAt, onFix]);
if (isFixed(scrollPosition, fixedAt) || isScrollingUp) {
return true;
}
return false;
}
exports.isFixed = isFixed;
exports.isPinnedOrReleased = isPinnedOrReleased;
exports.useHeadroom = useHeadroom;
exports.useScrollDirection = useScrollDirection;
//# sourceMappingURL=use-headroom.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,96 @@
'use client';
'use strict';
const keyNameMap = {
" ": "space",
ArrowLeft: "arrowleft",
ArrowRight: "arrowright",
ArrowUp: "arrowup",
ArrowDown: "arrowdown",
Escape: "escape",
Esc: "escape",
esc: "escape",
Enter: "enter",
Tab: "tab",
Backspace: "backspace",
Delete: "delete",
Insert: "insert",
Home: "home",
End: "end",
PageUp: "pageup",
PageDown: "pagedown",
"+": "plus",
"-": "minus",
"*": "asterisk",
"/": "slash"
};
function normalizeKey(key) {
const lowerKey = key.replace("Key", "").toLowerCase();
return keyNameMap[key] || lowerKey;
}
function parseHotkey(hotkey) {
const keys = hotkey.toLowerCase().split("+").map((part) => part.trim());
const modifiers = {
alt: keys.includes("alt"),
ctrl: keys.includes("ctrl"),
meta: keys.includes("meta"),
mod: keys.includes("mod"),
shift: keys.includes("shift"),
plus: keys.includes("[plus]")
};
const reservedKeys = ["alt", "ctrl", "meta", "shift", "mod"];
const freeKey = keys.find((key) => !reservedKeys.includes(key));
return {
...modifiers,
key: freeKey === "[plus]" ? "+" : freeKey
};
}
function isExactHotkey(hotkey, event, usePhysicalKeys) {
const { alt, ctrl, meta, mod, shift, key } = hotkey;
const { altKey, ctrlKey, metaKey, shiftKey, key: pressedKey, code: pressedCode } = event;
if (alt !== altKey) {
return false;
}
if (mod) {
if (!ctrlKey && !metaKey) {
return false;
}
} else {
if (ctrl !== ctrlKey) {
return false;
}
if (meta !== metaKey) {
return false;
}
}
if (shift !== shiftKey) {
return false;
}
if (key && (usePhysicalKeys ? normalizeKey(pressedCode) === normalizeKey(key) : normalizeKey(pressedKey ?? pressedCode) === normalizeKey(key))) {
return true;
}
return false;
}
function getHotkeyMatcher(hotkey, usePhysicalKeys) {
return (event) => isExactHotkey(parseHotkey(hotkey), event, usePhysicalKeys);
}
function getHotkeyHandler(hotkeys) {
return (event) => {
const _event = "nativeEvent" in event ? event.nativeEvent : event;
hotkeys.forEach(
([hotkey, handler, options = { preventDefault: true, usePhysicalKeys: false }]) => {
if (getHotkeyMatcher(hotkey, options.usePhysicalKeys)(_event)) {
if (options.preventDefault) {
event.preventDefault();
}
handler(_event);
}
}
);
};
}
exports.getHotkeyHandler = getHotkeyHandler;
exports.getHotkeyMatcher = getHotkeyMatcher;
exports.parseHotkey = parseHotkey;
//# sourceMappingURL=parse-hotkey.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,37 @@
'use client';
'use strict';
var React = require('react');
var parseHotkey = require('./parse-hotkey.cjs');
function shouldFireEvent(event, tagsToIgnore, triggerOnContentEditable = false) {
if (event.target instanceof HTMLElement) {
if (triggerOnContentEditable) {
return !tagsToIgnore.includes(event.target.tagName);
}
return !event.target.isContentEditable && !tagsToIgnore.includes(event.target.tagName);
}
return true;
}
function useHotkeys(hotkeys, tagsToIgnore = ["INPUT", "TEXTAREA", "SELECT"], triggerOnContentEditable = false) {
React.useEffect(() => {
const keydownListener = (event) => {
hotkeys.forEach(
([hotkey, handler, options = { preventDefault: true, usePhysicalKeys: false }]) => {
if (parseHotkey.getHotkeyMatcher(hotkey, options.usePhysicalKeys)(event) && shouldFireEvent(event, tagsToIgnore, triggerOnContentEditable)) {
if (options.preventDefault) {
event.preventDefault();
}
handler(event);
}
}
);
};
document.documentElement.addEventListener("keydown", keydownListener);
return () => document.documentElement.removeEventListener("keydown", keydownListener);
}, [hotkeys]);
}
exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
exports.useHotkeys = useHotkeys;
//# sourceMappingURL=use-hotkeys.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,33 @@
'use client';
'use strict';
var React = require('react');
function useHover() {
const [hovered, setHovered] = React.useState(false);
const previousNode = React.useRef(null);
const handleMouseEnter = React.useCallback(() => {
setHovered(true);
}, []);
const handleMouseLeave = React.useCallback(() => {
setHovered(false);
}, []);
const ref = React.useCallback(
(node) => {
if (previousNode.current) {
previousNode.current.removeEventListener("mouseenter", handleMouseEnter);
previousNode.current.removeEventListener("mouseleave", handleMouseLeave);
}
if (node) {
node.addEventListener("mouseenter", handleMouseEnter);
node.addEventListener("mouseleave", handleMouseLeave);
}
previousNode.current = node;
},
[handleMouseEnter, handleMouseLeave]
);
return { ref, hovered };
}
exports.useHover = useHover;
//# sourceMappingURL=use-hover.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-hover.cjs","sources":["../../src/use-hover/use-hover.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport interface UseHoverReturnValue<T extends HTMLElement = any> {\n hovered: boolean;\n ref: React.RefCallback<T | null>;\n}\n\nexport function useHover<T extends HTMLElement = any>(): UseHoverReturnValue<T> {\n const [hovered, setHovered] = useState(false);\n const previousNode = useRef<HTMLElement>(null);\n\n const handleMouseEnter = useCallback(() => {\n setHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setHovered(false);\n }, []);\n\n const ref: React.RefCallback<T | null> = useCallback(\n (node) => {\n if (previousNode.current) {\n previousNode.current.removeEventListener('mouseenter', handleMouseEnter);\n previousNode.current.removeEventListener('mouseleave', handleMouseLeave);\n }\n\n if (node) {\n node.addEventListener('mouseenter', handleMouseEnter);\n node.addEventListener('mouseleave', handleMouseLeave);\n }\n\n previousNode.current = node;\n },\n [handleMouseEnter, handleMouseLeave]\n );\n\n return { ref, hovered };\n}\n"],"names":["useState","useRef","useCallback"],"mappings":"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"}

25
node_modules/@mantine/hooks/cjs/use-id/use-id.cjs generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use client';
'use strict';
var React = require('react');
var useIsomorphicEffect = require('../use-isomorphic-effect/use-isomorphic-effect.cjs');
var randomId = require('../utils/random-id/random-id.cjs');
var useReactId = require('./use-react-id.cjs');
function useId(staticId) {
const reactId = useReactId.useReactId();
const [uuid, setUuid] = React.useState(reactId);
useIsomorphicEffect.useIsomorphicEffect(() => {
setUuid(randomId.randomId());
}, []);
if (typeof staticId === "string") {
return staticId;
}
if (typeof window === "undefined") {
return reactId;
}
return uuid;
}
exports.useId = useId;
//# sourceMappingURL=use-id.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-id.cjs","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect';\nimport { randomId } from '../utils';\nimport { useReactId } from './use-react-id';\n\nexport function useId(staticId?: string) {\n const reactId = useReactId();\n const [uuid, setUuid] = useState(reactId);\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n if (typeof staticId === 'string') {\n return staticId;\n }\n\n if (typeof window === 'undefined') {\n return reactId;\n }\n\n return uuid;\n}\n"],"names":["useReactId","useState","useIsomorphicEffect","randomId"],"mappings":";;;;;;;;AAKO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAUA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAW,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAExC,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAU,CAAA,CAAA;AAAA,CAAA,CACpB,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAa,QAAA,CAAA,CAAU,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,MAAW,WAAA,CAAA,CAAa,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}

View File

@@ -0,0 +1,17 @@
'use client';
'use strict';
var React = require('react');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefault(React);
const __useId = React__default.default["useId".toString()] || (() => void 0);
function useReactId() {
const id = __useId();
return id ? `mantine-${id.replace(/:/g, "")}` : "";
}
exports.useReactId = useReactId;
//# sourceMappingURL=use-react-id.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-react-id.cjs","sources":["../../src/use-id/use-react-id.ts"],"sourcesContent":["import React from 'react';\n\nconst __useId: () => string | undefined = (React as any)['useId'.toString()] || (() => undefined);\n\nexport function useReactId() {\n const id = __useId();\n return id ? `mantine-${id.replace(/:/g, '')}` : '';\n}\n"],"names":["React"],"mappings":";;;;;;;;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAqCA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAA,CAAA,CAAA,CAAa,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACnB,CAAA,CAAA,OAAO,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,IAAA,CAAA,CAAM,CAAA,CAAE,CAAC,CAAA,CAAA,GAAK,CAAA,CAAA,CAAA;AAClD,CAAA;;"}

38
node_modules/@mantine/hooks/cjs/use-idle/use-idle.cjs generated vendored Normal file
View File

@@ -0,0 +1,38 @@
'use client';
'use strict';
var React = require('react');
const DEFAULT_OPTIONS = {
events: ["keydown", "mousemove", "touchmove", "click", "scroll", "wheel"],
initialState: true
};
function useIdle(timeout, options) {
const { events, initialState } = { ...DEFAULT_OPTIONS, ...options };
const [idle, setIdle] = React.useState(initialState);
const timer = React.useRef(-1);
React.useEffect(() => {
const handleEvents = () => {
setIdle(false);
if (timer.current) {
window.clearTimeout(timer.current);
}
timer.current = window.setTimeout(() => {
setIdle(true);
}, timeout);
};
events.forEach((event) => document.addEventListener(event, handleEvents));
timer.current = window.setTimeout(() => {
setIdle(true);
}, timeout);
return () => {
events.forEach((event) => document.removeEventListener(event, handleEvents));
window.clearTimeout(timer.current);
timer.current = -1;
};
}, [timeout]);
return idle;
}
exports.useIdle = useIdle;
//# sourceMappingURL=use-idle.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,30 @@
'use client';
'use strict';
var React = require('react');
function useInViewport() {
const observer = React.useRef(null);
const [inViewport, setInViewport] = React.useState(false);
const ref = React.useCallback((node) => {
if (typeof IntersectionObserver !== "undefined") {
if (node && !observer.current) {
observer.current = new IntersectionObserver((entries) => {
const lastEntry = entries[entries.length - 1];
setInViewport(lastEntry.isIntersecting);
});
} else {
observer.current?.disconnect();
}
if (node) {
observer.current?.observe(node);
} else {
setInViewport(false);
}
}
}, []);
return { ref, inViewport };
}
exports.useInViewport = useInViewport;
//# sourceMappingURL=use-in-viewport.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-in-viewport.cjs","sources":["../../src/use-in-viewport/use-in-viewport.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport interface UseInViewportReturnValue<T extends HTMLElement = any> {\n inViewport: boolean;\n ref: React.RefCallback<T | null>;\n}\n\nexport function useInViewport<T extends HTMLElement = any>(): UseInViewportReturnValue<T> {\n const observer = useRef<IntersectionObserver | null>(null);\n const [inViewport, setInViewport] = useState(false);\n\n const ref: React.RefCallback<T | null> = useCallback((node) => {\n if (typeof IntersectionObserver !== 'undefined') {\n if (node && !observer.current) {\n observer.current = new IntersectionObserver((entries) => {\n // Entries might be batched (e.g. when scrolling very fast), so we need to use the last entry to get the most recent state\n const lastEntry = entries[entries.length - 1];\n setInViewport(lastEntry.isIntersecting);\n });\n } else {\n observer.current?.disconnect();\n }\n\n if (node) {\n observer.current?.observe(node);\n } else {\n setInViewport(false);\n }\n }\n }, []);\n\n return { ref, inViewport };\n}\n"],"names":["useRef","useState","useCallback"],"mappings":"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"}

View File

@@ -0,0 +1,31 @@
'use client';
'use strict';
var React = require('react');
function getInputOnChange(setValue) {
return (val) => {
if (!val) {
setValue(val);
} else if (typeof val === "function") {
setValue(val);
} else if (typeof val === "object" && "nativeEvent" in val) {
const { currentTarget } = val;
if (currentTarget.type === "checkbox") {
setValue(currentTarget.checked);
} else {
setValue(currentTarget.value);
}
} else {
setValue(val);
}
};
}
function useInputState(initialState) {
const [value, setValue] = React.useState(initialState);
return [value, getInputOnChange(setValue)];
}
exports.getInputOnChange = getInputOnChange;
exports.useInputState = useInputState;
//# sourceMappingURL=use-input-state.cjs.map

View File

@@ -0,0 +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 type UseInputStateReturnValue<T> = [\n T,\n (value: null | undefined | T | React.ChangeEvent<any>) => void,\n];\n\nexport function useInputState<T>(initialState: T): UseInputStateReturnValue<T> {\n const [value, setValue] = useState<T>(initialState);\n return [value, getInputOnChange<T>(setValue as any)];\n}\n"],"names":["useState"],"mappings":"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"}

View File

@@ -0,0 +1,30 @@
'use client';
'use strict';
var React = require('react');
function useIntersection(options) {
const [entry, setEntry] = React.useState(null);
const observer = React.useRef(null);
const ref = React.useCallback(
(element) => {
if (observer.current) {
observer.current.disconnect();
observer.current = null;
}
if (element === null) {
setEntry(null);
return;
}
observer.current = new IntersectionObserver(([_entry]) => {
setEntry(_entry);
}, options);
observer.current.observe(element);
},
[options?.rootMargin, options?.root, options?.threshold]
);
return { ref, entry };
}
exports.useIntersection = useIntersection;
//# sourceMappingURL=use-intersection.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-intersection.cjs","sources":["../../src/use-intersection/use-intersection.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport interface UseIntersectionReturnValue<T> {\n ref: React.RefCallback<T | null>;\n entry: IntersectionObserverEntry | null;\n}\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: IntersectionObserverInit\n): UseIntersectionReturnValue<T> {\n const [entry, setEntry] = useState<IntersectionObserverEntry | null>(null);\n\n const observer = useRef<IntersectionObserver | null>(null);\n\n const ref: React.RefCallback<T | null> = useCallback(\n (element) => {\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":"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"}

View File

@@ -0,0 +1,44 @@
'use client';
'use strict';
var React = require('react');
function useInterval(fn, interval, { autoInvoke = false } = {}) {
const [active, setActive] = React.useState(false);
const intervalRef = React.useRef(null);
const fnRef = React.useRef(null);
const start = React.useCallback(() => {
setActive((old) => {
if (!old && (!intervalRef.current || intervalRef.current === -1)) {
intervalRef.current = window.setInterval(fnRef.current, interval);
}
return true;
});
}, []);
const stop = React.useCallback(() => {
setActive(false);
window.clearInterval(intervalRef.current || -1);
intervalRef.current = -1;
}, []);
const toggle = React.useCallback(() => {
if (active) {
stop();
} else {
start();
}
}, [active]);
React.useEffect(() => {
fnRef.current = fn;
active && start();
return stop;
}, [fn, active, interval]);
React.useEffect(() => {
if (autoInvoke) {
start();
}
}, []);
return { start, stop, toggle, active };
}
exports.useInterval = useInterval;
//# sourceMappingURL=use-interval.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
'use client';
'use strict';
var React = require('react');
function useIsFirstRender() {
const renderRef = React.useRef(true);
if (renderRef.current === true) {
renderRef.current = false;
return true;
}
return renderRef.current;
}
exports.useIsFirstRender = useIsFirstRender;
//# sourceMappingURL=use-is-first-render.cjs.map

View File

@@ -0,0 +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,gBAAA,CAAA,CAAA,CAAmB,CAAA;AACjC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAO,IAAI,CAAA,CAAA;AAE7B,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAY,IAAA,CAAA,CAAM,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,CAAA;;"}

View File

@@ -0,0 +1,9 @@
'use client';
'use strict';
var React = require('react');
const useIsomorphicEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect;
exports.useIsomorphicEffect = useIsomorphicEffect;
//# sourceMappingURL=use-isomorphic-effect.cjs.map

View File

@@ -0,0 +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, for example 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":";;;;;AAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcA,qBAAA,CAAA,CAAA,CAAkBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;;"}

View File

@@ -0,0 +1,107 @@
'use client';
'use strict';
var React = require('react');
function useListState(initialValue = []) {
const [state, setState] = React.useState(initialValue);
const append = React.useCallback((...items) => setState((current) => [...current, ...items]), []);
const prepend = React.useCallback((...items) => setState((current) => [...items, ...current]), []);
const insert = React.useCallback(
(index, ...items) => setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]),
[]
);
const apply = React.useCallback(
(fn) => setState((current) => current.map((item, index) => fn(item, index))),
[]
);
const remove = React.useCallback(
(...indices) => setState((current) => current.filter((_, index) => !indices.includes(index))),
[]
);
const pop = React.useCallback(
() => setState((current) => {
const cloned = [...current];
cloned.pop();
return cloned;
}),
[]
);
const shift = React.useCallback(
() => setState((current) => {
const cloned = [...current];
cloned.shift();
return cloned;
}),
[]
);
const reorder = React.useCallback(
({ from, to }) => setState((current) => {
const cloned = [...current];
const item = current[from];
cloned.splice(from, 1);
cloned.splice(to, 0, item);
return cloned;
}),
[]
);
const swap = React.useCallback(
({ from, to }) => setState((current) => {
const cloned = [...current];
const fromItem = cloned[from];
const toItem = cloned[to];
cloned.splice(to, 1, fromItem);
cloned.splice(from, 1, toItem);
return cloned;
}),
[]
);
const setItem = React.useCallback(
(index, item) => setState((current) => {
const cloned = [...current];
cloned[index] = item;
return cloned;
}),
[]
);
const setItemProp = React.useCallback(
(index, prop, value) => setState((current) => {
const cloned = [...current];
cloned[index] = { ...cloned[index], [prop]: value };
return cloned;
}),
[]
);
const applyWhere = React.useCallback(
(condition, fn) => setState(
(current) => current.map((item, index) => condition(item, index) ? fn(item, index) : item)
),
[]
);
const filter = React.useCallback((fn) => {
setState((current) => current.filter(fn));
}, []);
const handlers = React.useMemo(
() => ({
setState,
append,
prepend,
insert,
pop,
shift,
apply,
applyWhere,
remove,
reorder,
swap,
setItem,
setItemProp,
filter
}),
[]
);
return [state, handlers];
}
exports.useListState = useListState;
//# sourceMappingURL=use-list-state.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,151 @@
'use client';
'use strict';
var React = require('react');
var useWindowEvent = require('../use-window-event/use-window-event.cjs');
function serializeJSON(value, hookName = "use-local-storage") {
try {
return JSON.stringify(value);
} catch (error) {
throw new Error(`@mantine/hooks ${hookName}: Failed to serialize the value`);
}
}
function deserializeJSON(value) {
try {
return value && JSON.parse(value);
} catch {
return value;
}
}
function createStorageHandler(type) {
const getItem = (key) => {
try {
return window[type].getItem(key);
} catch (error) {
console.warn("use-local-storage: Failed to get value from storage, localStorage is blocked");
return null;
}
};
const setItem = (key, value) => {
try {
window[type].setItem(key, value);
} catch (error) {
console.warn("use-local-storage: Failed to set value to storage, localStorage is blocked");
}
};
const removeItem = (key) => {
try {
window[type].removeItem(key);
} catch (error) {
console.warn(
"use-local-storage: Failed to remove value from storage, localStorage is blocked"
);
}
};
return { getItem, setItem, removeItem };
}
function createStorage(type, hookName) {
const eventName = type === "localStorage" ? "mantine-local-storage" : "mantine-session-storage";
const { getItem, setItem, removeItem } = createStorageHandler(type);
return function useStorage({
key,
defaultValue,
getInitialValueInEffect = true,
sync = true,
deserialize = deserializeJSON,
serialize = (value) => serializeJSON(value, hookName)
}) {
const readStorageValue = React.useCallback(
(skipStorage) => {
let storageBlockedOrSkipped;
try {
storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null || !!skipStorage;
} catch (_e) {
storageBlockedOrSkipped = true;
}
if (storageBlockedOrSkipped) {
return defaultValue;
}
const storageValue = getItem(key);
return storageValue !== null ? deserialize(storageValue) : defaultValue;
},
[key, defaultValue]
);
const [value, setValue] = React.useState(readStorageValue(getInitialValueInEffect));
const setStorageValue = React.useCallback(
(val) => {
if (val instanceof Function) {
setValue((current) => {
const result = val(current);
setItem(key, serialize(result));
queueMicrotask(() => {
window.dispatchEvent(
new CustomEvent(eventName, { detail: { key, value: val(current) } })
);
});
return result;
});
} else {
setItem(key, serialize(val));
window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: val } }));
setValue(val);
}
},
[key]
);
const removeStorageValue = React.useCallback(() => {
removeItem(key);
setValue(defaultValue);
window.dispatchEvent(new CustomEvent(eventName, { detail: { key, value: defaultValue } }));
}, [key, defaultValue]);
useWindowEvent.useWindowEvent("storage", (event) => {
if (sync) {
if (event.storageArea === window[type] && event.key === key) {
setValue(deserialize(event.newValue ?? void 0));
}
}
});
useWindowEvent.useWindowEvent(eventName, (event) => {
if (sync) {
if (event.detail.key === key) {
setValue(event.detail.value);
}
}
});
React.useEffect(() => {
if (defaultValue !== void 0 && value === void 0) {
setStorageValue(defaultValue);
}
}, [defaultValue, value, setStorageValue]);
React.useEffect(() => {
const val = readStorageValue();
val !== void 0 && setStorageValue(val);
}, [key]);
return [value === void 0 ? defaultValue : value, setStorageValue, removeStorageValue];
};
}
function readValue(type) {
const { getItem } = createStorageHandler(type);
return function read({
key,
defaultValue,
deserialize = deserializeJSON
}) {
let storageBlockedOrSkipped;
try {
storageBlockedOrSkipped = typeof window === "undefined" || !(type in window) || window[type] === null;
} catch (_e) {
storageBlockedOrSkipped = true;
}
if (storageBlockedOrSkipped) {
return defaultValue;
}
const storageValue = getItem(key);
return storageValue !== null ? deserialize(storageValue) : defaultValue;
};
}
exports.createStorage = createStorage;
exports.readValue = readValue;
//# sourceMappingURL=create-storage.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
'use client';
'use strict';
var createStorage = require('./create-storage.cjs');
function useLocalStorage(props) {
return createStorage.createStorage("localStorage", "use-local-storage")(props);
}
const readLocalStorageValue = createStorage.readValue("localStorage");
exports.readLocalStorageValue = readLocalStorageValue;
exports.useLocalStorage = useLocalStorage;
//# sourceMappingURL=use-local-storage.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-local-storage.cjs","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { createStorage, readValue, UseStorageOptions } from './create-storage';\n\nexport function useLocalStorage<T = string>(props: UseStorageOptions<T>) {\n return createStorage<T>('localStorage', 'use-local-storage')(props);\n}\n\nexport const readLocalStorageValue = readValue('localStorage');\n"],"names":["createStorage","readValue"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,2BAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AACpE,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA;;;"}

View File

@@ -0,0 +1,19 @@
'use client';
'use strict';
var React = require('react');
var useDidUpdate = require('../use-did-update/use-did-update.cjs');
function useLogger(componentName, props) {
React.useEffect(() => {
console.log(`${componentName} mounted`, ...props);
return () => console.log(`${componentName} unmounted`);
}, []);
useDidUpdate.useDidUpdate(() => {
console.log(`${componentName} updated`, ...props);
}, props);
return null;
}
exports.useLogger = useLogger;
//# sourceMappingURL=use-logger.cjs.map

View File

@@ -0,0 +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":";;;;;;AAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAuB,KAAA,CAAA,CAAc,CAAA;AAC7D,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,KAAK,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA;AAAA,CAAA,CACvD,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AAEL,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,KAAK,CAAA,CAAA;AAAA,CAAA,CAClD,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAER,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}

View File

@@ -0,0 +1,65 @@
'use client';
'use strict';
var React = require('react');
function useLongPress(onLongPress, options = {}) {
const { threshold = 400, onStart, onFinish, onCancel } = options;
const isLongPressActive = React.useRef(false);
const isPressed = React.useRef(false);
const timeout = React.useRef(-1);
React.useEffect(() => () => window.clearTimeout(timeout.current), []);
return React.useMemo(() => {
if (typeof onLongPress !== "function") {
return {};
}
const start = (event) => {
if (!isMouseEvent(event) && !isTouchEvent(event)) {
return;
}
if (onStart) {
onStart(event);
}
isPressed.current = true;
timeout.current = window.setTimeout(() => {
onLongPress(event);
isLongPressActive.current = true;
}, threshold);
};
const cancel = (event) => {
if (!isMouseEvent(event) && !isTouchEvent(event)) {
return;
}
if (isLongPressActive.current) {
if (onFinish) {
onFinish(event);
}
} else if (isPressed.current) {
if (onCancel) {
onCancel(event);
}
}
isLongPressActive.current = false;
isPressed.current = false;
if (timeout.current) {
window.clearTimeout(timeout.current);
}
};
return {
onMouseDown: start,
onMouseUp: cancel,
onMouseLeave: cancel,
onTouchStart: start,
onTouchEnd: cancel
};
}, [onLongPress, threshold, onCancel, onFinish, onStart]);
}
function isTouchEvent(event) {
return window.TouchEvent ? event.nativeEvent instanceof TouchEvent : "touches" in event.nativeEvent;
}
function isMouseEvent(event) {
return event.nativeEvent instanceof MouseEvent;
}
exports.useLongPress = useLongPress;
//# sourceMappingURL=use-long-press.cjs.map

File diff suppressed because one or more lines are too long

28
node_modules/@mantine/hooks/cjs/use-map/use-map.cjs generated vendored Normal file
View File

@@ -0,0 +1,28 @@
'use client';
'use strict';
var React = require('react');
var useForceUpdate = require('../use-force-update/use-force-update.cjs');
function useMap(initialState) {
const mapRef = React.useRef(new Map(initialState));
const forceUpdate = useForceUpdate.useForceUpdate();
mapRef.current.set = (...args) => {
Map.prototype.set.apply(mapRef.current, args);
forceUpdate();
return mapRef.current;
};
mapRef.current.clear = (...args) => {
Map.prototype.clear.apply(mapRef.current, args);
forceUpdate();
};
mapRef.current.delete = (...args) => {
const res = Map.prototype.delete.apply(mapRef.current, args);
forceUpdate();
return res;
};
return mapRef.current;
}
exports.useMap = useMap;
//# sourceMappingURL=use-map.cjs.map

View File

@@ -0,0 +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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"}

View File

@@ -0,0 +1,40 @@
'use client';
'use strict';
var React = require('react');
function attachMediaListener(query, callback) {
try {
query.addEventListener("change", callback);
return () => query.removeEventListener("change", callback);
} catch (e) {
query.addListener(callback);
return () => query.removeListener(callback);
}
}
function getInitialValue(query, initialValue) {
if (typeof window !== "undefined" && "matchMedia" in window) {
return window.matchMedia(query).matches;
}
return false;
}
function useMediaQuery(query, initialValue, { getInitialValueInEffect } = {
getInitialValueInEffect: true
}) {
const [matches, setMatches] = React.useState(
getInitialValueInEffect ? initialValue : getInitialValue(query)
);
React.useEffect(() => {
try {
const mediaQuery = window.matchMedia(query);
setMatches(mediaQuery.matches);
return attachMediaListener(mediaQuery, (event) => setMatches(event.matches));
} catch (e) {
return void 0;
}
}, [query]);
return matches || false;
}
exports.useMediaQuery = useMediaQuery;
//# sourceMappingURL=use-media-query.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,44 @@
'use client';
'use strict';
var React = require('react');
function assignRef(ref, value) {
if (typeof ref === "function") {
return ref(value);
} else if (typeof ref === "object" && ref !== null && "current" in ref) {
ref.current = value;
}
}
function mergeRefs(...refs) {
const cleanupMap = /* @__PURE__ */ new Map();
return (node) => {
refs.forEach((ref) => {
const cleanup = assignRef(ref, node);
if (cleanup) {
cleanupMap.set(ref, cleanup);
}
});
if (cleanupMap.size > 0) {
return () => {
refs.forEach((ref) => {
const cleanup = cleanupMap.get(ref);
if (cleanup && typeof cleanup === "function") {
cleanup();
} else {
assignRef(ref, null);
}
});
cleanupMap.clear();
};
}
};
}
function useMergedRef(...refs) {
return React.useCallback(mergeRefs(...refs), refs);
}
exports.assignRef = assignRef;
exports.mergeRefs = mergeRefs;
exports.useMergedRef = useMergedRef;
//# sourceMappingURL=use-merged-ref.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
'use client';
'use strict';
var React = require('react');
function useMounted() {
const [mounted, setMounted] = React.useState(false);
React.useEffect(() => setMounted(true), []);
return mounted;
}
exports.useMounted = useMounted;
//# sourceMappingURL=use-mounted.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"use-mounted.cjs","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":["useState","useEffect"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAA,CAAA,CAAA,CAAa,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAC5C,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AACpC,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}

View File

@@ -0,0 +1,43 @@
'use client';
'use strict';
var React = require('react');
function useMouse(options = { resetOnExit: false }) {
const [position, setPosition] = React.useState({ x: 0, y: 0 });
const ref = React.useRef(null);
const setMousePosition = (event) => {
if (ref.current) {
const rect = event.currentTarget.getBoundingClientRect();
const x = Math.max(
0,
Math.round(event.pageX - rect.left - (window.scrollX || window.scrollX))
);
const y = Math.max(
0,
Math.round(event.pageY - rect.top - (window.scrollY || window.scrollY))
);
setPosition({ x, y });
} else {
setPosition({ x: event.clientX, y: event.clientY });
}
};
const resetMousePosition = () => setPosition({ x: 0, y: 0 });
React.useEffect(() => {
const element = ref?.current ? ref.current : document;
element.addEventListener("mousemove", setMousePosition);
if (options.resetOnExit) {
element.addEventListener("mouseleave", resetMousePosition);
}
return () => {
element.removeEventListener("mousemove", setMousePosition);
if (options.resetOnExit) {
element.removeEventListener("mouseleave", resetMousePosition);
}
};
}, [ref.current]);
return { ref, ...position };
}
exports.useMouse = useMouse;
//# sourceMappingURL=use-mouse.cjs.map

File diff suppressed because one or more lines are too long

110
node_modules/@mantine/hooks/cjs/use-move/use-move.cjs generated vendored Normal file
View File

@@ -0,0 +1,110 @@
'use client';
'use strict';
var React = require('react');
var clamp = require('../utils/clamp/clamp.cjs');
function clampUseMovePosition(position) {
return {
x: clamp.clamp(position.x, 0, 1),
y: clamp.clamp(position.y, 0, 1)
};
}
function useMove(onChange, handlers, dir = "ltr") {
const mounted = React.useRef(false);
const isSliding = React.useRef(false);
const frame = React.useRef(0);
const [active, setActive] = React.useState(false);
const cleanupRef = React.useRef(null);
React.useEffect(() => {
mounted.current = true;
}, []);
const refCallback = React.useCallback(
(node) => {
if (cleanupRef.current) {
cleanupRef.current();
cleanupRef.current = null;
}
if (!node) {
return;
}
const onScrub = ({ x, y }) => {
cancelAnimationFrame(frame.current);
frame.current = requestAnimationFrame(() => {
if (mounted.current && node) {
node.style.userSelect = "none";
const rect = node.getBoundingClientRect();
if (rect.width && rect.height) {
const _x = clamp.clamp((x - rect.left) / rect.width, 0, 1);
onChange({
x: dir === "ltr" ? _x : 1 - _x,
y: clamp.clamp((y - rect.top) / rect.height, 0, 1)
});
}
}
});
};
const bindEvents = () => {
document.addEventListener("mousemove", onMouseMove);
document.addEventListener("mouseup", stopScrubbing);
document.addEventListener("touchmove", onTouchMove, { passive: false });
document.addEventListener("touchend", stopScrubbing);
};
const unbindEvents = () => {
document.removeEventListener("mousemove", onMouseMove);
document.removeEventListener("mouseup", stopScrubbing);
document.removeEventListener("touchmove", onTouchMove);
document.removeEventListener("touchend", stopScrubbing);
};
const startScrubbing = () => {
if (!isSliding.current && mounted.current) {
isSliding.current = true;
typeof handlers?.onScrubStart === "function" && handlers.onScrubStart();
setActive(true);
bindEvents();
}
};
const stopScrubbing = () => {
if (isSliding.current && mounted.current) {
isSliding.current = false;
setActive(false);
unbindEvents();
setTimeout(() => {
typeof handlers?.onScrubEnd === "function" && handlers.onScrubEnd();
}, 0);
}
};
const onMouseDown = (event) => {
startScrubbing();
event.preventDefault();
onMouseMove(event);
};
const onMouseMove = (event) => onScrub({ x: event.clientX, y: event.clientY });
const onTouchStart = (event) => {
if (event.cancelable) {
event.preventDefault();
}
startScrubbing();
onTouchMove(event);
};
const onTouchMove = (event) => {
if (event.cancelable) {
event.preventDefault();
}
onScrub({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY });
};
node.addEventListener("mousedown", onMouseDown);
node.addEventListener("touchstart", onTouchStart, { passive: false });
cleanupRef.current = () => {
node.removeEventListener("mousedown", onMouseDown);
node.removeEventListener("touchstart", onTouchStart);
};
},
[dir, onChange]
);
return { ref: refCallback, active };
}
exports.clampUseMovePosition = clampUseMovePosition;
exports.useMove = useMove;
//# sourceMappingURL=use-move.cjs.map

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More