@mantine/hooks 2.5.0-alpha.3 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/cjs/index.js +12 -6
- package/cjs/index.js.map +1 -1
- package/cjs/use-focus-return/use-focus-return.js.map +1 -1
- package/cjs/use-pagination/use-pagination.js +76 -0
- package/cjs/use-pagination/use-pagination.js.map +1 -0
- package/cjs/utils/range/range.js +11 -0
- package/cjs/utils/range/range.js.map +1 -0
- package/esm/index.js +6 -3
- package/esm/index.js.map +1 -1
- package/esm/use-focus-return/use-focus-return.js.map +1 -1
- package/esm/use-pagination/use-pagination.js +71 -0
- package/esm/use-pagination/use-pagination.js.map +1 -0
- package/esm/utils/range/range.js +7 -0
- package/esm/utils/range/range.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.umd.js +1 -1
- package/lib/index.umd.js.map +1 -1
- package/lib/use-focus-return/use-focus-return.d.ts +1 -3
- package/lib/use-focus-return/use-focus-return.d.ts.map +1 -1
- package/lib/use-pagination/use-pagination.d.ts +25 -0
- package/lib/use-pagination/use-pagination.d.ts.map +1 -0
- package/lib/utils/index.d.ts +5 -3
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/range/range.d.ts +2 -0
- package/lib/utils/range/range.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,6 +48,8 @@ npm install @mantine/hooks
|
|
|
48
48
|
- [use-intersection](https://mantine.dev/hooks/use-intersection/) – wrapper for IntersectionObserver API
|
|
49
49
|
- [use-hotkeys](https://mantine.dev/hooks/use-hotkeys/) – subscribe to multiple hotkeys with single hook
|
|
50
50
|
- [use-move](https://mantine.dev/hooks/use-move/) – handles move behavior over any element, build custom sliders, color pickers, etc.
|
|
51
|
+
- [use-pagination](https://mantine.dev/hooks/use-pagination/) – manage pagination state
|
|
52
|
+
- [use-focus-return](https://mantine.dev/hooks/use-focus-return/) – capture last focused element on the page and return focus to it once condition is met
|
|
51
53
|
|
|
52
54
|
## Licence
|
|
53
55
|
|
package/cjs/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var useLocalStorageValue = require('./use-local-storage-value/use-local-storage-
|
|
|
21
21
|
var useMediaQuery = require('./use-media-query/use-media-query.js');
|
|
22
22
|
var useMergedRef = require('./use-merged-ref/use-merged-ref.js');
|
|
23
23
|
var useMove = require('./use-move/use-move.js');
|
|
24
|
+
var usePagination = require('./use-pagination/use-pagination.js');
|
|
24
25
|
var useQueue = require('./use-queue/use-queue.js');
|
|
25
26
|
var useReducedMotion = require('./use-reduced-motion/use-reduced-motion.js');
|
|
26
27
|
var useScrollLock = require('./use-scroll-lock/use-scroll-lock.js');
|
|
@@ -35,11 +36,13 @@ var useHotkeys = require('./use-hotkey/use-hotkeys.js');
|
|
|
35
36
|
var useFullscreen = require('./use-fullscreen/use-fullscreen.js');
|
|
36
37
|
var useLogger = require('./use-logger/use-logger.js');
|
|
37
38
|
var parseHotkey = require('./use-hotkey/parse-hotkey.js');
|
|
38
|
-
var randomId = require('./utils/random-id/random-id.js');
|
|
39
|
-
var upperFirst = require('./utils/upper-first/upper-first.js');
|
|
40
|
-
var lowerFirst = require('./utils/lower-first/lower-first.js');
|
|
41
39
|
var assignRef = require('./utils/assign-ref/assign-ref.js');
|
|
42
40
|
var clamp = require('./utils/clamp/clamp.js');
|
|
41
|
+
var lowerFirst = require('./utils/lower-first/lower-first.js');
|
|
42
|
+
var randomId = require('./utils/random-id/random-id.js');
|
|
43
|
+
var range = require('./utils/range/range.js');
|
|
44
|
+
var shallowEqual = require('./utils/shallow-equal/shallow-equal.js');
|
|
45
|
+
var upperFirst = require('./utils/upper-first/upper-first.js');
|
|
43
46
|
|
|
44
47
|
|
|
45
48
|
|
|
@@ -63,6 +66,7 @@ exports.useMediaQuery = useMediaQuery.useMediaQuery;
|
|
|
63
66
|
exports.useMergedRef = useMergedRef.useMergedRef;
|
|
64
67
|
exports.clampUseMovePosition = useMove.clampUseMovePosition;
|
|
65
68
|
exports.useMove = useMove.useMove;
|
|
69
|
+
exports.usePagination = usePagination.usePagination;
|
|
66
70
|
exports.useQueue = useQueue.useQueue;
|
|
67
71
|
exports.useReducedMotion = useReducedMotion.useReducedMotion;
|
|
68
72
|
exports.useScrollLock = useScrollLock.useScrollLock;
|
|
@@ -78,9 +82,11 @@ exports.useHotkeys = useHotkeys.useHotkeys;
|
|
|
78
82
|
exports.useFullscreen = useFullscreen.useFullscreen;
|
|
79
83
|
exports.useLogger = useLogger.useLogger;
|
|
80
84
|
exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
|
|
81
|
-
exports.randomId = randomId.randomId;
|
|
82
|
-
exports.upperFirst = upperFirst.upperFirst;
|
|
83
|
-
exports.lowerFirst = lowerFirst.lowerFirst;
|
|
84
85
|
exports.assignRef = assignRef.assignRef;
|
|
85
86
|
exports.clamp = clamp.clamp;
|
|
87
|
+
exports.lowerFirst = lowerFirst.lowerFirst;
|
|
88
|
+
exports.randomId = randomId.randomId;
|
|
89
|
+
exports.range = range.range;
|
|
90
|
+
exports.shallowEqual = shallowEqual.shallowEqual;
|
|
91
|
+
exports.upperFirst = upperFirst.upperFirst;
|
|
86
92
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer
|
|
1
|
+
{"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer */\nexport function useFocusReturn({ opened, transitionDuration }: UseFocusReturn) {\n const returnFocus = useRef<HTMLElement>();\n\n useDidUpdate(() => {\n let timeout = -1;\n\n if (opened) {\n returnFocus.current = document.activeElement as HTMLElement;\n } else {\n timeout = window.setTimeout(() => {\n if (\n returnFocus.current &&\n 'focus' in returnFocus.current &&\n typeof returnFocus.current.focus === 'function'\n ) {\n returnFocus.current?.focus();\n }\n }, transitionDuration + 10);\n }\n\n return () => window.clearTimeout(timeout);\n }, [opened]);\n}\n"],"names":["useRef","useDidUpdate"],"mappings":";;;;;;;AAEO,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE;AAC/D,EAAE,MAAM,WAAW,GAAGA,YAAM,EAAE,CAAC;AAC/B,EAAEC,yBAAY,CAAC,MAAM;AACrB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACxC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AACtH,UAAU,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACnE,SAAS;AACT,OAAO,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9C,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;;;;"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var useUncontrolled = require('../use-uncontrolled/use-uncontrolled.js');
|
|
7
|
+
var range = require('../utils/range/range.js');
|
|
8
|
+
|
|
9
|
+
const DOTS = "dots";
|
|
10
|
+
function usePagination({
|
|
11
|
+
total,
|
|
12
|
+
siblings = 1,
|
|
13
|
+
boundaries = 1,
|
|
14
|
+
page,
|
|
15
|
+
initialPage = 1,
|
|
16
|
+
onChange
|
|
17
|
+
}) {
|
|
18
|
+
const [activePage, setActivePage] = useUncontrolled.useUncontrolled({
|
|
19
|
+
value: page,
|
|
20
|
+
onChange,
|
|
21
|
+
defaultValue: initialPage,
|
|
22
|
+
finalValue: initialPage,
|
|
23
|
+
rule: (_page) => typeof _page === "number" && _page <= total
|
|
24
|
+
});
|
|
25
|
+
const setPage = react.useCallback((pageNumber) => {
|
|
26
|
+
if (pageNumber <= 0) {
|
|
27
|
+
setActivePage(1);
|
|
28
|
+
} else if (pageNumber > total) {
|
|
29
|
+
setActivePage(total);
|
|
30
|
+
} else {
|
|
31
|
+
setActivePage(pageNumber);
|
|
32
|
+
}
|
|
33
|
+
}, [total]);
|
|
34
|
+
const next = () => setPage(activePage + 1);
|
|
35
|
+
const previous = () => setPage(activePage - 1);
|
|
36
|
+
const first = () => setPage(1);
|
|
37
|
+
const last = () => setPage(total);
|
|
38
|
+
const paginationRange = react.useMemo(() => {
|
|
39
|
+
const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;
|
|
40
|
+
if (totalPageNumbers >= total) {
|
|
41
|
+
return range.range(1, total);
|
|
42
|
+
}
|
|
43
|
+
const leftSiblingIndex = Math.max(activePage - siblings, boundaries);
|
|
44
|
+
const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);
|
|
45
|
+
const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;
|
|
46
|
+
const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);
|
|
47
|
+
if (!shouldShowLeftDots && shouldShowRightDots) {
|
|
48
|
+
const leftItemCount = siblings * 2 + boundaries + 2;
|
|
49
|
+
return [...range.range(1, leftItemCount), DOTS, ...range.range(total - (boundaries - 1), total)];
|
|
50
|
+
}
|
|
51
|
+
if (shouldShowLeftDots && !shouldShowRightDots) {
|
|
52
|
+
const rightItemCount = boundaries + 1 + 2 * siblings;
|
|
53
|
+
return [...range.range(1, boundaries), DOTS, ...range.range(total - rightItemCount, total)];
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
...range.range(1, boundaries),
|
|
57
|
+
DOTS,
|
|
58
|
+
...range.range(leftSiblingIndex, rightSiblingIndex),
|
|
59
|
+
DOTS,
|
|
60
|
+
...range.range(total - boundaries + 1, total)
|
|
61
|
+
];
|
|
62
|
+
}, [total, siblings, activePage]);
|
|
63
|
+
return {
|
|
64
|
+
range: paginationRange,
|
|
65
|
+
active: activePage,
|
|
66
|
+
setPage,
|
|
67
|
+
next,
|
|
68
|
+
previous,
|
|
69
|
+
first,
|
|
70
|
+
last
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
exports.DOTS = DOTS;
|
|
75
|
+
exports.usePagination = usePagination;
|
|
76
|
+
//# sourceMappingURL=use-pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n rule: (_page) => typeof _page === 'number' && _page <= total,\n });\n\n const setPage = useCallback(\n (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > total) {\n setActivePage(total);\n } else {\n setActivePage(pageNumber);\n }\n },\n [total]\n );\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n // Pages count is determined as siblings (left/right) + boundaries(left/right) + currentPage + 2*DOTS\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n\n /*\n * If the number of pages is less than the page numbers we want to show in our\n * paginationComponent, we return the range [1..total]\n */\n if (totalPageNumbers >= total) {\n return range(1, total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);\n\n /*\n * We do not want to show dots if there is only one position left\n * after/before the left/right page count as that would lead to a change if our Pagination\n * component size which we do not want\n */\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(total - (boundaries - 1), total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(total - rightItemCount, total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(total - boundaries + 1, total),\n ];\n }, [total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n"],"names":["useUncontrolled","useCallback","useMemo","range"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
function range(start, end) {
|
|
6
|
+
const length = end - start + 1;
|
|
7
|
+
return Array.from({ length }, (_, index) => index + start);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
exports.range = range;
|
|
11
|
+
//# sourceMappingURL=range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sources":["../../../src/utils/range/range.ts"],"sourcesContent":["export function range(start: number, end: number) {\n const length = end - start + 1;\n return Array.from({ length }, (_, index) => index + start);\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AAClC,EAAE,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AAC7D;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export { useLocalStorageValue } from './use-local-storage-value/use-local-storag
|
|
|
17
17
|
export { useMediaQuery } from './use-media-query/use-media-query.js';
|
|
18
18
|
export { useMergedRef } from './use-merged-ref/use-merged-ref.js';
|
|
19
19
|
export { clampUseMovePosition, useMove } from './use-move/use-move.js';
|
|
20
|
+
export { usePagination } from './use-pagination/use-pagination.js';
|
|
20
21
|
export { useQueue } from './use-queue/use-queue.js';
|
|
21
22
|
export { useReducedMotion } from './use-reduced-motion/use-reduced-motion.js';
|
|
22
23
|
export { useScrollLock } from './use-scroll-lock/use-scroll-lock.js';
|
|
@@ -31,9 +32,11 @@ export { useHotkeys } from './use-hotkey/use-hotkeys.js';
|
|
|
31
32
|
export { useFullscreen } from './use-fullscreen/use-fullscreen.js';
|
|
32
33
|
export { useLogger } from './use-logger/use-logger.js';
|
|
33
34
|
export { getHotkeyHandler } from './use-hotkey/parse-hotkey.js';
|
|
34
|
-
export { randomId } from './utils/random-id/random-id.js';
|
|
35
|
-
export { upperFirst } from './utils/upper-first/upper-first.js';
|
|
36
|
-
export { lowerFirst } from './utils/lower-first/lower-first.js';
|
|
37
35
|
export { assignRef } from './utils/assign-ref/assign-ref.js';
|
|
38
36
|
export { clamp } from './utils/clamp/clamp.js';
|
|
37
|
+
export { lowerFirst } from './utils/lower-first/lower-first.js';
|
|
38
|
+
export { randomId } from './utils/random-id/random-id.js';
|
|
39
|
+
export { range } from './utils/range/range.js';
|
|
40
|
+
export { shallowEqual } from './utils/shallow-equal/shallow-equal.js';
|
|
41
|
+
export { upperFirst } from './utils/upper-first/upper-first.js';
|
|
39
42
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer
|
|
1
|
+
{"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer */\nexport function useFocusReturn({ opened, transitionDuration }: UseFocusReturn) {\n const returnFocus = useRef<HTMLElement>();\n\n useDidUpdate(() => {\n let timeout = -1;\n\n if (opened) {\n returnFocus.current = document.activeElement as HTMLElement;\n } else {\n timeout = window.setTimeout(() => {\n if (\n returnFocus.current &&\n 'focus' in returnFocus.current &&\n typeof returnFocus.current.focus === 'function'\n ) {\n returnFocus.current?.focus();\n }\n }, transitionDuration + 10);\n }\n\n return () => window.clearTimeout(timeout);\n }, [opened]);\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE;AAC/D,EAAE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAC/B,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACxC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AACtH,UAAU,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACnE,SAAS;AACT,OAAO,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9C,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;;;;"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { useCallback, useMemo } from 'react';
|
|
2
|
+
import { useUncontrolled } from '../use-uncontrolled/use-uncontrolled.js';
|
|
3
|
+
import { range } from '../utils/range/range.js';
|
|
4
|
+
|
|
5
|
+
const DOTS = "dots";
|
|
6
|
+
function usePagination({
|
|
7
|
+
total,
|
|
8
|
+
siblings = 1,
|
|
9
|
+
boundaries = 1,
|
|
10
|
+
page,
|
|
11
|
+
initialPage = 1,
|
|
12
|
+
onChange
|
|
13
|
+
}) {
|
|
14
|
+
const [activePage, setActivePage] = useUncontrolled({
|
|
15
|
+
value: page,
|
|
16
|
+
onChange,
|
|
17
|
+
defaultValue: initialPage,
|
|
18
|
+
finalValue: initialPage,
|
|
19
|
+
rule: (_page) => typeof _page === "number" && _page <= total
|
|
20
|
+
});
|
|
21
|
+
const setPage = useCallback((pageNumber) => {
|
|
22
|
+
if (pageNumber <= 0) {
|
|
23
|
+
setActivePage(1);
|
|
24
|
+
} else if (pageNumber > total) {
|
|
25
|
+
setActivePage(total);
|
|
26
|
+
} else {
|
|
27
|
+
setActivePage(pageNumber);
|
|
28
|
+
}
|
|
29
|
+
}, [total]);
|
|
30
|
+
const next = () => setPage(activePage + 1);
|
|
31
|
+
const previous = () => setPage(activePage - 1);
|
|
32
|
+
const first = () => setPage(1);
|
|
33
|
+
const last = () => setPage(total);
|
|
34
|
+
const paginationRange = useMemo(() => {
|
|
35
|
+
const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;
|
|
36
|
+
if (totalPageNumbers >= total) {
|
|
37
|
+
return range(1, total);
|
|
38
|
+
}
|
|
39
|
+
const leftSiblingIndex = Math.max(activePage - siblings, boundaries);
|
|
40
|
+
const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);
|
|
41
|
+
const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;
|
|
42
|
+
const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);
|
|
43
|
+
if (!shouldShowLeftDots && shouldShowRightDots) {
|
|
44
|
+
const leftItemCount = siblings * 2 + boundaries + 2;
|
|
45
|
+
return [...range(1, leftItemCount), DOTS, ...range(total - (boundaries - 1), total)];
|
|
46
|
+
}
|
|
47
|
+
if (shouldShowLeftDots && !shouldShowRightDots) {
|
|
48
|
+
const rightItemCount = boundaries + 1 + 2 * siblings;
|
|
49
|
+
return [...range(1, boundaries), DOTS, ...range(total - rightItemCount, total)];
|
|
50
|
+
}
|
|
51
|
+
return [
|
|
52
|
+
...range(1, boundaries),
|
|
53
|
+
DOTS,
|
|
54
|
+
...range(leftSiblingIndex, rightSiblingIndex),
|
|
55
|
+
DOTS,
|
|
56
|
+
...range(total - boundaries + 1, total)
|
|
57
|
+
];
|
|
58
|
+
}, [total, siblings, activePage]);
|
|
59
|
+
return {
|
|
60
|
+
range: paginationRange,
|
|
61
|
+
active: activePage,
|
|
62
|
+
setPage,
|
|
63
|
+
next,
|
|
64
|
+
previous,
|
|
65
|
+
first,
|
|
66
|
+
last
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { DOTS, usePagination };
|
|
71
|
+
//# sourceMappingURL=use-pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pagination.js","sources":["../../src/use-pagination/use-pagination.ts"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n rule: (_page) => typeof _page === 'number' && _page <= total,\n });\n\n const setPage = useCallback(\n (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > total) {\n setActivePage(total);\n } else {\n setActivePage(pageNumber);\n }\n },\n [total]\n );\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n // Pages count is determined as siblings (left/right) + boundaries(left/right) + currentPage + 2*DOTS\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n\n /*\n * If the number of pages is less than the page numbers we want to show in our\n * paginationComponent, we return the range [1..total]\n */\n if (totalPageNumbers >= total) {\n return range(1, total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);\n\n /*\n * We do not want to show dots if there is only one position left\n * after/before the left/right page count as that would lead to a change if our Pagination\n * component size which we do not want\n */\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(total - (boundaries - 1), total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(total - rightItemCount, total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(total - boundaries + 1, total),\n ];\n }, [total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sources":["../../../src/utils/range/range.ts"],"sourcesContent":["export function range(start: number, end: number) {\n const length = end - start + 1;\n return Array.from({ length }, (_, index) => index + start);\n}\n"],"names":[],"mappings":"AAAO,SAAS,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AAClC,EAAE,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AAC7D;;;;"}
|
package/lib/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { useLocalStorageValue } from './use-local-storage-value/use-local-storag
|
|
|
18
18
|
export { useMediaQuery } from './use-media-query/use-media-query';
|
|
19
19
|
export { useMergedRef } from './use-merged-ref/use-merged-ref';
|
|
20
20
|
export { useMove, clampUseMovePosition } from './use-move/use-move';
|
|
21
|
+
export { usePagination } from './use-pagination/use-pagination';
|
|
21
22
|
export { useQueue } from './use-queue/use-queue';
|
|
22
23
|
export { useReducedMotion } from './use-reduced-motion/use-reduced-motion';
|
|
23
24
|
export { useScrollLock } from './use-scroll-lock/use-scroll-lock';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/lib/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(c,u){typeof exports=="object"&&typeof module!="undefined"?u(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],u):(c=typeof globalThis!="undefined"?globalThis:c||self,u(c["@mantine/hooks"]={},c.React))})(this,function(c,u){"use strict";function k(){return`mantine-${Math.random().toString(36).substr(2,9)}`}function J(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)}function Z(e){return typeof e!="string"?"":e.charAt(0).toLowerCase()+e.slice(1)}function C(e,t){typeof e=="function"?e(t):typeof e=="object"&&e!==null&&"current"in e&&(e.current=t)}function S({value:e,min:t,max:n}){return Math.min(Math.max(e,t),n)}const N=["mousedown","touchstart"];function x(e,t,n){const o=u.useRef();return u.useEffect(()=>{const r=s=>{Array.isArray(n)?n.every(i=>!!i&&!i.contains(s.target))&&e():o.current&&!o.current.contains(s.target)&&e()};return(t||N).forEach(s=>document.addEventListener(s,r)),()=>{(t||N).forEach(s=>document.removeEventListener(s,r))}},[o,e,n]),o}function ee({timeout:e=2e3}={}){const[t,n]=u.useState(null),[o,r]=u.useState(!1),[s,l]=u.useState(null),i=p=>{clearTimeout(s),l(setTimeout(()=>r(!1),e)),r(p)};return{copy:p=>{"clipboard"in navigator?navigator.clipboard.writeText(p).then(()=>i(!0)).catch(f=>n(f)):n(new Error("useClipboard: navigator.clipboard is not supported"))},reset:()=>{r(!1),n(null),clearTimeout(s)},error:t,copied:o}}function te(e,t){try{return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}catch(n){return e.addListener(t),()=>e.removeListener(t)}}function ne(e){return typeof window!="undefined"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function L(e){const[t,n]=u.useState(ne(e)),o=u.useRef();return u.useEffect(()=>{if("matchMedia"in window)return o.current=window.matchMedia(e),n(o.current.matches),te(o.current,r=>n(r.matches))},[e]),t}function re(){return L("(prefers-color-scheme: dark)")?"dark":"light"}function oe(e,t,n={leading:!1}){const[o,r]=u.useState(e),s=u.useRef(!1),l=u.useRef(null),i=u.useRef(!1),m=()=>window.clearTimeout(l.current);return u.useEffect(()=>{s.current&&(!i.current&&n.leading?(i.current=!0,r(e)):(m(),l.current=window.setTimeout(()=>{i.current=!1,r(e)},t)))},[e,n.leading]),u.useEffect(()=>(s.current=!0,m),[]),[o,m]}const A=typeof document!="undefined"?u.useLayoutEffect:u.useEffect;function ue(e){A(()=>{typeof e=="string"&&e.trim().length>0&&(document.title=e.trim())},[e])}function O(e,t){const n=u.useRef(!1);u.useEffect(()=>{n.current?e():n.current=!0},t)}function se({opened:e,transitionDuration:t}){const n=u.useRef();O(()=>{let o=-1;return e?n.current=document.activeElement:o=window.setTimeout(()=>{var r;n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&((r=n.current)==null||r.focus())},t+10),()=>window.clearTimeout(o)},[e])}const ce=/input|select|textarea|button|object/,D="a, input, select, textarea, button, object, [tabindex]";function ie(e){return process.env.NODE_ENV==="test"?!1:e.style.display==="none"}function le(e){let t=e;for(;t&&t!==document.body;){if(ie(t))return!1;t=t.parentNode}return!0}function M(e){let t=e.getAttribute("tabindex");return t===null&&(t=void 0),parseInt(t,10)}function F(e){const t=e.nodeName.toLowerCase(),n=!Number.isNaN(M(e));return(ce.test(t)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&le(e)}function $(e){const t=M(e);return(Number.isNaN(t)||t>=0)&&F(e)}function j(e){return Array.from(e.querySelectorAll(D)).filter($)}const H=[];let y=null,T=!1;function U(){T=!0}function q(){if(T){if(T=!1,!y||!y||y.contains(document.activeElement))return;(j(y)[0]||y).focus()}}function fe(){H.push(document.activeElement)}function ae(){let e=null;try{e=H.pop(),e&&e.focus()}catch(t){console.warn(["[@mantine/hooks/use-focus-trap] Focus was returned to",e,"but dom node does not exist"].join(" "))}}function de(e){y=e,document.addEventListener("focusout",U,!1),document.addEventListener("focusin",q,!0)}function me(){y=null,document.removeEventListener("focusout",U),document.removeEventListener("focusin",q)}function we(e,t){const n=j(e);if(!n.length){t.preventDefault();return}if(!(n[t.shiftKey?0:n.length-1]===document.activeElement||e===document.activeElement))return;t.preventDefault();const s=n[t.shiftKey?n.length-1:0];s&&s.focus()}function pe(e,t="body > :not(script)"){const n=Array.from(document.querySelectorAll(t)).map(o=>{if(o.contains(e))return;const r=o.getAttribute("aria-hidden");return(r===null||r==="false")&&o.setAttribute("aria-hidden","true"),{node:o,ariaHidden:r}});return()=>{n.forEach(o=>{!o||(o.ariaHidden===null?o.node.removeAttribute("aria-hidden"):o.node.setAttribute("aria-hidden",o.ariaHidden))})}}function he(e=!0){const t=u.useRef(),n=u.useRef(null),o=u.useCallback(r=>{if(!!e)if(n.current&&n.current(),t.current&&(ae(),me()),r){de(r),fe();const s=l=>{n.current=pe(l);let i=r.querySelector("[data-autofocus]");if(!i){const m=Array.from(r.querySelectorAll(D));i=m.find($)||m.find(F)||null,!i&&F(r)&&(i=r)}i?i.focus():process.env.NODE_ENV==="development"&&console.warn("[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node",r)};setTimeout(()=>{r.ownerDocument?s(r):process.env.NODE_ENV==="development"&&console.warn("[@mantine/hooks/use-focus-trap] Ref node is not part of the dom",r)}),t.current=r}else t.current=null},[e]);return u.useEffect(()=>{if(!e)return;const r=s=>{s.key==="Tab"&&t.current&&we(t.current,s)};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[e]),o}const Ee=e=>(e+1)%1e6;function ve(){const[,e]=u.useReducer(Ee,0);return e}var ye=Object.defineProperty,ge=Object.defineProperties,be=Object.getOwnPropertyDescriptors,K=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable,B=(e,t,n)=>t in e?ye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,P=(e,t)=>{for(var n in t||(t={}))Se.call(t,n)&&B(e,n,t[n]);if(K)for(var n of K(t))_e.call(t,n)&&B(e,n,t[n]);return e},R=(e,t)=>ge(e,be(t));function Le({initialValues:e,validationRules:t={}}){const n=Object.keys(e).reduce((a,w)=>(a[w]=!1,a),{}),[o,r]=u.useState(n),[s,l]=u.useState(e),i=()=>r(n),m=()=>{l(e),i()},v=()=>{let a=!0;const w=Object.keys(s).reduce((E,g)=>(t&&typeof t[g]=="function"&&!t[g](s[g])?(E[g]=!0,a=!1):E[g]=!1,E),{});return r(w),a},p=a=>r(w=>R(P({},w),{[a]:typeof t[a]=="function"?!t[a](s[a]):!1})),f=(a,w)=>r(E=>R(P({},E),{[a]:w}));return{values:s,errors:o,validate:v,reset:m,setErrors:r,setValues:l,setFieldValue:(a,w)=>{l(E=>R(P({},E),{[a]:w})),f(a,!1)},setFieldError:f,validateField:p,resetErrors:i,onSubmit:a=>w=>{w&&w.preventDefault(),v()&&a(s)}}}function Oe(e,t=k){const n=u.useRef(t());return e||n.current}const Fe=["keypress","mousemove","touchmove","click","scroll"];function Te(e,t=Fe){const[n,o]=u.useState(!0),r=u.useRef();return u.useEffect(()=>{const s=()=>{o(!1),r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{o(!0)},e)};return t.forEach(l=>document.addEventListener(l,s)),()=>{t.forEach(l=>document.removeEventListener(l,s))}},[e]),n}function Pe(e,t){const[n,o]=u.useState(!1),r=u.useRef(),s=()=>{o(!0),r.current=window.setInterval(e,t)},l=()=>{o(!1),window.clearInterval(r.current)};return{start:s,stop:l,toggle:()=>{n?l():s()},active:n}}var Re=Object.defineProperty,Ie=Object.defineProperties,ke=Object.getOwnPropertyDescriptors,V=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ne=Object.prototype.propertyIsEnumerable,Q=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ae=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&Q(e,n,t[n]);if(V)for(var n of V(t))Ne.call(t,n)&&Q(e,n,t[n]);return e},De=(e,t)=>Ie(e,ke(t));function Me(e=[]){const[t,n]=u.useState(e);return[t,{setState:n,append:(...f)=>n(d=>[...d,...f]),prepend:(...f)=>n(d=>[...f,...d]),insert:(f,...d)=>n(h=>[...h.slice(0,f),...d,...h.slice(f)]),apply:f=>n(d=>d.map((h,a)=>f(h,a))),remove:(...f)=>n(d=>d.filter((h,a)=>!f.includes(a))),reorder:({from:f,to:d})=>n(h=>{const a=[...h],w=h[f];return a.splice(f,1),a.splice(d,0,w),a}),setItem:(f,d)=>n(h=>{const a=[...h];return a[f]=d,a}),setItemProp:(f,d,h)=>n(a=>{const w=[...a];return w[f]=De(Ae({},w[f]),{[d]:h}),w})}]}function _(e,t,n){u.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[])}function $e({key:e,defaultValue:t=void 0}){const[n,o]=u.useState(typeof window!="undefined"&&"localStorage"in window?window.localStorage.getItem(e):t!=null?t:""),r=u.useCallback(s=>{typeof s=="function"?o(l=>{const i=s(l);return window.localStorage.setItem(e,i),i}):(window.localStorage.setItem(e,s),o(s))},[e]);return _("storage",s=>{s.storageArea===window.localStorage&&s.key===e&&o(s.newValue)}),u.useEffect(()=>{t&&!n&&r(t)},[t,n,r]),[n,r]}function je(...e){return t=>{e.forEach(n=>C(n,t))}}const He=e=>({x:S({min:0,max:1,value:e.x}),y:S({min:0,max:1,value:e.y})});function Ue(e){const t=u.useRef(),n=u.useRef(!1),o=u.useRef(!1),r=u.useRef(0),[s,l]=u.useState(!1);return u.useEffect(()=>{n.current=!0},[]),u.useEffect(()=>{const i=({x:E,y:g})=>{cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{if(n.current&&t.current){t.current.style.userSelect="none";const b=t.current.getBoundingClientRect();b.width&&b.height&&e({x:S({value:(E-b.left)/b.width,min:0,max:1}),y:S({value:(g-b.top)/b.height,min:0,max:1})})}})},m=()=>{document.addEventListener("mousemove",h),document.addEventListener("mouseup",f),document.addEventListener("touchmove",w),document.addEventListener("touchend",f)},v=()=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",f),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",f)},p=()=>{!o.current&&n.current&&(o.current=!0,l(!0),m())},f=()=>{o.current&&n.current&&(o.current=!1,l(!1),v())},d=E=>{p(),h(E)},h=E=>i({x:E.clientX,y:E.clientY}),a=E=>{p(),w(E)},w=E=>i({x:E.changedTouches[0].clientX,y:E.changedTouches[0].clientY});return t.current.addEventListener("mousedown",d),t.current.addEventListener("touchstart",a),()=>{t.current&&(t.current.removeEventListener("mousedown",d),t.current.removeEventListener("touchstart",a))}},[t.current]),{ref:t,active:s}}function qe({initialValues:e=[],limit:t}){const[{state:n,queue:o},r]=u.useState({state:e.slice(0,t),queue:e.slice(t)});return{state:n,queue:o,add:(...m)=>r(v=>{const p=[...v.state,...v.queue,...m];return{state:p.slice(0,t),queue:p.slice(t)}}),update:m=>r(v=>{const p=m([...v.state,...v.queue]);return{state:p.slice(0,t),queue:p.slice(t)}}),cleanQueue:()=>r(m=>({state:m.state,queue:[]}))}}function Ke(){return L("(prefers-reduced-motion: reduce)")}function Be(e){const[t,n]=u.useState(e||!1),o=u.useRef(!1),r=u.useRef(null),s=()=>{o.current&&(o.current=!1,document.body.style.overflow=r.current||"")},l=()=>{o.current=!0,r.current=document.body.style.overflow,document.body.style.overflow="hidden"};return u.useEffect(()=>(t?l():s(),s),[t]),u.useEffect(()=>{e!==void 0&&n(e)},[e]),u.useEffect(()=>{e===void 0&&typeof window!="undefined"&&window.document.body.style.overflow==="hidden"&&n(!0)},[n]),[t,n]}function Ve(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;const n=Object.keys(e),{length:o}=n;for(let r=0;r<o;r+=1)if(!(n[r]in t))return!1;for(let r=0;r<o;r+=1)if(e[n[r]]!==t[n[r]])return!1;return o===Object.keys(t).length}function Qe(e,t){if(!e||!t)return!1;if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!Ve(e[n],t[n]))return!1;return!0}function ze(e){const t=u.useRef([]),n=u.useRef(0);return Qe(t.current,e)||(t.current=e,n.current+=1),[n.current]}function We(e,t){u.useEffect(e,ze(t))}function z(e,t){const[n,o]=u.useState(e);return[n,s=>{typeof s!="undefined"?o(s):o(l=>l===t[0]?t[1]:t[0])}]}function Xe(e=!1){return z(e,[!0,!1])}function Ye({value:e,defaultValue:t,finalValue:n,rule:o,onChange:r,onValueUpdate:s}){const l=o(e),i=u.useRef("initial"),m=o(t)?t:n,[v,p]=u.useState(m);let f=l?e:v;!l&&i.current==="controlled"&&(f=n),i.current=l?"controlled":"uncontrolled";const d=i.current,h=a=>{typeof r=="function"&&r(a),d==="uncontrolled"&&p(a)};return u.useEffect(()=>{d==="uncontrolled"&&p(f),typeof s=="function"&&s(f)},[d,f]),[f,h,i.current]}function I(){return typeof window!="undefined"?{x:window.pageXOffset,y:window.pageYOffset}:{x:0,y:0}}function Ge({x:e,y:t}){if(typeof window!="undefined"){const n={behavior:"smooth"};typeof e=="number"&&(n.left=e),typeof t=="number"&&(n.top=t),window.scrollTo(n)}}function Je(){const[e,t]=u.useState(I());return _("scroll",()=>t(I())),_("resize",()=>t(I())),[e,Ge]}function Ze(e){const[t,n]=u.useState(null),o=u.useRef();return[u.useCallback(s=>{if(o.current&&(o.current.disconnect(),o.current=null),s===null){n(null);return}o.current=new IntersectionObserver(([l])=>{n(l)},e),o.current.observe(s)},[e==null?void 0:e.rootMargin,e==null?void 0:e.root,e==null?void 0:e.threshold]),t]}function xe(){const[e,t]=u.useState(null),n=o=>{window.location.hash=o,t(o)};return _("hashchange",()=>{t(window.location.hash)}),[e,n]}var et=Object.defineProperty,tt=Object.defineProperties,nt=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,rt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,X=(e,t,n)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ut=(e,t)=>{for(var n in t||(t={}))rt.call(t,n)&&X(e,n,t[n]);if(W)for(var n of W(t))ot.call(t,n)&&X(e,n,t[n]);return e},st=(e,t)=>tt(e,nt(t));function ct(e){const t=e.toLowerCase().split("+").map(s=>s.trim()),n={alt:t.includes("alt"),ctrl:t.includes("ctrl"),meta:t.includes("meta"),mod:t.includes("mod"),shift:t.includes("shift")},o=["alt","ctrl","meta","shift","mod"],r=t.find(s=>!o.includes(s));return st(ut({},n),{key:r})}function it(e,t){const{alt:n,ctrl:o,meta:r,mod:s,shift:l,key:i}=e,{altKey:m,ctrlKey:v,metaKey:p,shiftKey:f,key:d}=t;if(n!==m)return!1;if(s){if(!v&&!p)return!1}else if(o!==v||r!==p)return!1;return l!==f?!1:!!(i&&(d.toLowerCase()===i.toLowerCase()||t.code.replace("Key","").toLowerCase()===i.toLowerCase()))}function Y(e){return t=>it(ct(e),t)}function lt(e){return t=>{e.forEach(([n,o])=>{Y(n)(t.nativeEvent)&&(t.preventDefault(),o(t))})}}function ft(e){u.useEffect(()=>{const t=n=>{e.forEach(([o,r])=>{Y(o)(n)&&(n.preventDefault(),r(n))})};return document.documentElement.addEventListener("keydown",t),()=>document.documentElement.removeEventListener("keydown",t)},[e])}function G(){const e=window.document;return e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement}async function at(){const e=window.document;return typeof e.exitFullscreen=="function"?e.exitFullscreen():typeof e.msExitFullscreen=="function"?e.msExitFullscreen():typeof e.webkitExitFullscreen=="function"?e.webkitExitFullscreen():typeof e.mozCancelFullScreen=="function"?e.mozCancelFullScreen():null}function dt(){const[e,t]=u.useState(!1),n=u.useRef(),o=u.useCallback(i=>{t(i.target===G())},[t]),r=u.useCallback(i=>{t(!1),console.error(`[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${i} (${i.target})`)},[t]),s=u.useCallback(async()=>{G()?await at():await n.current.requestFullscreen()},[]),l=u.useCallback(i=>{n.current&&(n.current.removeEventListener("fullscreenchange",o),n.current.removeEventListener("fullscreenerror",r),n.current=null),i===null?n.current=window.document.documentElement:n.current=i,n.current.addEventListener("fullscreenchange",o),n.current.addEventListener("fullscreenerror",r)},[]);return u.useEffect(()=>{!n.current&&window.document&&(n.current=window.document.documentElement,n.current.addEventListener("fullscreenchange",o),n.current.addEventListener("fullscreenerror",r))},[]),{ref:l,toggle:s,fullscreen:e}}function mt(e,t){return u.useEffect(()=>(console.log(`${e} mounted`,...t),()=>console.log(`${e} unmounted`)),[]),O(()=>{console.log(`${e} updated`,...t)}),null}c.assignRef=C,c.clamp=S,c.clampUseMovePosition=He,c.getHotkeyHandler=lt,c.lowerFirst=Z,c.randomId=k,c.upperFirst=J,c.useBooleanToggle=Xe,c.useClickOutside=x,c.useClipboard=ee,c.useColorScheme=re,c.useDebouncedValue=oe,c.useDidUpdate=O,c.useDocumentTitle=ue,c.useFocusReturn=se,c.useFocusTrap=he,c.useForceUpdate=ve,c.useForm=Le,c.useFullscreen=dt,c.useHash=xe,c.useHotkeys=ft,c.useId=Oe,c.useIdle=Te,c.useIntersection=Ze,c.useInterval=Pe,c.useIsomorphicEffect=A,c.useListState=Me,c.useLocalStorageValue=$e,c.useLogger=mt,c.useMediaQuery=L,c.useMergedRef=je,c.useMove=Ue,c.useQueue=qe,c.useReducedMotion=Ke,c.useScrollLock=Be,c.useShallowEffect=We,c.useToggle=z,c.useUncontrolled=Ye,c.useWindowEvent=_,c.useWindowScroll=Je,Object.defineProperty(c,"__esModule",{value:!0})});
|
|
1
|
+
(function(c,u){typeof exports=="object"&&typeof module!="undefined"?u(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],u):(c=typeof globalThis!="undefined"?globalThis:c||self,u(c["@mantine/hooks"]={},c.React))})(this,function(c,u){"use strict";function M(e,t){typeof e=="function"?e(t):typeof e=="object"&&e!==null&&"current"in e&&(e.current=t)}function _({value:e,min:t,max:n}){return Math.min(Math.max(e,t),n)}function ne(e){return typeof e!="string"?"":e.charAt(0).toLowerCase()+e.slice(1)}function A(){return`mantine-${Math.random().toString(36).substr(2,9)}`}function y(e,t){const n=t-e+1;return Array.from({length:n},(o,r)=>r+e)}function N(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;const n=Object.keys(e),{length:o}=n;for(let r=0;r<o;r+=1)if(!(n[r]in t))return!1;for(let r=0;r<o;r+=1)if(e[n[r]]!==t[n[r]])return!1;return o===Object.keys(t).length}function re(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)}const $=["mousedown","touchstart"];function oe(e,t,n){const o=u.useRef();return u.useEffect(()=>{const r=s=>{Array.isArray(n)?n.every(i=>!!i&&!i.contains(s.target))&&e():o.current&&!o.current.contains(s.target)&&e()};return(t||$).forEach(s=>document.addEventListener(s,r)),()=>{(t||$).forEach(s=>document.removeEventListener(s,r))}},[o,e,n]),o}function ue({timeout:e=2e3}={}){const[t,n]=u.useState(null),[o,r]=u.useState(!1),[s,l]=u.useState(null),i=h=>{clearTimeout(s),l(setTimeout(()=>r(!1),e)),r(h)};return{copy:h=>{"clipboard"in navigator?navigator.clipboard.writeText(h).then(()=>i(!0)).catch(a=>n(a)):n(new Error("useClipboard: navigator.clipboard is not supported"))},reset:()=>{r(!1),n(null),clearTimeout(s)},error:t,copied:o}}function se(e,t){try{return e.addEventListener("change",t),()=>e.removeEventListener("change",t)}catch(n){return e.addListener(t),()=>e.removeListener(t)}}function ce(e){return typeof window!="undefined"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function F(e){const[t,n]=u.useState(ce(e)),o=u.useRef();return u.useEffect(()=>{if("matchMedia"in window)return o.current=window.matchMedia(e),n(o.current.matches),se(o.current,r=>n(r.matches))},[e]),t}function ie(){return F("(prefers-color-scheme: dark)")?"dark":"light"}function le(e,t,n={leading:!1}){const[o,r]=u.useState(e),s=u.useRef(!1),l=u.useRef(null),i=u.useRef(!1),d=()=>window.clearTimeout(l.current);return u.useEffect(()=>{s.current&&(!i.current&&n.leading?(i.current=!0,r(e)):(d(),l.current=window.setTimeout(()=>{i.current=!1,r(e)},t)))},[e,n.leading]),u.useEffect(()=>(s.current=!0,d),[]),[o,d]}const j=typeof document!="undefined"?u.useLayoutEffect:u.useEffect;function fe(e){j(()=>{typeof e=="string"&&e.trim().length>0&&(document.title=e.trim())},[e])}function T(e,t){const n=u.useRef(!1);u.useEffect(()=>{n.current?e():n.current=!0},t)}function ae({opened:e,transitionDuration:t}){const n=u.useRef();T(()=>{let o=-1;return e?n.current=document.activeElement:o=window.setTimeout(()=>{var r;n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&((r=n.current)==null||r.focus())},t+10),()=>window.clearTimeout(o)},[e])}const de=/input|select|textarea|button|object/,H="a, input, select, textarea, button, object, [tabindex]";function me(e){return process.env.NODE_ENV==="test"?!1:e.style.display==="none"}function we(e){let t=e;for(;t&&t!==document.body;){if(me(t))return!1;t=t.parentNode}return!0}function q(e){let t=e.getAttribute("tabindex");return t===null&&(t=void 0),parseInt(t,10)}function P(e){const t=e.nodeName.toLowerCase(),n=!Number.isNaN(q(e));return(de.test(t)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&we(e)}function U(e){const t=q(e);return(Number.isNaN(t)||t>=0)&&P(e)}function K(e){return Array.from(e.querySelectorAll(H)).filter(U)}const V=[];let S=null,R=!1;function B(){R=!0}function Q(){if(R){if(R=!1,!S||!S||S.contains(document.activeElement))return;(K(S)[0]||S).focus()}}function he(){V.push(document.activeElement)}function pe(){let e=null;try{e=V.pop(),e&&e.focus()}catch(t){console.warn(["[@mantine/hooks/use-focus-trap] Focus was returned to",e,"but dom node does not exist"].join(" "))}}function Ee(e){S=e,document.addEventListener("focusout",B,!1),document.addEventListener("focusin",Q,!0)}function ve(){S=null,document.removeEventListener("focusout",B),document.removeEventListener("focusin",Q)}function ge(e,t){const n=K(e);if(!n.length){t.preventDefault();return}if(!(n[t.shiftKey?0:n.length-1]===document.activeElement||e===document.activeElement))return;t.preventDefault();const s=n[t.shiftKey?n.length-1:0];s&&s.focus()}function ye(e,t="body > :not(script)"){const n=Array.from(document.querySelectorAll(t)).map(o=>{if(o.contains(e))return;const r=o.getAttribute("aria-hidden");return(r===null||r==="false")&&o.setAttribute("aria-hidden","true"),{node:o,ariaHidden:r}});return()=>{n.forEach(o=>{!o||(o.ariaHidden===null?o.node.removeAttribute("aria-hidden"):o.node.setAttribute("aria-hidden",o.ariaHidden))})}}function be(e=!0){const t=u.useRef(),n=u.useRef(null),o=u.useCallback(r=>{if(!!e)if(n.current&&n.current(),t.current&&(pe(),ve()),r){Ee(r),he();const s=l=>{n.current=ye(l);let i=r.querySelector("[data-autofocus]");if(!i){const d=Array.from(r.querySelectorAll(H));i=d.find(U)||d.find(P)||null,!i&&P(r)&&(i=r)}i?i.focus():process.env.NODE_ENV==="development"&&console.warn("[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node",r)};setTimeout(()=>{r.ownerDocument?s(r):process.env.NODE_ENV==="development"&&console.warn("[@mantine/hooks/use-focus-trap] Ref node is not part of the dom",r)}),t.current=r}else t.current=null},[e]);return u.useEffect(()=>{if(!e)return;const r=s=>{s.key==="Tab"&&t.current&&ge(t.current,s)};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[e]),o}const Se=e=>(e+1)%1e6;function _e(){const[,e]=u.useReducer(Se,0);return e}var Le=Object.defineProperty,Oe=Object.defineProperties,Fe=Object.getOwnPropertyDescriptors,z=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,W=(e,t,n)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,I=(e,t)=>{for(var n in t||(t={}))Te.call(t,n)&&W(e,n,t[n]);if(z)for(var n of z(t))Pe.call(t,n)&&W(e,n,t[n]);return e},C=(e,t)=>Oe(e,Fe(t));function Re({initialValues:e,validationRules:t={}}){const n=Object.keys(e).reduce((f,w)=>(f[w]=!1,f),{}),[o,r]=u.useState(n),[s,l]=u.useState(e),i=()=>r(n),d=()=>{l(e),i()},v=()=>{let f=!0;const w=Object.keys(s).reduce((p,g)=>(t&&typeof t[g]=="function"&&!t[g](s[g])?(p[g]=!0,f=!1):p[g]=!1,p),{});return r(w),f},h=f=>r(w=>C(I({},w),{[f]:typeof t[f]=="function"?!t[f](s[f]):!1})),a=(f,w)=>r(p=>C(I({},p),{[f]:w}));return{values:s,errors:o,validate:v,reset:d,setErrors:r,setValues:l,setFieldValue:(f,w)=>{l(p=>C(I({},p),{[f]:w})),a(f,!1)},setFieldError:a,validateField:h,resetErrors:i,onSubmit:f=>w=>{w&&w.preventDefault(),v()&&f(s)}}}function Ie(e,t=A){const n=u.useRef(t());return e||n.current}const Ce=["keypress","mousemove","touchmove","click","scroll"];function ke(e,t=Ce){const[n,o]=u.useState(!0),r=u.useRef();return u.useEffect(()=>{const s=()=>{o(!1),r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{o(!0)},e)};return t.forEach(l=>document.addEventListener(l,s)),()=>{t.forEach(l=>document.removeEventListener(l,s))}},[e]),n}function De(e,t){const[n,o]=u.useState(!1),r=u.useRef(),s=()=>{o(!0),r.current=window.setInterval(e,t)},l=()=>{o(!1),window.clearInterval(r.current)};return{start:s,stop:l,toggle:()=>{n?l():s()},active:n}}var Me=Object.defineProperty,Ae=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,X=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Y=(e,t,n)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,He=(e,t)=>{for(var n in t||(t={}))$e.call(t,n)&&Y(e,n,t[n]);if(X)for(var n of X(t))je.call(t,n)&&Y(e,n,t[n]);return e},qe=(e,t)=>Ae(e,Ne(t));function Ue(e=[]){const[t,n]=u.useState(e);return[t,{setState:n,append:(...a)=>n(m=>[...m,...a]),prepend:(...a)=>n(m=>[...a,...m]),insert:(a,...m)=>n(E=>[...E.slice(0,a),...m,...E.slice(a)]),apply:a=>n(m=>m.map((E,f)=>a(E,f))),remove:(...a)=>n(m=>m.filter((E,f)=>!a.includes(f))),reorder:({from:a,to:m})=>n(E=>{const f=[...E],w=E[a];return f.splice(a,1),f.splice(m,0,w),f}),setItem:(a,m)=>n(E=>{const f=[...E];return f[a]=m,f}),setItemProp:(a,m,E)=>n(f=>{const w=[...f];return w[a]=qe(He({},w[a]),{[m]:E}),w})}]}function L(e,t,n){u.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[])}function Ke({key:e,defaultValue:t=void 0}){const[n,o]=u.useState(typeof window!="undefined"&&"localStorage"in window?window.localStorage.getItem(e):t!=null?t:""),r=u.useCallback(s=>{typeof s=="function"?o(l=>{const i=s(l);return window.localStorage.setItem(e,i),i}):(window.localStorage.setItem(e,s),o(s))},[e]);return L("storage",s=>{s.storageArea===window.localStorage&&s.key===e&&o(s.newValue)}),u.useEffect(()=>{t&&!n&&r(t)},[t,n,r]),[n,r]}function Ve(...e){return t=>{e.forEach(n=>M(n,t))}}const Be=e=>({x:_({min:0,max:1,value:e.x}),y:_({min:0,max:1,value:e.y})});function Qe(e){const t=u.useRef(),n=u.useRef(!1),o=u.useRef(!1),r=u.useRef(0),[s,l]=u.useState(!1);return u.useEffect(()=>{n.current=!0},[]),u.useEffect(()=>{const i=({x:p,y:g})=>{cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{if(n.current&&t.current){t.current.style.userSelect="none";const b=t.current.getBoundingClientRect();b.width&&b.height&&e({x:_({value:(p-b.left)/b.width,min:0,max:1}),y:_({value:(g-b.top)/b.height,min:0,max:1})})}})},d=()=>{document.addEventListener("mousemove",E),document.addEventListener("mouseup",a),document.addEventListener("touchmove",w),document.addEventListener("touchend",a)},v=()=>{document.removeEventListener("mousemove",E),document.removeEventListener("mouseup",a),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",a)},h=()=>{!o.current&&n.current&&(o.current=!0,l(!0),d())},a=()=>{o.current&&n.current&&(o.current=!1,l(!1),v())},m=p=>{h(),E(p)},E=p=>i({x:p.clientX,y:p.clientY}),f=p=>{h(),w(p)},w=p=>i({x:p.changedTouches[0].clientX,y:p.changedTouches[0].clientY});return t.current.addEventListener("mousedown",m),t.current.addEventListener("touchstart",f),()=>{t.current&&(t.current.removeEventListener("mousedown",m),t.current.removeEventListener("touchstart",f))}},[t.current]),{ref:t,active:s}}function G({value:e,defaultValue:t,finalValue:n,rule:o,onChange:r,onValueUpdate:s}){const l=o(e),i=u.useRef("initial"),d=o(t)?t:n,[v,h]=u.useState(d);let a=l?e:v;!l&&i.current==="controlled"&&(a=n),i.current=l?"controlled":"uncontrolled";const m=i.current,E=f=>{typeof r=="function"&&r(f),m==="uncontrolled"&&h(f)};return u.useEffect(()=>{m==="uncontrolled"&&h(a),typeof s=="function"&&s(a)},[m,a]),[a,E,i.current]}const O="dots";function ze({total:e,siblings:t=1,boundaries:n=1,page:o,initialPage:r=1,onChange:s}){const[l,i]=G({value:o,onChange:s,defaultValue:r,finalValue:r,rule:f=>typeof f=="number"&&f<=e}),d=u.useCallback(f=>{f<=0?i(1):f>e?i(e):i(f)},[e]),v=()=>d(l+1),h=()=>d(l-1),a=()=>d(1),m=()=>d(e);return{range:u.useMemo(()=>{if(t*2+3+n*2>=e)return y(1,e);const w=Math.max(l-t,n),p=Math.min(l+t,e-n),g=w>n+2,b=p<e-(n+1);if(!g&&b){const D=t*2+n+2;return[...y(1,D),O,...y(e-(n-1),e)]}if(g&&!b){const D=n+1+2*t;return[...y(1,n),O,...y(e-D,e)]}return[...y(1,n),O,...y(w,p),O,...y(e-n+1,e)]},[e,t,l]),active:l,setPage:d,next:v,previous:h,first:a,last:m}}function We({initialValues:e=[],limit:t}){const[{state:n,queue:o},r]=u.useState({state:e.slice(0,t),queue:e.slice(t)});return{state:n,queue:o,add:(...d)=>r(v=>{const h=[...v.state,...v.queue,...d];return{state:h.slice(0,t),queue:h.slice(t)}}),update:d=>r(v=>{const h=d([...v.state,...v.queue]);return{state:h.slice(0,t),queue:h.slice(t)}}),cleanQueue:()=>r(d=>({state:d.state,queue:[]}))}}function Xe(){return F("(prefers-reduced-motion: reduce)")}function Ye(e){const[t,n]=u.useState(e||!1),o=u.useRef(!1),r=u.useRef(null),s=()=>{o.current&&(o.current=!1,document.body.style.overflow=r.current||"")},l=()=>{o.current=!0,r.current=document.body.style.overflow,document.body.style.overflow="hidden"};return u.useEffect(()=>(t?l():s(),s),[t]),u.useEffect(()=>{e!==void 0&&n(e)},[e]),u.useEffect(()=>{e===void 0&&typeof window!="undefined"&&window.document.body.style.overflow==="hidden"&&n(!0)},[n]),[t,n]}function Ge(e,t){if(!e||!t)return!1;if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!N(e[n],t[n]))return!1;return!0}function Je(e){const t=u.useRef([]),n=u.useRef(0);return Ge(t.current,e)||(t.current=e,n.current+=1),[n.current]}function Ze(e,t){u.useEffect(e,Je(t))}function J(e,t){const[n,o]=u.useState(e);return[n,s=>{typeof s!="undefined"?o(s):o(l=>l===t[0]?t[1]:t[0])}]}function xe(e=!1){return J(e,[!0,!1])}function k(){return typeof window!="undefined"?{x:window.pageXOffset,y:window.pageYOffset}:{x:0,y:0}}function et({x:e,y:t}){if(typeof window!="undefined"){const n={behavior:"smooth"};typeof e=="number"&&(n.left=e),typeof t=="number"&&(n.top=t),window.scrollTo(n)}}function tt(){const[e,t]=u.useState(k());return L("scroll",()=>t(k())),L("resize",()=>t(k())),[e,et]}function nt(e){const[t,n]=u.useState(null),o=u.useRef();return[u.useCallback(s=>{if(o.current&&(o.current.disconnect(),o.current=null),s===null){n(null);return}o.current=new IntersectionObserver(([l])=>{n(l)},e),o.current.observe(s)},[e==null?void 0:e.rootMargin,e==null?void 0:e.root,e==null?void 0:e.threshold]),t]}function rt(){const[e,t]=u.useState(null),n=o=>{window.location.hash=o,t(o)};return L("hashchange",()=>{t(window.location.hash)}),[e,n]}var ot=Object.defineProperty,ut=Object.defineProperties,st=Object.getOwnPropertyDescriptors,Z=Object.getOwnPropertySymbols,ct=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lt=(e,t)=>{for(var n in t||(t={}))ct.call(t,n)&&x(e,n,t[n]);if(Z)for(var n of Z(t))it.call(t,n)&&x(e,n,t[n]);return e},ft=(e,t)=>ut(e,st(t));function at(e){const t=e.toLowerCase().split("+").map(s=>s.trim()),n={alt:t.includes("alt"),ctrl:t.includes("ctrl"),meta:t.includes("meta"),mod:t.includes("mod"),shift:t.includes("shift")},o=["alt","ctrl","meta","shift","mod"],r=t.find(s=>!o.includes(s));return ft(lt({},n),{key:r})}function dt(e,t){const{alt:n,ctrl:o,meta:r,mod:s,shift:l,key:i}=e,{altKey:d,ctrlKey:v,metaKey:h,shiftKey:a,key:m}=t;if(n!==d)return!1;if(s){if(!v&&!h)return!1}else if(o!==v||r!==h)return!1;return l!==a?!1:!!(i&&(m.toLowerCase()===i.toLowerCase()||t.code.replace("Key","").toLowerCase()===i.toLowerCase()))}function ee(e){return t=>dt(at(e),t)}function mt(e){return t=>{e.forEach(([n,o])=>{ee(n)(t.nativeEvent)&&(t.preventDefault(),o(t))})}}function wt(e){u.useEffect(()=>{const t=n=>{e.forEach(([o,r])=>{ee(o)(n)&&(n.preventDefault(),r(n))})};return document.documentElement.addEventListener("keydown",t),()=>document.documentElement.removeEventListener("keydown",t)},[e])}function te(){const e=window.document;return e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement}async function ht(){const e=window.document;return typeof e.exitFullscreen=="function"?e.exitFullscreen():typeof e.msExitFullscreen=="function"?e.msExitFullscreen():typeof e.webkitExitFullscreen=="function"?e.webkitExitFullscreen():typeof e.mozCancelFullScreen=="function"?e.mozCancelFullScreen():null}function pt(){const[e,t]=u.useState(!1),n=u.useRef(),o=u.useCallback(i=>{t(i.target===te())},[t]),r=u.useCallback(i=>{t(!1),console.error(`[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${i} (${i.target})`)},[t]),s=u.useCallback(async()=>{te()?await ht():await n.current.requestFullscreen()},[]),l=u.useCallback(i=>{n.current&&(n.current.removeEventListener("fullscreenchange",o),n.current.removeEventListener("fullscreenerror",r),n.current=null),i===null?n.current=window.document.documentElement:n.current=i,n.current.addEventListener("fullscreenchange",o),n.current.addEventListener("fullscreenerror",r)},[]);return u.useEffect(()=>{!n.current&&window.document&&(n.current=window.document.documentElement,n.current.addEventListener("fullscreenchange",o),n.current.addEventListener("fullscreenerror",r))},[]),{ref:l,toggle:s,fullscreen:e}}function Et(e,t){return u.useEffect(()=>(console.log(`${e} mounted`,...t),()=>console.log(`${e} unmounted`)),[]),T(()=>{console.log(`${e} updated`,...t)}),null}c.assignRef=M,c.clamp=_,c.clampUseMovePosition=Be,c.getHotkeyHandler=mt,c.lowerFirst=ne,c.randomId=A,c.range=y,c.shallowEqual=N,c.upperFirst=re,c.useBooleanToggle=xe,c.useClickOutside=oe,c.useClipboard=ue,c.useColorScheme=ie,c.useDebouncedValue=le,c.useDidUpdate=T,c.useDocumentTitle=fe,c.useFocusReturn=ae,c.useFocusTrap=be,c.useForceUpdate=_e,c.useForm=Re,c.useFullscreen=pt,c.useHash=rt,c.useHotkeys=wt,c.useId=Ie,c.useIdle=ke,c.useIntersection=nt,c.useInterval=De,c.useIsomorphicEffect=j,c.useListState=Ue,c.useLocalStorageValue=Ke,c.useLogger=Et,c.useMediaQuery=F,c.useMergedRef=Ve,c.useMove=Qe,c.usePagination=ze,c.useQueue=We,c.useReducedMotion=Xe,c.useScrollLock=Ye,c.useShallowEffect=Ze,c.useToggle=J,c.useUncontrolled=G,c.useWindowEvent=L,c.useWindowScroll=tt,Object.defineProperty(c,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
package/lib/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/utils/random-id/random-id.ts","../src/utils/upper-first/upper-first.ts","../src/utils/lower-first/lower-first.ts","../src/utils/assign-ref/assign-ref.ts","../src/utils/clamp/clamp.ts","../src/use-click-outside/use-click-outside.ts","../src/use-clipboard/use-clipboard.ts","../src/use-media-query/use-media-query.ts","../src/use-color-scheme/use-color-scheme.ts","../src/use-debounced-value/use-debounced-value.ts","../src/use-isomorphic-effect/use-isomorphic-effect.ts","../src/use-document-title/use-document-title.ts","../src/use-did-update/use-did-update.ts","../src/use-focus-return/use-focus-return.ts","../src/use-focus-trap/tabbable.ts","../src/use-focus-trap/focus-manager.ts","../src/use-focus-trap/scope-tab.ts","../src/use-focus-trap/create-aria-hider.ts","../src/use-focus-trap/use-focus-trap.ts","../src/use-force-update/use-force-update.ts","../src/use-form/use-form.ts","../src/use-id/use-id.ts","../src/use-idle/use-idle.ts","../src/use-interval/use-interval.ts","../src/use-list-state/use-list-state.ts","../src/use-window-event/use-window-event.ts","../src/use-local-storage-value/use-local-storage-value.ts","../src/use-merged-ref/use-merged-ref.ts","../src/use-move/use-move.ts","../src/use-queue/use-queue.ts","../src/use-reduced-motion/use-reduced-motion.ts","../src/use-scroll-lock/use-scroll-lock.ts","../src/utils/shallow-equal/shallow-equal.ts","../src/use-shallow-effect/use-shallow-effect.ts","../src/use-toggle/use-toggle.ts","../src/use-uncontrolled/use-uncontrolled.ts","../src/use-window-scroll/use-window-scroll.ts","../src/use-intersection/use-intersection.ts","../src/use-hash/use-hash.ts","../src/use-hotkey/parse-hotkey.ts","../src/use-hotkey/use-hotkeys.ts","../src/use-fullscreen/use-fullscreen.ts","../src/use-logger/use-logger.ts"],"sourcesContent":["export function randomId() {\n return `mantine-${Math.random().toString(36).substr(2, 9)}`;\n}\n","export function upperFirst(value: string) {\n return typeof value !== 'string' ? '' : value.charAt(0).toUpperCase() + value.slice(1);\n}\n","export function lowerFirst(value: string) {\n return typeof value !== 'string' ? '' : value.charAt(0).toLowerCase() + value.slice(1);\n}\n","import React from 'react';\n\nexport function assignRef<T = any>(ref: React.ForwardedRef<T>, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (typeof ref === 'object' && ref !== null && 'current' in ref) {\n // eslint-disable-next-line no-param-reassign\n ref.current = value;\n }\n}\n","interface Clamp {\n value: number;\n min: number;\n max: number;\n}\n\nexport function clamp({ value, min, max }: Clamp) {\n return Math.min(Math.max(value, min), max);\n}\n","import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n if (Array.isArray(nodes)) {\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));\n shouldTrigger && handler();\n } else if (ref.current && !ref.current.contains(event.target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n","import { useState } from 'react';\n\nexport function useClipboard({ timeout = 2000 } = {}) {\n const [error, setError] = useState<Error>(null);\n const [copied, setCopied] = useState(false);\n const [copyTimeout, setCopyTimeout] = useState(null);\n\n const handleCopyResult = (value: boolean) => {\n clearTimeout(copyTimeout);\n setCopyTimeout(setTimeout(() => setCopied(false), timeout));\n setCopied(value);\n };\n\n const copy = (valueToCopy: any) => {\n if ('clipboard' in navigator) {\n navigator.clipboard\n .writeText(valueToCopy)\n .then(() => handleCopyResult(true))\n .catch((err) => setError(err));\n } else {\n setError(new Error('useClipboard: navigator.clipboard is not supported'));\n }\n };\n\n const reset = () => {\n setCopied(false);\n setError(null);\n clearTimeout(copyTimeout);\n };\n\n return { copy, reset, error, copied };\n}\n","import { useState, useEffect, useRef } from 'react';\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string) {\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n return false;\n}\n\nexport function useMediaQuery(query: string) {\n const [matches, setMatches] = useState(getInitialValue(query));\n const queryRef = useRef<MediaQueryList>();\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n }, [query]);\n\n return matches;\n}\n","import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme() {\n return useMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light';\n}\n","import { useEffect, useState, useRef } from 'react';\n\nexport function useDebouncedValue<T = any>(value: T, wait: number, options = { leading: false }) {\n const [_value, setValue] = useState(value);\n const mountedRef = useRef(false);\n const timeoutRef = useRef<number>(null);\n const cooldownRef = useRef(false);\n\n const cancel = () => window.clearTimeout(timeoutRef.current);\n\n useEffect(() => {\n if (mountedRef.current) {\n if (!cooldownRef.current && options.leading) {\n cooldownRef.current = true;\n setValue(value);\n } else {\n cancel();\n timeoutRef.current = window.setTimeout(() => {\n cooldownRef.current = false;\n setValue(value);\n }, wait);\n }\n }\n }, [value, options.leading]);\n\n useEffect(() => {\n mountedRef.current = true;\n return cancel;\n }, []);\n\n return [_value, cancel] as const;\n}\n","import { useEffect, useLayoutEffect } from 'react';\n\n// useLayoutEffect will show warning if used during ssr, e.g. with Next.js\n// useIsomorphicEffect removes it by replacing useLayoutEffect with useEffect during ssr\nexport const useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n","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","import { useEffect, useRef } from 'react';\n\nexport function useDidUpdate(fn: () => void, dependencies?: any[]) {\n const mounted = useRef(false);\n\n useEffect(() => {\n if (mounted.current) {\n fn();\n } else {\n mounted.current = true;\n }\n }, dependencies);\n}\n","import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer\n * Is not documented as has very limited usage\n */\nexport function useFocusReturn({ opened, transitionDuration }: UseFocusReturn) {\n const returnFocus = useRef<HTMLElement>();\n\n useDidUpdate(() => {\n let timeout = -1;\n\n if (opened) {\n returnFocus.current = document.activeElement as HTMLElement;\n } else {\n timeout = window.setTimeout(() => {\n if (\n returnFocus.current &&\n 'focus' in returnFocus.current &&\n typeof returnFocus.current.focus === 'function'\n ) {\n returnFocus.current?.focus();\n }\n }, transitionDuration + 10);\n }\n\n return () => window.clearTimeout(timeout);\n }, [opened]);\n}\n","const TABBABLE_NODES = /input|select|textarea|button|object/;\nexport const FOCUS_SELECTOR = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(element: HTMLElement) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return element.style.display === 'none';\n}\n\nfunction visible(element: HTMLElement) {\n let parentElement: HTMLElement = element;\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n\n if (hidden(parentElement)) {\n return false;\n }\n\n parentElement = parentElement.parentNode as HTMLElement;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element: HTMLElement) {\n let tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) {\n tabIndex = undefined;\n }\n return parseInt(tabIndex, 10);\n}\n\nexport function focusable(element: HTMLElement) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res =\n // @ts-ignore\n (TABBABLE_NODES.test(nodeName) && !element.disabled) ||\n (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n\n return res && visible(element);\n}\n\nexport function tabbable(element: HTMLElement) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n\nexport function findTabbableDescendants(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll<HTMLElement>(FOCUS_SELECTOR)).filter(tabbable);\n}\n","import { findTabbableDescendants } from './tabbable';\n\nconst focusLaterElements: HTMLElement[] = [];\nlet focusElement: HTMLElement = null;\nlet needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!focusElement) {\n return;\n }\n\n if (!focusElement) {\n return;\n }\n\n if (focusElement.contains(document.activeElement)) {\n return;\n }\n\n const el = findTabbableDescendants(focusElement)[0] || focusElement;\n el.focus();\n }\n}\n\nexport function markForFocusLater() {\n focusLaterElements.push(document.activeElement as HTMLElement);\n}\n\nexport function returnFocus() {\n let toFocus = null;\n try {\n toFocus = focusLaterElements.pop();\n if (toFocus) toFocus.focus();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\n [\n '[@mantine/hooks/use-focus-trap] Focus was returned to',\n toFocus,\n 'but dom node does not exist',\n ].join(' ')\n );\n }\n}\n\nexport function setupScopedFocus(element: HTMLElement) {\n focusElement = element;\n document.addEventListener('focusout', handleBlur, false);\n document.addEventListener('focusin', handleFocus, true);\n}\n\nexport function teardownScopedFocus() {\n focusElement = null;\n document.removeEventListener('focusout', handleBlur);\n document.removeEventListener('focusin', handleFocus);\n}\n","import { findTabbableDescendants } from './tabbable';\n\nexport function scopeTab(node: HTMLElement, event: KeyboardEvent) {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const leavingFinalTabbable =\n finalTabbable === document.activeElement || node === document.activeElement;\n\n if (!leavingFinalTabbable) {\n return;\n }\n\n event.preventDefault();\n\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n\n if (target) {\n target.focus();\n }\n}\n","type Value = {\n node: HTMLElement;\n ariaHidden: string;\n};\n\nexport function createAriaHider(\n containerNode: HTMLElement,\n selector: string = 'body > :not(script)'\n) {\n const rootNodes: Value[] = Array.from<HTMLElement>(document.querySelectorAll(selector)).map(\n (node) => {\n if (node.contains(containerNode)) {\n return undefined;\n }\n\n const ariaHidden = node.getAttribute('aria-hidden');\n\n if (ariaHidden === null || ariaHidden === 'false') {\n node.setAttribute('aria-hidden', 'true');\n }\n\n return { node, ariaHidden };\n }\n );\n\n return () => {\n rootNodes.forEach((item) => {\n if (!item) {\n return;\n }\n\n if (item.ariaHidden === null) {\n item.node.removeAttribute('aria-hidden');\n } else {\n item.node.setAttribute('aria-hidden', item.ariaHidden);\n }\n });\n };\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n markForFocusLater,\n returnFocus,\n setupScopedFocus,\n teardownScopedFocus,\n} from './focus-manager';\nimport { FOCUS_SELECTOR, focusable, tabbable } from './tabbable';\nimport { scopeTab } from './scope-tab';\nimport { createAriaHider } from './create-aria-hider';\n\nexport function useFocusTrap(active = true): (instance: HTMLElement | null) => void {\n const ref = useRef<HTMLElement | null>();\n const restoreAria = useRef<Function | null>(null);\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n if (!active) {\n return;\n }\n\n if (restoreAria.current) {\n restoreAria.current();\n }\n\n if (ref.current) {\n returnFocus();\n teardownScopedFocus();\n }\n\n if (node) {\n setupScopedFocus(node);\n markForFocusLater();\n\n const processNode = (_node: HTMLElement) => {\n restoreAria.current = createAriaHider(_node);\n\n let focusElement: HTMLElement = node.querySelector('[data-autofocus]');\n\n if (!focusElement) {\n const children = Array.from<HTMLElement>(node.querySelectorAll(FOCUS_SELECTOR));\n focusElement = children.find(tabbable) || children.find(focusable) || null;\n if (!focusElement && focusable(node)) focusElement = node;\n }\n\n if (focusElement) {\n focusElement.focus();\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node',\n node\n );\n }\n };\n\n // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n setTimeout(() => {\n if (node.ownerDocument) {\n processNode(node);\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[@mantine/hooks/use-focus-trap] Ref node is not part of the dom', node);\n }\n });\n\n ref.current = node;\n } else {\n ref.current = null;\n }\n },\n [active]\n );\n\n useEffect(() => {\n if (!active) {\n return undefined;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n\n return setRef;\n}\n","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","import React, { useState } from 'react';\n\nexport type ValidationRule<T> = {\n readonly [P in keyof T]?: (value: T[P]) => boolean;\n};\n\nexport interface UseForm<T> {\n validationRules?: ValidationRule<T>;\n initialValues: T;\n}\n\nexport function useForm<T extends { [key: string]: any }>({\n initialValues,\n validationRules = {},\n}: UseForm<T>) {\n type ValidationErrors = Record<keyof T, boolean>;\n\n const initialErrors = Object.keys(initialValues).reduce((acc, field) => {\n acc[field as keyof T] = false;\n return acc;\n }, {} as ValidationErrors);\n\n const [errors, setErrors] = useState(initialErrors);\n const [values, setValues] = useState(initialValues);\n\n const resetErrors = () => setErrors(initialErrors);\n\n const reset = () => {\n setValues(initialValues);\n resetErrors();\n };\n\n const validate = () => {\n let isValid = true;\n\n const validationErrors = Object.keys(values).reduce((acc, field) => {\n if (\n validationRules &&\n typeof validationRules[field] === 'function' &&\n !validationRules[field](values[field])\n ) {\n acc[field as keyof T] = true;\n isValid = false;\n } else {\n acc[field as keyof T] = false;\n }\n\n return acc;\n }, {} as ValidationErrors);\n\n setErrors(validationErrors);\n return isValid;\n };\n\n const validateField = (field: keyof T) =>\n setErrors((currentErrors) => ({\n ...currentErrors,\n [field]:\n typeof validationRules[field] === 'function'\n ? !validationRules[field](values[field])\n : false,\n }));\n\n const setFieldError = (field: keyof T, error: boolean) =>\n setErrors((currentErrors) => ({ ...currentErrors, [field]: error }));\n\n const setFieldValue = <K extends keyof T, U extends T[K]>(field: K, value: U) => {\n setValues((currentValues) => ({ ...currentValues, [field]: value }));\n setFieldError(field, false);\n };\n\n const onSubmit = (handleSubmit: (values: T) => any) => (event?: React.FormEvent) => {\n event && event.preventDefault();\n validate() && handleSubmit(values);\n };\n\n return {\n values,\n errors,\n validate,\n reset,\n setErrors,\n setValues,\n setFieldValue,\n setFieldError,\n validateField,\n resetErrors,\n onSubmit,\n };\n}\n","import { useRef } from 'react';\nimport { randomId } from '../utils';\n\nexport function useId(id?: string, generateId: () => string = randomId) {\n const generatedId = useRef(generateId());\n return id || generatedId.current;\n}\n","import { useState, useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['keypress', 'mousemove', 'touchmove', 'click', 'scroll'];\n\nexport function useIdle(timeout: number, events: string[] = DEFAULT_EVENTS) {\n const [idle, setIdle] = useState<boolean>(true);\n const timer = useRef<number>();\n\n useEffect(() => {\n const handleEvents = () => {\n setIdle(false);\n\n if (timer.current) {\n window.clearTimeout(timer.current);\n }\n\n timer.current = window.setTimeout(() => {\n setIdle(true);\n }, timeout);\n };\n\n events.forEach((event) => document.addEventListener(event, handleEvents));\n\n return () => {\n events.forEach((event) => document.removeEventListener(event, handleEvents));\n };\n }, [timeout]);\n\n return idle;\n}\n","import { useRef, useState } from 'react';\n\nexport function useInterval(fn: () => void, interval: number) {\n const [active, setActive] = useState(false);\n const intervalRef = useRef<number>();\n\n const start = () => {\n setActive(true);\n intervalRef.current = window.setInterval(fn, interval);\n };\n\n const stop = () => {\n setActive(false);\n window.clearInterval(intervalRef.current);\n };\n\n const toggle = () => {\n if (active) {\n stop();\n } else {\n start();\n }\n };\n\n return { start, stop, toggle, active };\n}\n","import { useState } from 'react';\n\nexport function useListState<T>(initialValue: T[] = []) {\n const [state, setState] = useState(initialValue);\n\n const append = (...items: T[]) => setState((current) => [...current, ...items]);\n const prepend = (...items: T[]) => setState((current) => [...items, ...current]);\n\n const insert = (index: number, ...items: T[]) =>\n setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);\n\n const apply = (fn: (item: T, index?: number) => T) =>\n setState((current) => current.map((item, index) => fn(item, index)));\n\n const remove = (...indices: number[]) =>\n setState((current) => current.filter((_, index) => !indices.includes(index)));\n\n const reorder = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const item = current[from];\n\n cloned.splice(from, 1);\n cloned.splice(to, 0, item);\n\n return cloned;\n });\n\n const setItem = (index: number, item: T) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = item;\n return cloned;\n });\n\n const setItemProp = <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = { ...cloned[index], [prop]: value };\n return cloned;\n });\n\n return [\n state,\n {\n setState,\n append,\n prepend,\n insert,\n apply,\n remove,\n reorder,\n setItem,\n setItemProp,\n },\n ] as const;\n}\n","import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends keyof WindowEventMap>(\n type: K,\n listener: (this: Window, ev: WindowEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n useEffect(() => {\n window.addEventListener(type, listener, options);\n return () => window.removeEventListener(type, listener, options);\n }, []);\n}\n","import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useLocalStorageValue<T extends string>({\n key,\n defaultValue = undefined,\n}: {\n key: string;\n defaultValue?: T;\n}) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? (window.localStorage.getItem(key) as T)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (typeof val === 'function') {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, result);\n return result;\n });\n } else {\n window.localStorage.setItem(key, val);\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(event.newValue as T);\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value, setLocalStorageValue] as const;\n}\n","import React from 'react';\nimport { assignRef } from '../utils';\n\ntype Ref<T> = React.Dispatch<React.SetStateAction<T>> | React.ForwardedRef<T>;\n\nexport function useMergedRef<T = any>(...refs: Ref<T>[]) {\n return (node: T | null) => {\n refs.forEach((ref) => assignRef(ref, node));\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { useEffect, useState, useRef } from 'react';\nimport { clamp } from '../utils';\n\nexport interface UseMovePosition {\n x: number;\n y: number;\n}\n\nexport const clampUseMovePosition = (position: UseMovePosition) => ({\n x: clamp({ min: 0, max: 1, value: position.x }),\n y: clamp({ min: 0, max: 1, value: position.y }),\n});\n\nexport function useMove<T extends HTMLElement = HTMLDivElement>(\n onChange: (value: UseMovePosition) => void\n) {\n const ref = useRef<T>();\n const mounted = useRef<boolean>(false);\n const isSliding = useRef(false);\n const frame = useRef(0);\n const [active, setActive] = useState(false);\n\n useEffect(() => {\n mounted.current = true;\n }, []);\n\n useEffect(() => {\n const onScrub = ({ x, y }: UseMovePosition) => {\n cancelAnimationFrame(frame.current);\n\n frame.current = requestAnimationFrame(() => {\n if (mounted.current && ref.current) {\n ref.current.style.userSelect = 'none';\n const rect = ref.current.getBoundingClientRect();\n\n if (rect.width && rect.height) {\n onChange({\n x: clamp({ value: (x - rect.left) / rect.width, min: 0, max: 1 }),\n y: clamp({ value: (y - rect.top) / rect.height, min: 0, max: 1 }),\n });\n }\n }\n });\n };\n\n const bindEvents = () => {\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', stopScrubbing);\n document.addEventListener('touchmove', onTouchMove);\n document.addEventListener('touchend', stopScrubbing);\n };\n\n const unbindEvents = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', stopScrubbing);\n document.removeEventListener('touchmove', onTouchMove);\n document.removeEventListener('touchend', stopScrubbing);\n };\n\n const startScrubbing = () => {\n if (!isSliding.current && mounted.current) {\n isSliding.current = true;\n setActive(true);\n bindEvents();\n }\n };\n\n const stopScrubbing = () => {\n if (isSliding.current && mounted.current) {\n isSliding.current = false;\n setActive(false);\n unbindEvents();\n }\n };\n\n const onMouseDown = (event: MouseEvent) => {\n startScrubbing();\n onMouseMove(event);\n };\n\n const onMouseMove = (event: MouseEvent) => onScrub({ x: event.clientX, y: event.clientY });\n\n const onTouchStart = (event: TouchEvent) => {\n startScrubbing();\n onTouchMove(event);\n };\n\n const onTouchMove = (event: TouchEvent) =>\n onScrub({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY });\n\n ref.current.addEventListener('mousedown', onMouseDown);\n ref.current.addEventListener('touchstart', onTouchStart);\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener('mousedown', onMouseDown);\n ref.current.removeEventListener('touchstart', onTouchStart);\n }\n };\n }, [ref.current]);\n\n return { ref, active };\n}\n","import { useState } from 'react';\n\nexport function useQueue<T>({ initialValues = [], limit }: { initialValues?: T[]; limit: number }) {\n const [{ state, queue }, setState] = useState({\n state: initialValues.slice(0, limit),\n queue: initialValues.slice(limit),\n });\n\n const add = (...items: T[]) =>\n setState((current) => {\n const results = [...current.state, ...current.queue, ...items];\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const update = (fn: (state: T[]) => T[]) =>\n setState((current) => {\n const results = fn([...current.state, ...current.queue]);\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));\n\n return {\n state,\n queue,\n add,\n update,\n cleanQueue,\n };\n}\n","import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion() {\n return useMediaQuery('(prefers-reduced-motion: reduce)');\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport function useScrollLock(lock?: boolean) {\n const [scrollLocked, setScrollLocked] = useState(lock || false);\n\n // value is stored to prevent body overflow styles override with initial useScrollLock(false)\n const locked = useRef(false);\n\n // after scroll is unlocked body overflow style returns to the previous known value\n const bodyOverflow = useRef<React.CSSProperties['overflow']>(null);\n\n const unlockScroll = () => {\n if (locked.current) {\n locked.current = false;\n document.body.style.overflow = bodyOverflow.current || '';\n }\n };\n\n const lockScroll = () => {\n locked.current = true;\n bodyOverflow.current = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n };\n\n useEffect(() => {\n if (scrollLocked) {\n lockScroll();\n } else {\n unlockScroll();\n }\n\n return unlockScroll;\n }, [scrollLocked]);\n\n useEffect(() => {\n if (lock !== undefined) {\n setScrollLocked(lock);\n }\n }, [lock]);\n\n useEffect(() => {\n if (lock === undefined && typeof window !== 'undefined') {\n window.document.body.style.overflow === 'hidden' && setScrollLocked(true);\n }\n }, [setScrollLocked]);\n\n return [scrollLocked, setScrollLocked] as const;\n}\n","export function shallowEqual(a: any, b: any) {\n if (a === b) {\n return true;\n }\n\n if (!(a instanceof Object) || !(b instanceof Object)) {\n return false;\n }\n\n const keys = Object.keys(a);\n const { length } = keys;\n\n for (let i = 0; i < length; i += 1) {\n if (!(keys[i] in b)) {\n return false;\n }\n }\n\n for (let i = 0; i < length; i += 1) {\n if (a[keys[i]] !== b[keys[i]]) {\n return false;\n }\n }\n\n return length === Object.keys(b).length;\n}\n","import { useEffect, useRef } from 'react';\nimport { shallowEqual } from '../utils/shallow-equal/shallow-equal';\n\nfunction shallowCompare(prevValue: React.DependencyList, currValue: React.DependencyList) {\n if (!prevValue || !currValue) {\n return false;\n }\n\n if (prevValue === currValue) {\n return true;\n }\n\n if (prevValue.length !== currValue.length) {\n return false;\n }\n\n for (let i = 0; i < prevValue.length; i += 1) {\n if (!shallowEqual(prevValue[i], currValue[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useShallowCompare(dependencies: React.DependencyList) {\n const ref = useRef<React.DependencyList>([]);\n const updateRef = useRef<number>(0);\n\n if (!shallowCompare(ref.current, dependencies)) {\n ref.current = dependencies;\n updateRef.current += 1;\n }\n\n return [updateRef.current];\n}\n\nexport function useShallowEffect(cb: () => void, dependencies?: React.DependencyList): void {\n useEffect(cb, useShallowCompare(dependencies));\n}\n","import { useState } from 'react';\n\nexport function useToggle<T>(initialValue: T, options: [T, T]) {\n const [state, setState] = useState(initialValue);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n\nexport function useBooleanToggle(initialValue = false) {\n return useToggle(initialValue, [true, false]);\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport type UncontrolledMode = 'initial' | 'controlled' | 'uncontrolled';\n\nexport interface UncontrolledOptions<T> {\n value: T | null | undefined;\n defaultValue: T | null | undefined;\n finalValue: T | null;\n onChange(value: T | null): void;\n onValueUpdate?(value: T | null): void;\n rule: (value: T | null | undefined) => boolean;\n}\n\nexport function useUncontrolled<T>({\n value,\n defaultValue,\n finalValue,\n rule,\n onChange,\n onValueUpdate,\n}: UncontrolledOptions<T>): readonly [T | null, (nextValue: T | null) => void, UncontrolledMode] {\n // determine, whether new props indicate controlled state\n const shouldBeControlled = rule(value);\n\n // initialize state\n const modeRef = useRef<UncontrolledMode>('initial');\n const initialValue = rule(defaultValue) ? defaultValue : finalValue;\n const [uncontrolledValue, setUncontrolledValue] = useState(initialValue);\n\n // compute effective value\n let effectiveValue = shouldBeControlled ? value : uncontrolledValue;\n\n if (!shouldBeControlled && modeRef.current === 'controlled') {\n // We are transitioning from controlled to uncontrolled\n // this transition is special as it happens when clearing out\n // the input using \"invalid\" value (typically null or undefined).\n //\n // Since the value is invalid, doing nothing would mean just\n // transitioning to uncontrolled state and using whatever value\n // it currently holds which is likely not the behavior\n // user expects, so lets change the state to finalValue.\n //\n // The value will be propagated to internal state by useEffect below.\n\n effectiveValue = finalValue;\n }\n\n modeRef.current = shouldBeControlled ? 'controlled' : 'uncontrolled';\n const mode = modeRef.current;\n\n const handleChange = (nextValue: T | null) => {\n typeof onChange === 'function' && onChange(nextValue);\n\n // Controlled input only triggers onChange event and expects\n // the controller to propagate new value back.\n if (mode === 'uncontrolled') {\n setUncontrolledValue(nextValue);\n }\n };\n\n useEffect(() => {\n if (mode === 'uncontrolled') {\n setUncontrolledValue(effectiveValue);\n }\n typeof onValueUpdate === 'function' && onValueUpdate(effectiveValue);\n }, [mode, effectiveValue]);\n\n return [effectiveValue, handleChange, modeRef.current] as const;\n}\n","import { useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface ScrollPosition {\n x: number;\n y: number;\n}\n\nfunction getScrollPosition(): ScrollPosition {\n return typeof window !== 'undefined'\n ? { x: window.pageXOffset, y: window.pageYOffset }\n : { x: 0, y: 0 };\n}\n\nfunction scrollTo({ x, y }: Partial<ScrollPosition>) {\n if (typeof window !== 'undefined') {\n const scrollOptions: ScrollToOptions = { behavior: 'smooth' };\n\n if (typeof x === 'number') {\n scrollOptions.left = x;\n }\n\n if (typeof y === 'number') {\n scrollOptions.top = y;\n }\n\n window.scrollTo(scrollOptions);\n }\n}\n\nexport function useWindowScroll() {\n const [position, setPosition] = useState(getScrollPosition());\n\n useWindowEvent('scroll', () => setPosition(getScrollPosition()));\n useWindowEvent('resize', () => setPosition(getScrollPosition()));\n\n return [position, scrollTo] as const;\n}\n","import { useCallback, useRef, useState } from 'react';\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: ConstructorParameters<typeof IntersectionObserver>[1]\n): readonly [(element: T | null) => void, IntersectionObserverEntry | null] {\n const [entry, setEntry] = useState<IntersectionObserverEntry>(null);\n\n const observer = useRef<IntersectionObserver>();\n\n const ref = useCallback(\n (element: T | null) => {\n if (observer.current) {\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (element === null) {\n setEntry(null);\n return;\n }\n\n observer.current = new IntersectionObserver(([_entry]) => {\n setEntry(_entry);\n }, options);\n\n observer.current.observe(element);\n },\n [options?.rootMargin, options?.root, options?.threshold]\n );\n\n return [ref, entry] as const;\n}\n","import { useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useHash(): readonly [string | null, (hash: string) => void] {\n const [hash, setHashValue] = useState<string>(null);\n\n const setHash = (value: string) => {\n window.location.hash = value;\n setHashValue(value);\n };\n\n useWindowEvent('hashchange', () => {\n setHashValue(window.location.hash);\n });\n\n return [hash, setHash] as const;\n}\n","export type KeyboardModifiers = {\n alt: boolean;\n ctrl: boolean;\n meta: boolean;\n mod: boolean;\n shift: boolean;\n};\n\nexport type Hotkey = KeyboardModifiers & {\n key?: string;\n};\n\ntype CheckHotkeyMatch = (event: KeyboardEvent) => boolean;\n\nexport function parseHotkey(hotkey: string): Hotkey {\n const keys = hotkey\n .toLowerCase()\n .split('+')\n .map((part) => part.trim());\n\n const modifiers: KeyboardModifiers = {\n alt: keys.includes('alt'),\n ctrl: keys.includes('ctrl'),\n meta: keys.includes('meta'),\n mod: keys.includes('mod'),\n shift: keys.includes('shift'),\n };\n\n const reservedKeys = ['alt', 'ctrl', 'meta', 'shift', 'mod'];\n\n const freeKey = keys.find((key) => !reservedKeys.includes(key));\n\n return {\n ...modifiers,\n key: freeKey,\n };\n}\n\nfunction isExactHotkey(hotkey: Hotkey, event: KeyboardEvent): boolean {\n const { alt, ctrl, meta, mod, shift, key } = hotkey;\n const { altKey, ctrlKey, metaKey, shiftKey, key: pressedKey } = event;\n\n if (alt !== altKey) {\n return false;\n }\n\n if (mod) {\n if (!ctrlKey && !metaKey) {\n return false;\n }\n } else {\n if (ctrl !== ctrlKey) {\n return false;\n }\n if (meta !== metaKey) {\n return false;\n }\n }\n if (shift !== shiftKey) {\n return false;\n }\n\n if (\n key &&\n (pressedKey.toLowerCase() === key.toLowerCase() ||\n event.code.replace('Key', '').toLowerCase() === key.toLowerCase())\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function getHotkeyMatcher(hotkey: string): CheckHotkeyMatch {\n return (event) => isExactHotkey(parseHotkey(hotkey), event);\n}\n\ntype HotkeyItem = [string, (event: React.KeyboardEvent<HTMLElement>) => void];\n\nexport function getHotkeyHandler(hotkeys: HotkeyItem[]) {\n return (event: React.KeyboardEvent<HTMLElement>) => {\n hotkeys.forEach(([hotkey, handler]) => {\n if (getHotkeyMatcher(hotkey)(event.nativeEvent)) {\n event.preventDefault();\n handler(event);\n }\n });\n };\n}\n","import { useEffect } from 'react';\nimport { getHotkeyMatcher, getHotkeyHandler } from './parse-hotkey';\n\nexport { getHotkeyHandler };\n\ntype HokeyItem = [string, (event: KeyboardEvent) => void];\n\nexport function useHotkeys(hotkeys: HokeyItem[]) {\n // if (typeof hotkey !== 'string' && process.env.NODE_ENV === 'development') {\n // // eslint-disable-next-line no-console\n // console.error(\n // `[@mantine/hooks] use-hotkey hook received invalid hotkey type, expected string, instead got ${typeof hotkey}`\n // );\n // }\n\n useEffect(() => {\n const keydownListener = (event: KeyboardEvent) => {\n hotkeys.forEach(([hotkey, handler]) => {\n if (getHotkeyMatcher(hotkey)(event)) {\n event.preventDefault();\n handler(event);\n }\n });\n };\n\n document.documentElement.addEventListener('keydown', keydownListener);\n return () => document.documentElement.removeEventListener('keydown', keydownListener);\n }, [hotkeys]);\n}\n","import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const elementRef = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await elementRef.current.requestFullscreen();\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (elementRef.current) {\n elementRef.current.removeEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.removeEventListener('fullscreenerror', handleFullscreenError);\n elementRef.current = null;\n }\n\n if (element === null) {\n elementRef.current = window.document.documentElement as T;\n } else {\n elementRef.current = element;\n }\n\n elementRef.current.addEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.addEventListener('fullscreenerror', handleFullscreenError);\n }, []);\n\n useEffect(() => {\n if (!elementRef.current && window.document) {\n elementRef.current = window.document.documentElement as T;\n elementRef.current.addEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.addEventListener('fullscreenerror', handleFullscreenError);\n }\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n","/* 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 });\n\n return null;\n}\n"],"names":["DEFAULT_EVENTS","useRef","useEffect","useState","useLayoutEffect","useCallback","useReducer","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/utils/assign-ref/assign-ref.ts","../src/utils/clamp/clamp.ts","../src/utils/lower-first/lower-first.ts","../src/utils/random-id/random-id.ts","../src/utils/range/range.ts","../src/utils/shallow-equal/shallow-equal.ts","../src/utils/upper-first/upper-first.ts","../src/use-click-outside/use-click-outside.ts","../src/use-clipboard/use-clipboard.ts","../src/use-media-query/use-media-query.ts","../src/use-color-scheme/use-color-scheme.ts","../src/use-debounced-value/use-debounced-value.ts","../src/use-isomorphic-effect/use-isomorphic-effect.ts","../src/use-document-title/use-document-title.ts","../src/use-did-update/use-did-update.ts","../src/use-focus-return/use-focus-return.ts","../src/use-focus-trap/tabbable.ts","../src/use-focus-trap/focus-manager.ts","../src/use-focus-trap/scope-tab.ts","../src/use-focus-trap/create-aria-hider.ts","../src/use-focus-trap/use-focus-trap.ts","../src/use-force-update/use-force-update.ts","../src/use-form/use-form.ts","../src/use-id/use-id.ts","../src/use-idle/use-idle.ts","../src/use-interval/use-interval.ts","../src/use-list-state/use-list-state.ts","../src/use-window-event/use-window-event.ts","../src/use-local-storage-value/use-local-storage-value.ts","../src/use-merged-ref/use-merged-ref.ts","../src/use-move/use-move.ts","../src/use-uncontrolled/use-uncontrolled.ts","../src/use-pagination/use-pagination.ts","../src/use-queue/use-queue.ts","../src/use-reduced-motion/use-reduced-motion.ts","../src/use-scroll-lock/use-scroll-lock.ts","../src/use-shallow-effect/use-shallow-effect.ts","../src/use-toggle/use-toggle.ts","../src/use-window-scroll/use-window-scroll.ts","../src/use-intersection/use-intersection.ts","../src/use-hash/use-hash.ts","../src/use-hotkey/parse-hotkey.ts","../src/use-hotkey/use-hotkeys.ts","../src/use-fullscreen/use-fullscreen.ts","../src/use-logger/use-logger.ts"],"sourcesContent":["import React from 'react';\n\nexport function assignRef<T = any>(ref: React.ForwardedRef<T>, value: T | null) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (typeof ref === 'object' && ref !== null && 'current' in ref) {\n // eslint-disable-next-line no-param-reassign\n ref.current = value;\n }\n}\n","interface Clamp {\n value: number;\n min: number;\n max: number;\n}\n\nexport function clamp({ value, min, max }: Clamp) {\n return Math.min(Math.max(value, min), max);\n}\n","export function lowerFirst(value: string) {\n return typeof value !== 'string' ? '' : value.charAt(0).toLowerCase() + value.slice(1);\n}\n","export function randomId() {\n return `mantine-${Math.random().toString(36).substr(2, 9)}`;\n}\n","export function range(start: number, end: number) {\n const length = end - start + 1;\n return Array.from({ length }, (_, index) => index + start);\n}\n","export function shallowEqual(a: any, b: any) {\n if (a === b) {\n return true;\n }\n\n if (!(a instanceof Object) || !(b instanceof Object)) {\n return false;\n }\n\n const keys = Object.keys(a);\n const { length } = keys;\n\n for (let i = 0; i < length; i += 1) {\n if (!(keys[i] in b)) {\n return false;\n }\n }\n\n for (let i = 0; i < length; i += 1) {\n if (a[keys[i]] !== b[keys[i]]) {\n return false;\n }\n }\n\n return length === Object.keys(b).length;\n}\n","export function upperFirst(value: string) {\n return typeof value !== 'string' ? '' : value.charAt(0).toUpperCase() + value.slice(1);\n}\n","import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n if (Array.isArray(nodes)) {\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));\n shouldTrigger && handler();\n } else if (ref.current && !ref.current.contains(event.target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n","import { useState } from 'react';\n\nexport function useClipboard({ timeout = 2000 } = {}) {\n const [error, setError] = useState<Error>(null);\n const [copied, setCopied] = useState(false);\n const [copyTimeout, setCopyTimeout] = useState(null);\n\n const handleCopyResult = (value: boolean) => {\n clearTimeout(copyTimeout);\n setCopyTimeout(setTimeout(() => setCopied(false), timeout));\n setCopied(value);\n };\n\n const copy = (valueToCopy: any) => {\n if ('clipboard' in navigator) {\n navigator.clipboard\n .writeText(valueToCopy)\n .then(() => handleCopyResult(true))\n .catch((err) => setError(err));\n } else {\n setError(new Error('useClipboard: navigator.clipboard is not supported'));\n }\n };\n\n const reset = () => {\n setCopied(false);\n setError(null);\n clearTimeout(copyTimeout);\n };\n\n return { copy, reset, error, copied };\n}\n","import { useState, useEffect, useRef } from 'react';\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string) {\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n return false;\n}\n\nexport function useMediaQuery(query: string) {\n const [matches, setMatches] = useState(getInitialValue(query));\n const queryRef = useRef<MediaQueryList>();\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n }, [query]);\n\n return matches;\n}\n","import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme() {\n return useMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light';\n}\n","import { useEffect, useState, useRef } from 'react';\n\nexport function useDebouncedValue<T = any>(value: T, wait: number, options = { leading: false }) {\n const [_value, setValue] = useState(value);\n const mountedRef = useRef(false);\n const timeoutRef = useRef<number>(null);\n const cooldownRef = useRef(false);\n\n const cancel = () => window.clearTimeout(timeoutRef.current);\n\n useEffect(() => {\n if (mountedRef.current) {\n if (!cooldownRef.current && options.leading) {\n cooldownRef.current = true;\n setValue(value);\n } else {\n cancel();\n timeoutRef.current = window.setTimeout(() => {\n cooldownRef.current = false;\n setValue(value);\n }, wait);\n }\n }\n }, [value, options.leading]);\n\n useEffect(() => {\n mountedRef.current = true;\n return cancel;\n }, []);\n\n return [_value, cancel] as const;\n}\n","import { useEffect, useLayoutEffect } from 'react';\n\n// useLayoutEffect will show warning if used during ssr, e.g. with Next.js\n// useIsomorphicEffect removes it by replacing useLayoutEffect with useEffect during ssr\nexport const useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n","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","import { useEffect, useRef } from 'react';\n\nexport function useDidUpdate(fn: () => void, dependencies?: any[]) {\n const mounted = useRef(false);\n\n useEffect(() => {\n if (mounted.current) {\n fn();\n } else {\n mounted.current = true;\n }\n }, dependencies);\n}\n","import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer */\nexport function useFocusReturn({ opened, transitionDuration }: UseFocusReturn) {\n const returnFocus = useRef<HTMLElement>();\n\n useDidUpdate(() => {\n let timeout = -1;\n\n if (opened) {\n returnFocus.current = document.activeElement as HTMLElement;\n } else {\n timeout = window.setTimeout(() => {\n if (\n returnFocus.current &&\n 'focus' in returnFocus.current &&\n typeof returnFocus.current.focus === 'function'\n ) {\n returnFocus.current?.focus();\n }\n }, transitionDuration + 10);\n }\n\n return () => window.clearTimeout(timeout);\n }, [opened]);\n}\n","const TABBABLE_NODES = /input|select|textarea|button|object/;\nexport const FOCUS_SELECTOR = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(element: HTMLElement) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return element.style.display === 'none';\n}\n\nfunction visible(element: HTMLElement) {\n let parentElement: HTMLElement = element;\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n\n if (hidden(parentElement)) {\n return false;\n }\n\n parentElement = parentElement.parentNode as HTMLElement;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element: HTMLElement) {\n let tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) {\n tabIndex = undefined;\n }\n return parseInt(tabIndex, 10);\n}\n\nexport function focusable(element: HTMLElement) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res =\n // @ts-ignore\n (TABBABLE_NODES.test(nodeName) && !element.disabled) ||\n (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n\n return res && visible(element);\n}\n\nexport function tabbable(element: HTMLElement) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n\nexport function findTabbableDescendants(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll<HTMLElement>(FOCUS_SELECTOR)).filter(tabbable);\n}\n","import { findTabbableDescendants } from './tabbable';\n\nconst focusLaterElements: HTMLElement[] = [];\nlet focusElement: HTMLElement = null;\nlet needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!focusElement) {\n return;\n }\n\n if (!focusElement) {\n return;\n }\n\n if (focusElement.contains(document.activeElement)) {\n return;\n }\n\n const el = findTabbableDescendants(focusElement)[0] || focusElement;\n el.focus();\n }\n}\n\nexport function markForFocusLater() {\n focusLaterElements.push(document.activeElement as HTMLElement);\n}\n\nexport function returnFocus() {\n let toFocus = null;\n try {\n toFocus = focusLaterElements.pop();\n if (toFocus) toFocus.focus();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\n [\n '[@mantine/hooks/use-focus-trap] Focus was returned to',\n toFocus,\n 'but dom node does not exist',\n ].join(' ')\n );\n }\n}\n\nexport function setupScopedFocus(element: HTMLElement) {\n focusElement = element;\n document.addEventListener('focusout', handleBlur, false);\n document.addEventListener('focusin', handleFocus, true);\n}\n\nexport function teardownScopedFocus() {\n focusElement = null;\n document.removeEventListener('focusout', handleBlur);\n document.removeEventListener('focusin', handleFocus);\n}\n","import { findTabbableDescendants } from './tabbable';\n\nexport function scopeTab(node: HTMLElement, event: KeyboardEvent) {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const leavingFinalTabbable =\n finalTabbable === document.activeElement || node === document.activeElement;\n\n if (!leavingFinalTabbable) {\n return;\n }\n\n event.preventDefault();\n\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n\n if (target) {\n target.focus();\n }\n}\n","type Value = {\n node: HTMLElement;\n ariaHidden: string;\n};\n\nexport function createAriaHider(\n containerNode: HTMLElement,\n selector: string = 'body > :not(script)'\n) {\n const rootNodes: Value[] = Array.from<HTMLElement>(document.querySelectorAll(selector)).map(\n (node) => {\n if (node.contains(containerNode)) {\n return undefined;\n }\n\n const ariaHidden = node.getAttribute('aria-hidden');\n\n if (ariaHidden === null || ariaHidden === 'false') {\n node.setAttribute('aria-hidden', 'true');\n }\n\n return { node, ariaHidden };\n }\n );\n\n return () => {\n rootNodes.forEach((item) => {\n if (!item) {\n return;\n }\n\n if (item.ariaHidden === null) {\n item.node.removeAttribute('aria-hidden');\n } else {\n item.node.setAttribute('aria-hidden', item.ariaHidden);\n }\n });\n };\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n markForFocusLater,\n returnFocus,\n setupScopedFocus,\n teardownScopedFocus,\n} from './focus-manager';\nimport { FOCUS_SELECTOR, focusable, tabbable } from './tabbable';\nimport { scopeTab } from './scope-tab';\nimport { createAriaHider } from './create-aria-hider';\n\nexport function useFocusTrap(active = true): (instance: HTMLElement | null) => void {\n const ref = useRef<HTMLElement | null>();\n const restoreAria = useRef<Function | null>(null);\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n if (!active) {\n return;\n }\n\n if (restoreAria.current) {\n restoreAria.current();\n }\n\n if (ref.current) {\n returnFocus();\n teardownScopedFocus();\n }\n\n if (node) {\n setupScopedFocus(node);\n markForFocusLater();\n\n const processNode = (_node: HTMLElement) => {\n restoreAria.current = createAriaHider(_node);\n\n let focusElement: HTMLElement = node.querySelector('[data-autofocus]');\n\n if (!focusElement) {\n const children = Array.from<HTMLElement>(node.querySelectorAll(FOCUS_SELECTOR));\n focusElement = children.find(tabbable) || children.find(focusable) || null;\n if (!focusElement && focusable(node)) focusElement = node;\n }\n\n if (focusElement) {\n focusElement.focus();\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node',\n node\n );\n }\n };\n\n // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n setTimeout(() => {\n if (node.ownerDocument) {\n processNode(node);\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[@mantine/hooks/use-focus-trap] Ref node is not part of the dom', node);\n }\n });\n\n ref.current = node;\n } else {\n ref.current = null;\n }\n },\n [active]\n );\n\n useEffect(() => {\n if (!active) {\n return undefined;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n\n return setRef;\n}\n","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","import React, { useState } from 'react';\n\nexport type ValidationRule<T> = {\n readonly [P in keyof T]?: (value: T[P]) => boolean;\n};\n\nexport interface UseForm<T> {\n validationRules?: ValidationRule<T>;\n initialValues: T;\n}\n\nexport function useForm<T extends { [key: string]: any }>({\n initialValues,\n validationRules = {},\n}: UseForm<T>) {\n type ValidationErrors = Record<keyof T, boolean>;\n\n const initialErrors = Object.keys(initialValues).reduce((acc, field) => {\n acc[field as keyof T] = false;\n return acc;\n }, {} as ValidationErrors);\n\n const [errors, setErrors] = useState(initialErrors);\n const [values, setValues] = useState(initialValues);\n\n const resetErrors = () => setErrors(initialErrors);\n\n const reset = () => {\n setValues(initialValues);\n resetErrors();\n };\n\n const validate = () => {\n let isValid = true;\n\n const validationErrors = Object.keys(values).reduce((acc, field) => {\n if (\n validationRules &&\n typeof validationRules[field] === 'function' &&\n !validationRules[field](values[field])\n ) {\n acc[field as keyof T] = true;\n isValid = false;\n } else {\n acc[field as keyof T] = false;\n }\n\n return acc;\n }, {} as ValidationErrors);\n\n setErrors(validationErrors);\n return isValid;\n };\n\n const validateField = (field: keyof T) =>\n setErrors((currentErrors) => ({\n ...currentErrors,\n [field]:\n typeof validationRules[field] === 'function'\n ? !validationRules[field](values[field])\n : false,\n }));\n\n const setFieldError = (field: keyof T, error: boolean) =>\n setErrors((currentErrors) => ({ ...currentErrors, [field]: error }));\n\n const setFieldValue = <K extends keyof T, U extends T[K]>(field: K, value: U) => {\n setValues((currentValues) => ({ ...currentValues, [field]: value }));\n setFieldError(field, false);\n };\n\n const onSubmit = (handleSubmit: (values: T) => any) => (event?: React.FormEvent) => {\n event && event.preventDefault();\n validate() && handleSubmit(values);\n };\n\n return {\n values,\n errors,\n validate,\n reset,\n setErrors,\n setValues,\n setFieldValue,\n setFieldError,\n validateField,\n resetErrors,\n onSubmit,\n };\n}\n","import { useRef } from 'react';\nimport { randomId } from '../utils';\n\nexport function useId(id?: string, generateId: () => string = randomId) {\n const generatedId = useRef(generateId());\n return id || generatedId.current;\n}\n","import { useState, useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['keypress', 'mousemove', 'touchmove', 'click', 'scroll'];\n\nexport function useIdle(timeout: number, events: string[] = DEFAULT_EVENTS) {\n const [idle, setIdle] = useState<boolean>(true);\n const timer = useRef<number>();\n\n useEffect(() => {\n const handleEvents = () => {\n setIdle(false);\n\n if (timer.current) {\n window.clearTimeout(timer.current);\n }\n\n timer.current = window.setTimeout(() => {\n setIdle(true);\n }, timeout);\n };\n\n events.forEach((event) => document.addEventListener(event, handleEvents));\n\n return () => {\n events.forEach((event) => document.removeEventListener(event, handleEvents));\n };\n }, [timeout]);\n\n return idle;\n}\n","import { useRef, useState } from 'react';\n\nexport function useInterval(fn: () => void, interval: number) {\n const [active, setActive] = useState(false);\n const intervalRef = useRef<number>();\n\n const start = () => {\n setActive(true);\n intervalRef.current = window.setInterval(fn, interval);\n };\n\n const stop = () => {\n setActive(false);\n window.clearInterval(intervalRef.current);\n };\n\n const toggle = () => {\n if (active) {\n stop();\n } else {\n start();\n }\n };\n\n return { start, stop, toggle, active };\n}\n","import { useState } from 'react';\n\nexport function useListState<T>(initialValue: T[] = []) {\n const [state, setState] = useState(initialValue);\n\n const append = (...items: T[]) => setState((current) => [...current, ...items]);\n const prepend = (...items: T[]) => setState((current) => [...items, ...current]);\n\n const insert = (index: number, ...items: T[]) =>\n setState((current) => [...current.slice(0, index), ...items, ...current.slice(index)]);\n\n const apply = (fn: (item: T, index?: number) => T) =>\n setState((current) => current.map((item, index) => fn(item, index)));\n\n const remove = (...indices: number[]) =>\n setState((current) => current.filter((_, index) => !indices.includes(index)));\n\n const reorder = ({ from, to }: { from: number; to: number }) =>\n setState((current) => {\n const cloned = [...current];\n const item = current[from];\n\n cloned.splice(from, 1);\n cloned.splice(to, 0, item);\n\n return cloned;\n });\n\n const setItem = (index: number, item: T) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = item;\n return cloned;\n });\n\n const setItemProp = <K extends keyof T, U extends T[K]>(index: number, prop: K, value: U) =>\n setState((current) => {\n const cloned = [...current];\n cloned[index] = { ...cloned[index], [prop]: value };\n return cloned;\n });\n\n return [\n state,\n {\n setState,\n append,\n prepend,\n insert,\n apply,\n remove,\n reorder,\n setItem,\n setItemProp,\n },\n ] as const;\n}\n","import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends keyof WindowEventMap>(\n type: K,\n listener: (this: Window, ev: WindowEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n useEffect(() => {\n window.addEventListener(type, listener, options);\n return () => window.removeEventListener(type, listener, options);\n }, []);\n}\n","import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useLocalStorageValue<T extends string>({\n key,\n defaultValue = undefined,\n}: {\n key: string;\n defaultValue?: T;\n}) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? (window.localStorage.getItem(key) as T)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (typeof val === 'function') {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, result);\n return result;\n });\n } else {\n window.localStorage.setItem(key, val);\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(event.newValue as T);\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value, setLocalStorageValue] as const;\n}\n","import React from 'react';\nimport { assignRef } from '../utils';\n\ntype Ref<T> = React.Dispatch<React.SetStateAction<T>> | React.ForwardedRef<T>;\n\nexport function useMergedRef<T = any>(...refs: Ref<T>[]) {\n return (node: T | null) => {\n refs.forEach((ref) => assignRef(ref, node));\n };\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { useEffect, useState, useRef } from 'react';\nimport { clamp } from '../utils';\n\nexport interface UseMovePosition {\n x: number;\n y: number;\n}\n\nexport const clampUseMovePosition = (position: UseMovePosition) => ({\n x: clamp({ min: 0, max: 1, value: position.x }),\n y: clamp({ min: 0, max: 1, value: position.y }),\n});\n\nexport function useMove<T extends HTMLElement = HTMLDivElement>(\n onChange: (value: UseMovePosition) => void\n) {\n const ref = useRef<T>();\n const mounted = useRef<boolean>(false);\n const isSliding = useRef(false);\n const frame = useRef(0);\n const [active, setActive] = useState(false);\n\n useEffect(() => {\n mounted.current = true;\n }, []);\n\n useEffect(() => {\n const onScrub = ({ x, y }: UseMovePosition) => {\n cancelAnimationFrame(frame.current);\n\n frame.current = requestAnimationFrame(() => {\n if (mounted.current && ref.current) {\n ref.current.style.userSelect = 'none';\n const rect = ref.current.getBoundingClientRect();\n\n if (rect.width && rect.height) {\n onChange({\n x: clamp({ value: (x - rect.left) / rect.width, min: 0, max: 1 }),\n y: clamp({ value: (y - rect.top) / rect.height, min: 0, max: 1 }),\n });\n }\n }\n });\n };\n\n const bindEvents = () => {\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', stopScrubbing);\n document.addEventListener('touchmove', onTouchMove);\n document.addEventListener('touchend', stopScrubbing);\n };\n\n const unbindEvents = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', stopScrubbing);\n document.removeEventListener('touchmove', onTouchMove);\n document.removeEventListener('touchend', stopScrubbing);\n };\n\n const startScrubbing = () => {\n if (!isSliding.current && mounted.current) {\n isSliding.current = true;\n setActive(true);\n bindEvents();\n }\n };\n\n const stopScrubbing = () => {\n if (isSliding.current && mounted.current) {\n isSliding.current = false;\n setActive(false);\n unbindEvents();\n }\n };\n\n const onMouseDown = (event: MouseEvent) => {\n startScrubbing();\n onMouseMove(event);\n };\n\n const onMouseMove = (event: MouseEvent) => onScrub({ x: event.clientX, y: event.clientY });\n\n const onTouchStart = (event: TouchEvent) => {\n startScrubbing();\n onTouchMove(event);\n };\n\n const onTouchMove = (event: TouchEvent) =>\n onScrub({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY });\n\n ref.current.addEventListener('mousedown', onMouseDown);\n ref.current.addEventListener('touchstart', onTouchStart);\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener('mousedown', onMouseDown);\n ref.current.removeEventListener('touchstart', onTouchStart);\n }\n };\n }, [ref.current]);\n\n return { ref, active };\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport type UncontrolledMode = 'initial' | 'controlled' | 'uncontrolled';\n\nexport interface UncontrolledOptions<T> {\n value: T | null | undefined;\n defaultValue: T | null | undefined;\n finalValue: T | null;\n onChange(value: T | null): void;\n onValueUpdate?(value: T | null): void;\n rule: (value: T | null | undefined) => boolean;\n}\n\nexport function useUncontrolled<T>({\n value,\n defaultValue,\n finalValue,\n rule,\n onChange,\n onValueUpdate,\n}: UncontrolledOptions<T>): readonly [T | null, (nextValue: T | null) => void, UncontrolledMode] {\n // determine, whether new props indicate controlled state\n const shouldBeControlled = rule(value);\n\n // initialize state\n const modeRef = useRef<UncontrolledMode>('initial');\n const initialValue = rule(defaultValue) ? defaultValue : finalValue;\n const [uncontrolledValue, setUncontrolledValue] = useState(initialValue);\n\n // compute effective value\n let effectiveValue = shouldBeControlled ? value : uncontrolledValue;\n\n if (!shouldBeControlled && modeRef.current === 'controlled') {\n // We are transitioning from controlled to uncontrolled\n // this transition is special as it happens when clearing out\n // the input using \"invalid\" value (typically null or undefined).\n //\n // Since the value is invalid, doing nothing would mean just\n // transitioning to uncontrolled state and using whatever value\n // it currently holds which is likely not the behavior\n // user expects, so lets change the state to finalValue.\n //\n // The value will be propagated to internal state by useEffect below.\n\n effectiveValue = finalValue;\n }\n\n modeRef.current = shouldBeControlled ? 'controlled' : 'uncontrolled';\n const mode = modeRef.current;\n\n const handleChange = (nextValue: T | null) => {\n typeof onChange === 'function' && onChange(nextValue);\n\n // Controlled input only triggers onChange event and expects\n // the controller to propagate new value back.\n if (mode === 'uncontrolled') {\n setUncontrolledValue(nextValue);\n }\n };\n\n useEffect(() => {\n if (mode === 'uncontrolled') {\n setUncontrolledValue(effectiveValue);\n }\n typeof onValueUpdate === 'function' && onValueUpdate(effectiveValue);\n }, [mode, effectiveValue]);\n\n return [effectiveValue, handleChange, modeRef.current] as const;\n}\n","import { useMemo, useCallback } from 'react';\nimport { useUncontrolled } from '../use-uncontrolled/use-uncontrolled';\nimport { range } from '../utils';\n\nexport const DOTS = 'dots';\n\nexport interface PaginationParams {\n /** Page selected on initial render, defaults to 1 */\n initialPage?: number;\n\n /** Controlled active page number */\n page?: number;\n\n /** Total amount of pages */\n total: number;\n\n /** Siblings amount on left/right side of selected page, defaults to 1 */\n siblings?: number;\n\n /** Amount of elements visible on left/right edges, defaults to 1 */\n boundaries?: number;\n\n /** Callback fired after change of each page */\n onChange?: (page: number) => void;\n}\n\nexport function usePagination({\n total,\n siblings = 1,\n boundaries = 1,\n page,\n initialPage = 1,\n onChange,\n}: PaginationParams) {\n const [activePage, setActivePage] = useUncontrolled({\n value: page,\n onChange,\n defaultValue: initialPage,\n finalValue: initialPage,\n rule: (_page) => typeof _page === 'number' && _page <= total,\n });\n\n const setPage = useCallback(\n (pageNumber: number) => {\n if (pageNumber <= 0) {\n setActivePage(1);\n } else if (pageNumber > total) {\n setActivePage(total);\n } else {\n setActivePage(pageNumber);\n }\n },\n [total]\n );\n\n const next = () => setPage(activePage + 1);\n const previous = () => setPage(activePage - 1);\n const first = () => setPage(1);\n const last = () => setPage(total);\n\n const paginationRange = useMemo((): (number | 'dots')[] => {\n // Pages count is determined as siblings (left/right) + boundaries(left/right) + currentPage + 2*DOTS\n const totalPageNumbers = siblings * 2 + 3 + boundaries * 2;\n\n /*\n * If the number of pages is less than the page numbers we want to show in our\n * paginationComponent, we return the range [1..total]\n */\n if (totalPageNumbers >= total) {\n return range(1, total);\n }\n\n const leftSiblingIndex = Math.max(activePage - siblings, boundaries);\n const rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);\n\n /*\n * We do not want to show dots if there is only one position left\n * after/before the left/right page count as that would lead to a change if our Pagination\n * component size which we do not want\n */\n const shouldShowLeftDots = leftSiblingIndex > boundaries + 2;\n const shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = siblings * 2 + boundaries + 2;\n return [...range(1, leftItemCount), DOTS, ...range(total - (boundaries - 1), total)];\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = boundaries + 1 + 2 * siblings;\n return [...range(1, boundaries), DOTS, ...range(total - rightItemCount, total)];\n }\n\n return [\n ...range(1, boundaries),\n DOTS,\n ...range(leftSiblingIndex, rightSiblingIndex),\n DOTS,\n ...range(total - boundaries + 1, total),\n ];\n }, [total, siblings, activePage]);\n\n return {\n range: paginationRange,\n active: activePage,\n setPage,\n next,\n previous,\n first,\n last,\n };\n}\n","import { useState } from 'react';\n\nexport function useQueue<T>({ initialValues = [], limit }: { initialValues?: T[]; limit: number }) {\n const [{ state, queue }, setState] = useState({\n state: initialValues.slice(0, limit),\n queue: initialValues.slice(limit),\n });\n\n const add = (...items: T[]) =>\n setState((current) => {\n const results = [...current.state, ...current.queue, ...items];\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const update = (fn: (state: T[]) => T[]) =>\n setState((current) => {\n const results = fn([...current.state, ...current.queue]);\n\n return {\n state: results.slice(0, limit),\n queue: results.slice(limit),\n };\n });\n\n const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));\n\n return {\n state,\n queue,\n add,\n update,\n cleanQueue,\n };\n}\n","import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion() {\n return useMediaQuery('(prefers-reduced-motion: reduce)');\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport function useScrollLock(lock?: boolean) {\n const [scrollLocked, setScrollLocked] = useState(lock || false);\n\n // value is stored to prevent body overflow styles override with initial useScrollLock(false)\n const locked = useRef(false);\n\n // after scroll is unlocked body overflow style returns to the previous known value\n const bodyOverflow = useRef<React.CSSProperties['overflow']>(null);\n\n const unlockScroll = () => {\n if (locked.current) {\n locked.current = false;\n document.body.style.overflow = bodyOverflow.current || '';\n }\n };\n\n const lockScroll = () => {\n locked.current = true;\n bodyOverflow.current = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n };\n\n useEffect(() => {\n if (scrollLocked) {\n lockScroll();\n } else {\n unlockScroll();\n }\n\n return unlockScroll;\n }, [scrollLocked]);\n\n useEffect(() => {\n if (lock !== undefined) {\n setScrollLocked(lock);\n }\n }, [lock]);\n\n useEffect(() => {\n if (lock === undefined && typeof window !== 'undefined') {\n window.document.body.style.overflow === 'hidden' && setScrollLocked(true);\n }\n }, [setScrollLocked]);\n\n return [scrollLocked, setScrollLocked] as const;\n}\n","import { useEffect, useRef } from 'react';\nimport { shallowEqual } from '../utils/shallow-equal/shallow-equal';\n\nfunction shallowCompare(prevValue: React.DependencyList, currValue: React.DependencyList) {\n if (!prevValue || !currValue) {\n return false;\n }\n\n if (prevValue === currValue) {\n return true;\n }\n\n if (prevValue.length !== currValue.length) {\n return false;\n }\n\n for (let i = 0; i < prevValue.length; i += 1) {\n if (!shallowEqual(prevValue[i], currValue[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useShallowCompare(dependencies: React.DependencyList) {\n const ref = useRef<React.DependencyList>([]);\n const updateRef = useRef<number>(0);\n\n if (!shallowCompare(ref.current, dependencies)) {\n ref.current = dependencies;\n updateRef.current += 1;\n }\n\n return [updateRef.current];\n}\n\nexport function useShallowEffect(cb: () => void, dependencies?: React.DependencyList): void {\n useEffect(cb, useShallowCompare(dependencies));\n}\n","import { useState } from 'react';\n\nexport function useToggle<T>(initialValue: T, options: [T, T]) {\n const [state, setState] = useState(initialValue);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n\nexport function useBooleanToggle(initialValue = false) {\n return useToggle(initialValue, [true, false]);\n}\n","import { useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface ScrollPosition {\n x: number;\n y: number;\n}\n\nfunction getScrollPosition(): ScrollPosition {\n return typeof window !== 'undefined'\n ? { x: window.pageXOffset, y: window.pageYOffset }\n : { x: 0, y: 0 };\n}\n\nfunction scrollTo({ x, y }: Partial<ScrollPosition>) {\n if (typeof window !== 'undefined') {\n const scrollOptions: ScrollToOptions = { behavior: 'smooth' };\n\n if (typeof x === 'number') {\n scrollOptions.left = x;\n }\n\n if (typeof y === 'number') {\n scrollOptions.top = y;\n }\n\n window.scrollTo(scrollOptions);\n }\n}\n\nexport function useWindowScroll() {\n const [position, setPosition] = useState(getScrollPosition());\n\n useWindowEvent('scroll', () => setPosition(getScrollPosition()));\n useWindowEvent('resize', () => setPosition(getScrollPosition()));\n\n return [position, scrollTo] as const;\n}\n","import { useCallback, useRef, useState } from 'react';\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: ConstructorParameters<typeof IntersectionObserver>[1]\n): readonly [(element: T | null) => void, IntersectionObserverEntry | null] {\n const [entry, setEntry] = useState<IntersectionObserverEntry>(null);\n\n const observer = useRef<IntersectionObserver>();\n\n const ref = useCallback(\n (element: T | null) => {\n if (observer.current) {\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (element === null) {\n setEntry(null);\n return;\n }\n\n observer.current = new IntersectionObserver(([_entry]) => {\n setEntry(_entry);\n }, options);\n\n observer.current.observe(element);\n },\n [options?.rootMargin, options?.root, options?.threshold]\n );\n\n return [ref, entry] as const;\n}\n","import { useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useHash(): readonly [string | null, (hash: string) => void] {\n const [hash, setHashValue] = useState<string>(null);\n\n const setHash = (value: string) => {\n window.location.hash = value;\n setHashValue(value);\n };\n\n useWindowEvent('hashchange', () => {\n setHashValue(window.location.hash);\n });\n\n return [hash, setHash] as const;\n}\n","export type KeyboardModifiers = {\n alt: boolean;\n ctrl: boolean;\n meta: boolean;\n mod: boolean;\n shift: boolean;\n};\n\nexport type Hotkey = KeyboardModifiers & {\n key?: string;\n};\n\ntype CheckHotkeyMatch = (event: KeyboardEvent) => boolean;\n\nexport function parseHotkey(hotkey: string): Hotkey {\n const keys = hotkey\n .toLowerCase()\n .split('+')\n .map((part) => part.trim());\n\n const modifiers: KeyboardModifiers = {\n alt: keys.includes('alt'),\n ctrl: keys.includes('ctrl'),\n meta: keys.includes('meta'),\n mod: keys.includes('mod'),\n shift: keys.includes('shift'),\n };\n\n const reservedKeys = ['alt', 'ctrl', 'meta', 'shift', 'mod'];\n\n const freeKey = keys.find((key) => !reservedKeys.includes(key));\n\n return {\n ...modifiers,\n key: freeKey,\n };\n}\n\nfunction isExactHotkey(hotkey: Hotkey, event: KeyboardEvent): boolean {\n const { alt, ctrl, meta, mod, shift, key } = hotkey;\n const { altKey, ctrlKey, metaKey, shiftKey, key: pressedKey } = event;\n\n if (alt !== altKey) {\n return false;\n }\n\n if (mod) {\n if (!ctrlKey && !metaKey) {\n return false;\n }\n } else {\n if (ctrl !== ctrlKey) {\n return false;\n }\n if (meta !== metaKey) {\n return false;\n }\n }\n if (shift !== shiftKey) {\n return false;\n }\n\n if (\n key &&\n (pressedKey.toLowerCase() === key.toLowerCase() ||\n event.code.replace('Key', '').toLowerCase() === key.toLowerCase())\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function getHotkeyMatcher(hotkey: string): CheckHotkeyMatch {\n return (event) => isExactHotkey(parseHotkey(hotkey), event);\n}\n\ntype HotkeyItem = [string, (event: React.KeyboardEvent<HTMLElement>) => void];\n\nexport function getHotkeyHandler(hotkeys: HotkeyItem[]) {\n return (event: React.KeyboardEvent<HTMLElement>) => {\n hotkeys.forEach(([hotkey, handler]) => {\n if (getHotkeyMatcher(hotkey)(event.nativeEvent)) {\n event.preventDefault();\n handler(event);\n }\n });\n };\n}\n","import { useEffect } from 'react';\nimport { getHotkeyMatcher, getHotkeyHandler } from './parse-hotkey';\n\nexport { getHotkeyHandler };\n\ntype HokeyItem = [string, (event: KeyboardEvent) => void];\n\nexport function useHotkeys(hotkeys: HokeyItem[]) {\n // if (typeof hotkey !== 'string' && process.env.NODE_ENV === 'development') {\n // // eslint-disable-next-line no-console\n // console.error(\n // `[@mantine/hooks] use-hotkey hook received invalid hotkey type, expected string, instead got ${typeof hotkey}`\n // );\n // }\n\n useEffect(() => {\n const keydownListener = (event: KeyboardEvent) => {\n hotkeys.forEach(([hotkey, handler]) => {\n if (getHotkeyMatcher(hotkey)(event)) {\n event.preventDefault();\n handler(event);\n }\n });\n };\n\n document.documentElement.addEventListener('keydown', keydownListener);\n return () => document.documentElement.removeEventListener('keydown', keydownListener);\n }, [hotkeys]);\n}\n","import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const elementRef = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await elementRef.current.requestFullscreen();\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (elementRef.current) {\n elementRef.current.removeEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.removeEventListener('fullscreenerror', handleFullscreenError);\n elementRef.current = null;\n }\n\n if (element === null) {\n elementRef.current = window.document.documentElement as T;\n } else {\n elementRef.current = element;\n }\n\n elementRef.current.addEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.addEventListener('fullscreenerror', handleFullscreenError);\n }, []);\n\n useEffect(() => {\n if (!elementRef.current && window.document) {\n elementRef.current = window.document.documentElement as T;\n elementRef.current.addEventListener('fullscreenchange', handleFullscreenChange);\n elementRef.current.addEventListener('fullscreenerror', handleFullscreenError);\n }\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n","/* 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 });\n\n return null;\n}\n"],"names":["DEFAULT_EVENTS","useRef","useEffect","useState","useLayoutEffect","useCallback","useReducer","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","useMemo"],"mappings":"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"}
|
|
@@ -2,9 +2,7 @@ interface UseFocusReturn {
|
|
|
2
2
|
opened: boolean;
|
|
3
3
|
transitionDuration: number;
|
|
4
4
|
}
|
|
5
|
-
/** Returns focus to last active element, used in Modal and Drawer
|
|
6
|
-
* Is not documented as has very limited usage
|
|
7
|
-
*/
|
|
5
|
+
/** Returns focus to last active element, used in Modal and Drawer */
|
|
8
6
|
export declare function useFocusReturn({ opened, transitionDuration }: UseFocusReturn): void;
|
|
9
7
|
export {};
|
|
10
8
|
//# sourceMappingURL=use-focus-return.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-return.d.ts","sourceRoot":"","sources":["../../src/use-focus-return/use-focus-return.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED
|
|
1
|
+
{"version":3,"file":"use-focus-return.d.ts","sourceRoot":"","sources":["../../src/use-focus-return/use-focus-return.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,cAAc,QAsB5E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const DOTS = "dots";
|
|
2
|
+
export interface PaginationParams {
|
|
3
|
+
/** Page selected on initial render, defaults to 1 */
|
|
4
|
+
initialPage?: number;
|
|
5
|
+
/** Controlled active page number */
|
|
6
|
+
page?: number;
|
|
7
|
+
/** Total amount of pages */
|
|
8
|
+
total: number;
|
|
9
|
+
/** Siblings amount on left/right side of selected page, defaults to 1 */
|
|
10
|
+
siblings?: number;
|
|
11
|
+
/** Amount of elements visible on left/right edges, defaults to 1 */
|
|
12
|
+
boundaries?: number;
|
|
13
|
+
/** Callback fired after change of each page */
|
|
14
|
+
onChange?: (page: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function usePagination({ total, siblings, boundaries, page, initialPage, onChange, }: PaginationParams): {
|
|
17
|
+
range: (number | "dots")[];
|
|
18
|
+
active: number;
|
|
19
|
+
setPage: (pageNumber: number) => void;
|
|
20
|
+
next: () => void;
|
|
21
|
+
previous: () => void;
|
|
22
|
+
first: () => void;
|
|
23
|
+
last: () => void;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=use-pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pagination.d.ts","sourceRoot":"","sources":["../../src/use-pagination/use-pagination.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,IAAI,SAAS,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAY,EACZ,UAAc,EACd,IAAI,EACJ,WAAe,EACf,QAAQ,GACT,EAAE,gBAAgB;;;0BAUF,MAAM;;;;;EAoEtB"}
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export { randomId } from './random-id/random-id';
|
|
2
|
-
export { upperFirst } from './upper-first/upper-first';
|
|
3
|
-
export { lowerFirst } from './lower-first/lower-first';
|
|
4
1
|
export { assignRef } from './assign-ref/assign-ref';
|
|
5
2
|
export { clamp } from './clamp/clamp';
|
|
3
|
+
export { lowerFirst } from './lower-first/lower-first';
|
|
4
|
+
export { randomId } from './random-id/random-id';
|
|
5
|
+
export { range } from './range/range';
|
|
6
|
+
export { shallowEqual } from './shallow-equal/shallow-equal';
|
|
7
|
+
export { upperFirst } from './upper-first/upper-first';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/utils/range/range.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAG/C"}
|