@mantine/hooks 4.1.3 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +4 -0
- package/cjs/index.js.map +1 -1
- package/cjs/use-color-scheme/use-color-scheme.js +2 -2
- package/cjs/use-color-scheme/use-color-scheme.js.map +1 -1
- package/cjs/use-focus-within/use-focus-within.js +52 -0
- package/cjs/use-focus-within/use-focus-within.js.map +1 -0
- package/cjs/use-fullscreen/use-fullscreen.js +6 -0
- package/cjs/use-fullscreen/use-fullscreen.js.map +1 -1
- package/cjs/use-local-storage/use-local-storage.js +5 -0
- package/cjs/use-local-storage/use-local-storage.js.map +1 -1
- package/cjs/use-media-query/use-media-query.js +7 -3
- package/cjs/use-media-query/use-media-query.js.map +1 -1
- package/cjs/use-network/use-network.js +56 -0
- package/cjs/use-network/use-network.js.map +1 -0
- package/cjs/use-reduced-motion/use-reduced-motion.js +2 -2
- package/cjs/use-reduced-motion/use-reduced-motion.js.map +1 -1
- package/cjs/use-window-event/use-window-event.js.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/use-color-scheme/use-color-scheme.js +2 -2
- package/esm/use-color-scheme/use-color-scheme.js.map +1 -1
- package/esm/use-focus-within/use-focus-within.js +48 -0
- package/esm/use-focus-within/use-focus-within.js.map +1 -0
- package/esm/use-fullscreen/use-fullscreen.js +6 -0
- package/esm/use-fullscreen/use-fullscreen.js.map +1 -1
- package/esm/use-local-storage/use-local-storage.js +5 -0
- package/esm/use-local-storage/use-local-storage.js.map +1 -1
- package/esm/use-media-query/use-media-query.js +7 -3
- package/esm/use-media-query/use-media-query.js.map +1 -1
- package/esm/use-network/use-network.js +52 -0
- package/esm/use-network/use-network.js.map +1 -0
- package/esm/use-reduced-motion/use-reduced-motion.js +2 -2
- package/esm/use-reduced-motion/use-reduced-motion.js.map +1 -1
- package/esm/use-window-event/use-window-event.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/use-color-scheme/use-color-scheme.d.ts +1 -1
- package/lib/use-color-scheme/use-color-scheme.d.ts.map +1 -1
- package/lib/use-focus-within/use-focus-within.d.ts +10 -0
- package/lib/use-focus-within/use-focus-within.d.ts.map +1 -0
- package/lib/use-fullscreen/use-fullscreen.d.ts.map +1 -1
- package/lib/use-local-storage/use-local-storage.d.ts.map +1 -1
- package/lib/use-media-query/use-media-query.d.ts +1 -1
- package/lib/use-media-query/use-media-query.d.ts.map +1 -1
- package/lib/use-network/use-network.d.ts +8 -0
- package/lib/use-network/use-network.d.ts.map +1 -0
- package/lib/use-reduced-motion/use-reduced-motion.d.ts +1 -1
- package/lib/use-reduced-motion/use-reduced-motion.d.ts.map +1 -1
- package/lib/use-window-event/use-window-event.d.ts +1 -1
- package/lib/use-window-event/use-window-event.d.ts.map +1 -1
- package/package.json +1 -1
package/cjs/index.js
CHANGED
|
@@ -48,6 +48,8 @@ var useSetState = require('./use-set-state/use-set-state.js');
|
|
|
48
48
|
var useInputState = require('./use-input-state/use-input-state.js');
|
|
49
49
|
var useEventListener = require('./use-event-listener/use-event-listener.js');
|
|
50
50
|
var useDisclosure = require('./use-disclosure/use-disclosure.js');
|
|
51
|
+
var useFocusWithin = require('./use-focus-within/use-focus-within.js');
|
|
52
|
+
var useNetwork = require('./use-network/use-network.js');
|
|
51
53
|
var parseHotkey = require('./use-hotkeys/parse-hotkey.js');
|
|
52
54
|
var assignRef = require('./utils/assign-ref/assign-ref.js');
|
|
53
55
|
var clamp = require('./utils/clamp/clamp.js');
|
|
@@ -110,6 +112,8 @@ exports.useSetState = useSetState.useSetState;
|
|
|
110
112
|
exports.useInputState = useInputState.useInputState;
|
|
111
113
|
exports.useEventListener = useEventListener.useEventListener;
|
|
112
114
|
exports.useDisclosure = useDisclosure.useDisclosure;
|
|
115
|
+
exports.useFocusWithin = useFocusWithin.useFocusWithin;
|
|
116
|
+
exports.useNetwork = useNetwork.useNetwork;
|
|
113
117
|
exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
|
|
114
118
|
exports.assignRef = assignRef.assignRef;
|
|
115
119
|
exports.clamp = clamp.clamp;
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var useMediaQuery = require('../use-media-query/use-media-query.js');
|
|
6
6
|
|
|
7
|
-
function useColorScheme() {
|
|
8
|
-
return useMediaQuery.useMediaQuery("(prefers-color-scheme: dark)") ? "dark" : "light";
|
|
7
|
+
function useColorScheme(initialValue) {
|
|
8
|
+
return useMediaQuery.useMediaQuery("(prefers-color-scheme: dark)", initialValue === "dark") ? "dark" : "light";
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
exports.useColorScheme = useColorScheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-color-scheme.js","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme() {\n return useMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light';\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;AACO,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"use-color-scheme.js","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme(initialValue?: 'dark' | 'light') {\n return useMediaQuery('(prefers-color-scheme: dark)', initialValue === 'dark') ? 'dark' : 'light';\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;AACO,SAAS,cAAc,CAAC,YAAY,EAAE;AAC7C,EAAE,OAAOA,2BAAa,CAAC,8BAA8B,EAAE,YAAY,KAAK,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;AACnG;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
function containsRelatedTarget(event) {
|
|
8
|
+
if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {
|
|
9
|
+
return event.currentTarget.contains(event.relatedTarget);
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
function useFocusWithin({
|
|
14
|
+
onBlur,
|
|
15
|
+
onFocus
|
|
16
|
+
} = {}) {
|
|
17
|
+
const ref = react.useRef();
|
|
18
|
+
const [focused, _setFocused] = react.useState(false);
|
|
19
|
+
const focusedRef = react.useRef(false);
|
|
20
|
+
const setFocused = (value) => {
|
|
21
|
+
_setFocused(value);
|
|
22
|
+
focusedRef.current = value;
|
|
23
|
+
};
|
|
24
|
+
const handleFocusIn = (event) => {
|
|
25
|
+
if (!focusedRef.current) {
|
|
26
|
+
setFocused(true);
|
|
27
|
+
onFocus == null ? void 0 : onFocus(event);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const handleFocusOut = (event) => {
|
|
31
|
+
if (focusedRef.current && !containsRelatedTarget(event)) {
|
|
32
|
+
setFocused(false);
|
|
33
|
+
onBlur == null ? void 0 : onBlur(event);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
react.useEffect(() => {
|
|
37
|
+
if (ref.current) {
|
|
38
|
+
ref.current.addEventListener("focusin", handleFocusIn);
|
|
39
|
+
ref.current.addEventListener("focusout", handleFocusOut);
|
|
40
|
+
return () => {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
(_a = ref.current) == null ? void 0 : _a.removeEventListener("focusin", handleFocusIn);
|
|
43
|
+
(_b = ref.current) == null ? void 0 : _b.removeEventListener("focusout", handleFocusOut);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return void 0;
|
|
47
|
+
}, []);
|
|
48
|
+
return { ref, focused };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
exports.useFocusWithin = useFocusWithin;
|
|
52
|
+
//# sourceMappingURL=use-focus-within.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-focus-within.js","sources":["../../src/use-focus-within/use-focus-within.ts"],"sourcesContent":["import { useRef, useState, useEffect } from 'react';\n\nexport interface UseFocusWithinOptions {\n onFocus?(event: FocusEvent): void;\n onBlur?(event: FocusEvent): void;\n}\n\nfunction containsRelatedTarget(event: FocusEvent) {\n if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {\n return event.currentTarget.contains(event.relatedTarget);\n }\n\n return false;\n}\n\nexport function useFocusWithin<T extends HTMLElement = any>({\n onBlur,\n onFocus,\n}: UseFocusWithinOptions = {}): { ref: React.MutableRefObject<T>; focused: boolean } {\n const ref = useRef<T>();\n const [focused, _setFocused] = useState(false);\n const focusedRef = useRef(false);\n const setFocused = (value: boolean) => {\n _setFocused(value);\n focusedRef.current = value;\n };\n\n const handleFocusIn = (event: FocusEvent) => {\n if (!focusedRef.current) {\n setFocused(true);\n onFocus?.(event);\n }\n };\n\n const handleFocusOut = (event: FocusEvent) => {\n if (focusedRef.current && !containsRelatedTarget(event)) {\n setFocused(false);\n onBlur?.(event);\n }\n };\n\n useEffect(() => {\n if (ref.current) {\n ref.current.addEventListener('focusin', handleFocusIn);\n ref.current.addEventListener('focusout', handleFocusOut);\n\n return () => {\n ref.current?.removeEventListener('focusin', handleFocusIn);\n ref.current?.removeEventListener('focusout', handleFocusOut);\n };\n }\n\n return undefined;\n }, []);\n\n return { ref, focused };\n}\n"],"names":["useRef","useState","useEffect"],"mappings":";;;;;;AACA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI,KAAK,CAAC,aAAa,YAAY,WAAW,IAAI,KAAK,CAAC,aAAa,YAAY,WAAW,EAAE;AAChG,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,cAAc,CAAC;AAC/B,EAAE,MAAM;AACR,EAAE,OAAO;AACT,CAAC,GAAG,EAAE,EAAE;AACR,EAAE,MAAM,GAAG,GAAGA,YAAM,EAAE,CAAC;AACvB,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,EAAE,MAAM,UAAU,GAAGD,YAAM,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAChC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACnC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC7B,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;AACvB,MAAM,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK;AACpC,IAAI,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAC7D,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG,CAAC;AACJ,EAAEE,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AACrB,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/D,MAAM,OAAO,MAAM;AACnB,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC/F,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACjG,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B;;;;"}
|
|
@@ -74,6 +74,12 @@ function useFullscreen() {
|
|
|
74
74
|
onError: handleFullscreenError
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
+
if (_ref.current) {
|
|
78
|
+
return addEvents(_ref.current, {
|
|
79
|
+
onFullScreen: handleFullscreenChange,
|
|
80
|
+
onError: handleFullscreenError
|
|
81
|
+
});
|
|
82
|
+
}
|
|
77
83
|
return void 0;
|
|
78
84
|
}, []);
|
|
79
85
|
return { ref, toggle, fullscreen };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["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\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = 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 enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n }, []);\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":["useState","useRef","useCallback","useEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["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\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = 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 enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n }, []);\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n if (_ref.current) {\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":["useState","useRef","useCallback","useEffect"],"mappings":"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"}
|
|
@@ -33,10 +33,12 @@ function useLocalStorage({
|
|
|
33
33
|
setValue((current) => {
|
|
34
34
|
const result = val(current);
|
|
35
35
|
window.localStorage.setItem(key, serialize(result));
|
|
36
|
+
window.dispatchEvent(new CustomEvent("mantine-local-storage", { detail: val(current) }));
|
|
36
37
|
return result;
|
|
37
38
|
});
|
|
38
39
|
} else {
|
|
39
40
|
window.localStorage.setItem(key, serialize(val));
|
|
41
|
+
window.dispatchEvent(new CustomEvent("mantine-local-storage", { detail: val }));
|
|
40
42
|
setValue(val);
|
|
41
43
|
}
|
|
42
44
|
}, [key]);
|
|
@@ -46,6 +48,9 @@ function useLocalStorage({
|
|
|
46
48
|
setValue(deserialize((_a2 = event.newValue) != null ? _a2 : void 0));
|
|
47
49
|
}
|
|
48
50
|
});
|
|
51
|
+
useWindowEvent.useWindowEvent("mantine-local-storage", (event) => {
|
|
52
|
+
setValue(event.detail);
|
|
53
|
+
});
|
|
49
54
|
react.useEffect(() => {
|
|
50
55
|
if (defaultValue !== void 0 && value === void 0) {
|
|
51
56
|
setLocalStorageValue(defaultValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n /** Local storage key */\n key: string;\n\n /** Default value that will be set if value is not found in local storage */\n defaultValue?: T;\n\n /** If set to true, value will be update is useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into string to be save in local storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from local storage to value */\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = false,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window && !getInitialValueInEffect\n ? deserialize(window.localStorage.getItem(key) ?? undefined)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(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(deserialize(event.newValue ?? undefined));\n }\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(\n deserialize(window.localStorage.getItem(key) ?? undefined) || ((defaultValue ?? '') as T)\n );\n }\n }, []);\n\n return [value === undefined ? defaultValue : value, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":["useState","useCallback","useWindowEvent","useEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n /** Local storage key */\n key: string;\n\n /** Default value that will be set if value is not found in local storage */\n defaultValue?: T;\n\n /** If set to true, value will be update is useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into string to be save in local storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from local storage to value */\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = false,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window && !getInitialValueInEffect\n ? deserialize(window.localStorage.getItem(key) ?? undefined)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n window.dispatchEvent(new CustomEvent('mantine-local-storage', { detail: val(current) }));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(val));\n window.dispatchEvent(new CustomEvent('mantine-local-storage', { detail: 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(deserialize(event.newValue ?? undefined));\n }\n });\n\n useWindowEvent('mantine-local-storage', (event) => {\n setValue(event.detail);\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(\n deserialize(window.localStorage.getItem(key) ?? undefined) || ((defaultValue ?? '') as T)\n );\n }\n }, []);\n\n return [value === undefined ? defaultValue : value, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":["useState","useCallback","useWindowEvent","useEffect"],"mappings":"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"}
|
|
@@ -13,14 +13,17 @@ function attachMediaListener(query, callback) {
|
|
|
13
13
|
return () => query.removeListener(callback);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
function getInitialValue(query) {
|
|
16
|
+
function getInitialValue(query, initialValue) {
|
|
17
|
+
if (initialValue !== void 0) {
|
|
18
|
+
return initialValue;
|
|
19
|
+
}
|
|
17
20
|
if (typeof window !== "undefined" && "matchMedia" in window) {
|
|
18
21
|
return window.matchMedia(query).matches;
|
|
19
22
|
}
|
|
20
23
|
return false;
|
|
21
24
|
}
|
|
22
|
-
function useMediaQuery(query) {
|
|
23
|
-
const [matches, setMatches] = react.useState(getInitialValue(query));
|
|
25
|
+
function useMediaQuery(query, initialValue) {
|
|
26
|
+
const [matches, setMatches] = react.useState(getInitialValue(query, initialValue));
|
|
24
27
|
const queryRef = react.useRef();
|
|
25
28
|
react.useEffect(() => {
|
|
26
29
|
if ("matchMedia" in window) {
|
|
@@ -28,6 +31,7 @@ function useMediaQuery(query) {
|
|
|
28
31
|
setMatches(queryRef.current.matches);
|
|
29
32
|
return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
|
|
30
33
|
}
|
|
34
|
+
return void 0;
|
|
31
35
|
}, [query]);
|
|
32
36
|
return matches;
|
|
33
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\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
|
|
1
|
+
{"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string, initialValue?: boolean) {\n if (initialValue !== undefined) {\n return initialValue;\n }\n\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n}\n\nexport function useMediaQuery(query: string, initialValue?: boolean) {\n const [matches, setMatches] = useState(getInitialValue(query, initialValue));\n const queryRef = useRef<MediaQueryList>();\n\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n\n return undefined;\n }, [query]);\n\n return matches;\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,EAAE,IAAI;AACN,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/C,IAAI,OAAO,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,OAAO,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChD,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE;AAC9C,EAAE,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE;AAC/B,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;AAC/D,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAC5C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE;AACnD,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AAC/E,EAAE,MAAM,QAAQ,GAAGC,YAAM,EAAE,CAAC;AAC5B,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,MAAM,EAAE;AAChC,MAAM,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClD,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3C,MAAM,OAAO,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
const defaultValue = {
|
|
25
|
+
downlink: 10,
|
|
26
|
+
effectiveType: "4g",
|
|
27
|
+
saveData: false,
|
|
28
|
+
rtt: 50
|
|
29
|
+
};
|
|
30
|
+
function getConnection() {
|
|
31
|
+
if (typeof navigator === "undefined") {
|
|
32
|
+
return defaultValue;
|
|
33
|
+
}
|
|
34
|
+
const _navigator = navigator;
|
|
35
|
+
const connection = _navigator.connection || _navigator.mozConnection || _navigator.webkitConnection;
|
|
36
|
+
return {
|
|
37
|
+
downlink: connection.downlink,
|
|
38
|
+
effectiveType: connection.effectiveType,
|
|
39
|
+
saveData: connection.saveData,
|
|
40
|
+
rtt: connection.rtt
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function useNetwork() {
|
|
44
|
+
const [status, setStatus] = react.useState(__spreadValues({ online: true }, getConnection()));
|
|
45
|
+
const handleConnectionChange = react.useCallback(() => setStatus((current) => __spreadValues(__spreadValues({}, current), getConnection())), []);
|
|
46
|
+
useWindowEvent.useWindowEvent("online", () => setStatus(__spreadValues({ online: true }, getConnection())));
|
|
47
|
+
useWindowEvent.useWindowEvent("offline", () => setStatus(__spreadValues({ online: false }, getConnection())));
|
|
48
|
+
react.useEffect(() => {
|
|
49
|
+
navigator.connection.addEventListener("change", handleConnectionChange);
|
|
50
|
+
return () => navigator.connection.removeEventListener("change", handleConnectionChange);
|
|
51
|
+
}, []);
|
|
52
|
+
return status;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.useNetwork = useNetwork;
|
|
56
|
+
//# sourceMappingURL=use-network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-network.js","sources":["../../src/use-network/use-network.ts"],"sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface NetworkStatus {\n downlink: number;\n effectiveType: 'slow-2g' | '2g' | '3g' | '4g';\n saveData: boolean;\n rtt: number;\n}\n\nconst defaultValue: NetworkStatus = {\n downlink: 10,\n effectiveType: '4g',\n saveData: false,\n rtt: 50,\n};\n\nfunction getConnection(): NetworkStatus {\n if (typeof navigator === 'undefined') {\n return defaultValue;\n }\n\n const _navigator = navigator as any;\n const connection: any =\n _navigator.connection || _navigator.mozConnection || _navigator.webkitConnection;\n\n return {\n downlink: connection.downlink,\n effectiveType: connection.effectiveType,\n saveData: connection.saveData,\n rtt: connection.rtt,\n };\n}\n\nexport function useNetwork() {\n const [status, setStatus] = useState({ online: true, ...getConnection() });\n const handleConnectionChange = useCallback(\n () => setStatus((current) => ({ ...current, ...getConnection() })),\n []\n );\n\n useWindowEvent('online', () => setStatus({ online: true, ...getConnection() }));\n useWindowEvent('offline', () => setStatus({ online: false, ...getConnection() }));\n\n useEffect(() => {\n navigator.connection.addEventListener('change', handleConnectionChange);\n return () => navigator.connection.removeEventListener('change', handleConnectionChange);\n }, []);\n\n return status;\n}\n"],"names":["useState","useCallback","useWindowEvent","useEffect"],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var useMediaQuery = require('../use-media-query/use-media-query.js');
|
|
6
6
|
|
|
7
|
-
function useReducedMotion() {
|
|
8
|
-
return useMediaQuery.useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
7
|
+
function useReducedMotion(initialValue) {
|
|
8
|
+
return useMediaQuery.useMediaQuery("(prefers-reduced-motion: reduce)", initialValue);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
exports.useReducedMotion = useReducedMotion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion() {\n return useMediaQuery('(prefers-reduced-motion: reduce)');\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;AACO,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion(initialValue?: boolean) {\n return useMediaQuery('(prefers-reduced-motion: reduce)', initialValue);\n}\n"],"names":["useMediaQuery"],"mappings":";;;;;;AACO,SAAS,gBAAgB,CAAC,YAAY,EAAE;AAC/C,EAAE,OAAOA,2BAAa,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;AACzE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-window-event.js","sources":["../../src/use-window-event/use-window-event.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends
|
|
1
|
+
{"version":3,"file":"use-window-event.js","sources":["../../src/use-window-event/use-window-event.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends string>(\n type: K,\n listener: K extends keyof WindowEventMap\n ? (this: Window, ev: WindowEventMap[K]) => void\n : (this: Window, ev: CustomEvent) => void,\n options?: boolean | AddEventListenerOptions\n) {\n useEffect(() => {\n window.addEventListener(type, listener, options);\n return () => window.removeEventListener(type, listener, options);\n }, []);\n}\n"],"names":["useEffect"],"mappings":";;;;;;AACO,SAAS,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AACxD,EAAEA,eAAS,CAAC,MAAM;AAClB,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,IAAI,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrE,GAAG,EAAE,EAAE,CAAC,CAAC;AACT;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -44,6 +44,8 @@ export { useSetState } from './use-set-state/use-set-state.js';
|
|
|
44
44
|
export { useInputState } from './use-input-state/use-input-state.js';
|
|
45
45
|
export { useEventListener } from './use-event-listener/use-event-listener.js';
|
|
46
46
|
export { useDisclosure } from './use-disclosure/use-disclosure.js';
|
|
47
|
+
export { useFocusWithin } from './use-focus-within/use-focus-within.js';
|
|
48
|
+
export { useNetwork } from './use-network/use-network.js';
|
|
47
49
|
export { getHotkeyHandler } from './use-hotkeys/parse-hotkey.js';
|
|
48
50
|
export { assignRef } from './utils/assign-ref/assign-ref.js';
|
|
49
51
|
export { clamp } from './utils/clamp/clamp.js';
|
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,7 +1,7 @@
|
|
|
1
1
|
import { useMediaQuery } from '../use-media-query/use-media-query.js';
|
|
2
2
|
|
|
3
|
-
function useColorScheme() {
|
|
4
|
-
return useMediaQuery("(prefers-color-scheme: dark)") ? "dark" : "light";
|
|
3
|
+
function useColorScheme(initialValue) {
|
|
4
|
+
return useMediaQuery("(prefers-color-scheme: dark)", initialValue === "dark") ? "dark" : "light";
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export { useColorScheme };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-color-scheme.js","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme() {\n return useMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light';\n}\n"],"names":[],"mappings":";;AACO,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"use-color-scheme.js","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useColorScheme(initialValue?: 'dark' | 'light') {\n return useMediaQuery('(prefers-color-scheme: dark)', initialValue === 'dark') ? 'dark' : 'light';\n}\n"],"names":[],"mappings":";;AACO,SAAS,cAAc,CAAC,YAAY,EAAE;AAC7C,EAAE,OAAO,aAAa,CAAC,8BAA8B,EAAE,YAAY,KAAK,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;AACnG;;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useRef, useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function containsRelatedTarget(event) {
|
|
4
|
+
if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {
|
|
5
|
+
return event.currentTarget.contains(event.relatedTarget);
|
|
6
|
+
}
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
function useFocusWithin({
|
|
10
|
+
onBlur,
|
|
11
|
+
onFocus
|
|
12
|
+
} = {}) {
|
|
13
|
+
const ref = useRef();
|
|
14
|
+
const [focused, _setFocused] = useState(false);
|
|
15
|
+
const focusedRef = useRef(false);
|
|
16
|
+
const setFocused = (value) => {
|
|
17
|
+
_setFocused(value);
|
|
18
|
+
focusedRef.current = value;
|
|
19
|
+
};
|
|
20
|
+
const handleFocusIn = (event) => {
|
|
21
|
+
if (!focusedRef.current) {
|
|
22
|
+
setFocused(true);
|
|
23
|
+
onFocus == null ? void 0 : onFocus(event);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const handleFocusOut = (event) => {
|
|
27
|
+
if (focusedRef.current && !containsRelatedTarget(event)) {
|
|
28
|
+
setFocused(false);
|
|
29
|
+
onBlur == null ? void 0 : onBlur(event);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (ref.current) {
|
|
34
|
+
ref.current.addEventListener("focusin", handleFocusIn);
|
|
35
|
+
ref.current.addEventListener("focusout", handleFocusOut);
|
|
36
|
+
return () => {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
(_a = ref.current) == null ? void 0 : _a.removeEventListener("focusin", handleFocusIn);
|
|
39
|
+
(_b = ref.current) == null ? void 0 : _b.removeEventListener("focusout", handleFocusOut);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
}, []);
|
|
44
|
+
return { ref, focused };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { useFocusWithin };
|
|
48
|
+
//# sourceMappingURL=use-focus-within.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-focus-within.js","sources":["../../src/use-focus-within/use-focus-within.ts"],"sourcesContent":["import { useRef, useState, useEffect } from 'react';\n\nexport interface UseFocusWithinOptions {\n onFocus?(event: FocusEvent): void;\n onBlur?(event: FocusEvent): void;\n}\n\nfunction containsRelatedTarget(event: FocusEvent) {\n if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {\n return event.currentTarget.contains(event.relatedTarget);\n }\n\n return false;\n}\n\nexport function useFocusWithin<T extends HTMLElement = any>({\n onBlur,\n onFocus,\n}: UseFocusWithinOptions = {}): { ref: React.MutableRefObject<T>; focused: boolean } {\n const ref = useRef<T>();\n const [focused, _setFocused] = useState(false);\n const focusedRef = useRef(false);\n const setFocused = (value: boolean) => {\n _setFocused(value);\n focusedRef.current = value;\n };\n\n const handleFocusIn = (event: FocusEvent) => {\n if (!focusedRef.current) {\n setFocused(true);\n onFocus?.(event);\n }\n };\n\n const handleFocusOut = (event: FocusEvent) => {\n if (focusedRef.current && !containsRelatedTarget(event)) {\n setFocused(false);\n onBlur?.(event);\n }\n };\n\n useEffect(() => {\n if (ref.current) {\n ref.current.addEventListener('focusin', handleFocusIn);\n ref.current.addEventListener('focusout', handleFocusOut);\n\n return () => {\n ref.current?.removeEventListener('focusin', handleFocusIn);\n ref.current?.removeEventListener('focusout', handleFocusOut);\n };\n }\n\n return undefined;\n }, []);\n\n return { ref, focused };\n}\n"],"names":[],"mappings":";;AACA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI,KAAK,CAAC,aAAa,YAAY,WAAW,IAAI,KAAK,CAAC,aAAa,YAAY,WAAW,EAAE;AAChG,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,cAAc,CAAC;AAC/B,EAAE,MAAM;AACR,EAAE,OAAO;AACT,CAAC,GAAG,EAAE,EAAE;AACR,EAAE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AACvB,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAChC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACnC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC7B,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;AACvB,MAAM,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK;AACpC,IAAI,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAC7D,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AACrB,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/D,MAAM,OAAO,MAAM;AACnB,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC/F,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACjG,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B;;;;"}
|
|
@@ -70,6 +70,12 @@ function useFullscreen() {
|
|
|
70
70
|
onError: handleFullscreenError
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
+
if (_ref.current) {
|
|
74
|
+
return addEvents(_ref.current, {
|
|
75
|
+
onFullScreen: handleFullscreenChange,
|
|
76
|
+
onError: handleFullscreenError
|
|
77
|
+
});
|
|
78
|
+
}
|
|
73
79
|
return void 0;
|
|
74
80
|
}, []);
|
|
75
81
|
return { ref, toggle, fullscreen };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["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\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = 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 enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n }, []);\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["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\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = 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 enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = useCallback((element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n }, []);\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n if (_ref.current) {\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -29,10 +29,12 @@ function useLocalStorage({
|
|
|
29
29
|
setValue((current) => {
|
|
30
30
|
const result = val(current);
|
|
31
31
|
window.localStorage.setItem(key, serialize(result));
|
|
32
|
+
window.dispatchEvent(new CustomEvent("mantine-local-storage", { detail: val(current) }));
|
|
32
33
|
return result;
|
|
33
34
|
});
|
|
34
35
|
} else {
|
|
35
36
|
window.localStorage.setItem(key, serialize(val));
|
|
37
|
+
window.dispatchEvent(new CustomEvent("mantine-local-storage", { detail: val }));
|
|
36
38
|
setValue(val);
|
|
37
39
|
}
|
|
38
40
|
}, [key]);
|
|
@@ -42,6 +44,9 @@ function useLocalStorage({
|
|
|
42
44
|
setValue(deserialize((_a2 = event.newValue) != null ? _a2 : void 0));
|
|
43
45
|
}
|
|
44
46
|
});
|
|
47
|
+
useWindowEvent("mantine-local-storage", (event) => {
|
|
48
|
+
setValue(event.detail);
|
|
49
|
+
});
|
|
45
50
|
useEffect(() => {
|
|
46
51
|
if (defaultValue !== void 0 && value === void 0) {
|
|
47
52
|
setLocalStorageValue(defaultValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n /** Local storage key */\n key: string;\n\n /** Default value that will be set if value is not found in local storage */\n defaultValue?: T;\n\n /** If set to true, value will be update is useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into string to be save in local storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from local storage to value */\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = false,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window && !getInitialValueInEffect\n ? deserialize(window.localStorage.getItem(key) ?? undefined)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(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(deserialize(event.newValue ?? undefined));\n }\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(\n deserialize(window.localStorage.getItem(key) ?? undefined) || ((defaultValue ?? '') as T)\n );\n }\n }, []);\n\n return [value === undefined ? defaultValue : value, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n /** Local storage key */\n key: string;\n\n /** Default value that will be set if value is not found in local storage */\n defaultValue?: T;\n\n /** If set to true, value will be update is useEffect after mount */\n getInitialValueInEffect?: boolean;\n\n /** Function to serialize value into string to be save in local storage */\n serialize?(value: T): string;\n\n /** Function to deserialize string value from local storage to value */\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = false,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window && !getInitialValueInEffect\n ? deserialize(window.localStorage.getItem(key) ?? undefined)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n window.dispatchEvent(new CustomEvent('mantine-local-storage', { detail: val(current) }));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(val));\n window.dispatchEvent(new CustomEvent('mantine-local-storage', { detail: 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(deserialize(event.newValue ?? undefined));\n }\n });\n\n useWindowEvent('mantine-local-storage', (event) => {\n setValue(event.detail);\n });\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n useEffect(() => {\n if (getInitialValueInEffect) {\n setValue(\n deserialize(window.localStorage.getItem(key) ?? undefined) || ((defaultValue ?? '') as T)\n );\n }\n }, []);\n\n return [value === undefined ? defaultValue : value, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,17 @@ function attachMediaListener(query, callback) {
|
|
|
9
9
|
return () => query.removeListener(callback);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
function getInitialValue(query) {
|
|
12
|
+
function getInitialValue(query, initialValue) {
|
|
13
|
+
if (initialValue !== void 0) {
|
|
14
|
+
return initialValue;
|
|
15
|
+
}
|
|
13
16
|
if (typeof window !== "undefined" && "matchMedia" in window) {
|
|
14
17
|
return window.matchMedia(query).matches;
|
|
15
18
|
}
|
|
16
19
|
return false;
|
|
17
20
|
}
|
|
18
|
-
function useMediaQuery(query) {
|
|
19
|
-
const [matches, setMatches] = useState(getInitialValue(query));
|
|
21
|
+
function useMediaQuery(query, initialValue) {
|
|
22
|
+
const [matches, setMatches] = useState(getInitialValue(query, initialValue));
|
|
20
23
|
const queryRef = useRef();
|
|
21
24
|
useEffect(() => {
|
|
22
25
|
if ("matchMedia" in window) {
|
|
@@ -24,6 +27,7 @@ function useMediaQuery(query) {
|
|
|
24
27
|
setMatches(queryRef.current.matches);
|
|
25
28
|
return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));
|
|
26
29
|
}
|
|
30
|
+
return void 0;
|
|
27
31
|
}, [query]);
|
|
28
32
|
return matches;
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\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
|
|
1
|
+
{"version":3,"file":"use-media-query.js","sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\ntype MediaQueryCallback = (event: { matches: boolean; media: string }) => void;\n\n/**\n * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia\n * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent\n * */\nfunction attachMediaListener(query: MediaQueryList, callback: MediaQueryCallback) {\n try {\n query.addEventListener('change', callback);\n return () => query.removeEventListener('change', callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\n\nfunction getInitialValue(query: string, initialValue?: boolean) {\n if (initialValue !== undefined) {\n return initialValue;\n }\n\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n}\n\nexport function useMediaQuery(query: string, initialValue?: boolean) {\n const [matches, setMatches] = useState(getInitialValue(query, initialValue));\n const queryRef = useRef<MediaQueryList>();\n\n useEffect(() => {\n if ('matchMedia' in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n\n return undefined;\n }, [query]);\n\n return matches;\n}\n"],"names":[],"mappings":";;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,EAAE,IAAI;AACN,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/C,IAAI,OAAO,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAChC,IAAI,OAAO,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChD,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE;AAC9C,EAAE,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE;AAC/B,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;AAC/D,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAC5C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE;AACnD,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AAC/E,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;AAC5B,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,MAAM,EAAE;AAChC,MAAM,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClD,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3C,MAAM,OAAO,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { useWindowEvent } from '../use-window-event/use-window-event.js';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
const defaultValue = {
|
|
21
|
+
downlink: 10,
|
|
22
|
+
effectiveType: "4g",
|
|
23
|
+
saveData: false,
|
|
24
|
+
rtt: 50
|
|
25
|
+
};
|
|
26
|
+
function getConnection() {
|
|
27
|
+
if (typeof navigator === "undefined") {
|
|
28
|
+
return defaultValue;
|
|
29
|
+
}
|
|
30
|
+
const _navigator = navigator;
|
|
31
|
+
const connection = _navigator.connection || _navigator.mozConnection || _navigator.webkitConnection;
|
|
32
|
+
return {
|
|
33
|
+
downlink: connection.downlink,
|
|
34
|
+
effectiveType: connection.effectiveType,
|
|
35
|
+
saveData: connection.saveData,
|
|
36
|
+
rtt: connection.rtt
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function useNetwork() {
|
|
40
|
+
const [status, setStatus] = useState(__spreadValues({ online: true }, getConnection()));
|
|
41
|
+
const handleConnectionChange = useCallback(() => setStatus((current) => __spreadValues(__spreadValues({}, current), getConnection())), []);
|
|
42
|
+
useWindowEvent("online", () => setStatus(__spreadValues({ online: true }, getConnection())));
|
|
43
|
+
useWindowEvent("offline", () => setStatus(__spreadValues({ online: false }, getConnection())));
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
navigator.connection.addEventListener("change", handleConnectionChange);
|
|
46
|
+
return () => navigator.connection.removeEventListener("change", handleConnectionChange);
|
|
47
|
+
}, []);
|
|
48
|
+
return status;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { useNetwork };
|
|
52
|
+
//# sourceMappingURL=use-network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-network.js","sources":["../../src/use-network/use-network.ts"],"sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface NetworkStatus {\n downlink: number;\n effectiveType: 'slow-2g' | '2g' | '3g' | '4g';\n saveData: boolean;\n rtt: number;\n}\n\nconst defaultValue: NetworkStatus = {\n downlink: 10,\n effectiveType: '4g',\n saveData: false,\n rtt: 50,\n};\n\nfunction getConnection(): NetworkStatus {\n if (typeof navigator === 'undefined') {\n return defaultValue;\n }\n\n const _navigator = navigator as any;\n const connection: any =\n _navigator.connection || _navigator.mozConnection || _navigator.webkitConnection;\n\n return {\n downlink: connection.downlink,\n effectiveType: connection.effectiveType,\n saveData: connection.saveData,\n rtt: connection.rtt,\n };\n}\n\nexport function useNetwork() {\n const [status, setStatus] = useState({ online: true, ...getConnection() });\n const handleConnectionChange = useCallback(\n () => setStatus((current) => ({ ...current, ...getConnection() })),\n []\n );\n\n useWindowEvent('online', () => setStatus({ online: true, ...getConnection() }));\n useWindowEvent('offline', () => setStatus({ online: false, ...getConnection() }));\n\n useEffect(() => {\n navigator.connection.addEventListener('change', handleConnectionChange);\n return () => navigator.connection.removeEventListener('change', handleConnectionChange);\n }, []);\n\n return status;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMediaQuery } from '../use-media-query/use-media-query.js';
|
|
2
2
|
|
|
3
|
-
function useReducedMotion() {
|
|
4
|
-
return useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
3
|
+
function useReducedMotion(initialValue) {
|
|
4
|
+
return useMediaQuery("(prefers-reduced-motion: reduce)", initialValue);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export { useReducedMotion };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion() {\n return useMediaQuery('(prefers-reduced-motion: reduce)');\n}\n"],"names":[],"mappings":";;AACO,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.js","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"sourcesContent":["import { useMediaQuery } from '../use-media-query/use-media-query';\n\nexport function useReducedMotion(initialValue?: boolean) {\n return useMediaQuery('(prefers-reduced-motion: reduce)', initialValue);\n}\n"],"names":[],"mappings":";;AACO,SAAS,gBAAgB,CAAC,YAAY,EAAE;AAC/C,EAAE,OAAO,aAAa,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;AACzE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-window-event.js","sources":["../../src/use-window-event/use-window-event.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends
|
|
1
|
+
{"version":3,"file":"use-window-event.js","sources":["../../src/use-window-event/use-window-event.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useWindowEvent<K extends string>(\n type: K,\n listener: K extends keyof WindowEventMap\n ? (this: Window, ev: WindowEventMap[K]) => void\n : (this: Window, ev: CustomEvent) => void,\n options?: boolean | AddEventListenerOptions\n) {\n useEffect(() => {\n window.addEventListener(type, listener, options);\n return () => window.removeEventListener(type, listener, options);\n }, []);\n}\n"],"names":[],"mappings":";;AACO,SAAS,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AACxD,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,IAAI,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrE,GAAG,EAAE,EAAE,CAAC,CAAC;AACT;;;;"}
|
package/lib/index.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ export { useSetState } from './use-set-state/use-set-state';
|
|
|
45
45
|
export { useInputState } from './use-input-state/use-input-state';
|
|
46
46
|
export { useEventListener } from './use-event-listener/use-event-listener';
|
|
47
47
|
export { useDisclosure } from './use-disclosure/use-disclosure';
|
|
48
|
+
export { useFocusWithin } from './use-focus-within/use-focus-within';
|
|
49
|
+
export { useNetwork } from './use-network/use-network';
|
|
48
50
|
export type { UseMovePosition } from './use-move/use-move';
|
|
49
51
|
export type { OS } from './use-os/use-os';
|
|
50
52
|
export type { HotkeyItem } from './use-hotkeys/use-hotkeys';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function useColorScheme(): "dark" | "light";
|
|
1
|
+
export declare function useColorScheme(initialValue?: 'dark' | 'light'): "dark" | "light";
|
|
2
2
|
//# sourceMappingURL=use-color-scheme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-color-scheme.d.ts","sourceRoot":"","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"use-color-scheme.d.ts","sourceRoot":"","sources":["../../src/use-color-scheme/use-color-scheme.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,oBAE7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface UseFocusWithinOptions {
|
|
3
|
+
onFocus?(event: FocusEvent): void;
|
|
4
|
+
onBlur?(event: FocusEvent): void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useFocusWithin<T extends HTMLElement = any>({ onBlur, onFocus, }?: UseFocusWithinOptions): {
|
|
7
|
+
ref: React.MutableRefObject<T>;
|
|
8
|
+
focused: boolean;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=use-focus-within.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-focus-within.d.ts","sourceRoot":"","sources":["../../src/use-focus-within/use-focus-within.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAClC;AAUD,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EAAE,EAC1D,MAAM,EACN,OAAO,GACR,GAAE,qBAA0B,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAsCnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.d.ts","sourceRoot":"","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"names":[],"mappings":"AA0DA,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG;4BA+BrB,CAAC,GAAG,IAAI;;;
|
|
1
|
+
{"version":3,"file":"use-fullscreen.d.ts","sourceRoot":"","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"names":[],"mappings":"AA0DA,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG;4BA+BrB,CAAC,GAAG,IAAI;;;EA4B3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage.d.ts","sourceRoot":"","sources":["../../src/use-local-storage/use-local-storage.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe,CAAC,CAAC;IACzB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,0EAA0E;IAC1E,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAE7B,uEAAuE;IACvE,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CAChC;AAkBD,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,EAC1C,GAAG,EACH,YAAwB,EACxB,uBAA+B,EAC/B,WAA6B,EAC7B,SAAyB,GAC1B,EAAE,eAAe,CAAC,CAAC,CAAC,uCAQM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"use-local-storage.d.ts","sourceRoot":"","sources":["../../src/use-local-storage/use-local-storage.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe,CAAC,CAAC;IACzB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,0EAA0E;IAC1E,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAE7B,uEAAuE;IACvE,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CAChC;AAkBD,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,EAC1C,GAAG,EACH,YAAwB,EACxB,uBAA+B,EAC/B,WAA6B,EAC7B,SAAyB,GAC1B,EAAE,eAAe,CAAC,CAAC,CAAC,uCAQM,CAAC,KAAK,CAAC,YA0CjC;AAED,eAAO,MAAM,oBAAoB,wBAAkB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function useMediaQuery(query: string): boolean;
|
|
1
|
+
export declare function useMediaQuery(query: string, initialValue?: boolean): boolean;
|
|
2
2
|
//# sourceMappingURL=use-media-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-media-query.d.ts","sourceRoot":"","sources":["../../src/use-media-query/use-media-query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-media-query.d.ts","sourceRoot":"","sources":["../../src/use-media-query/use-media-query.ts"],"names":[],"mappings":"AA8BA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,WAelE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-network.d.ts","sourceRoot":"","sources":["../../src/use-network/use-network.ts"],"names":[],"mappings":"AAkCA,wBAAgB,UAAU;;;;;;EAgBzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function useReducedMotion(): boolean;
|
|
1
|
+
export declare function useReducedMotion(initialValue?: boolean): boolean;
|
|
2
2
|
//# sourceMappingURL=use-reduced-motion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reduced-motion.d.ts","sourceRoot":"","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.d.ts","sourceRoot":"","sources":["../../src/use-reduced-motion/use-reduced-motion.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,WAEtD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function useWindowEvent<K extends
|
|
1
|
+
export declare function useWindowEvent<K extends string>(type: K, listener: K extends keyof WindowEventMap ? (this: Window, ev: WindowEventMap[K]) => void : (this: Window, ev: CustomEvent) => void, options?: boolean | AddEventListenerOptions): void;
|
|
2
2
|
//# sourceMappingURL=use-window-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-window-event.d.ts","sourceRoot":"","sources":["../../src/use-window-event/use-window-event.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"use-window-event.d.ts","sourceRoot":"","sources":["../../src/use-window-event/use-window-event.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,SAAS,MAAM,cAAc,GACpC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAC7C,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,KAAK,IAAI,EAC3C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,QAM5C"}
|