@mui/utils 5.10.9 → 5.10.14
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/CHANGELOG.md +574 -214
- package/ClassNameGenerator/ClassNameGenerator.d.ts +6 -6
- package/ClassNameGenerator/ClassNameGenerator.js +0 -6
- package/ClassNameGenerator/index.d.ts +1 -1
- package/ClassNameGenerator/index.js +0 -2
- package/HTMLElementType.d.ts +3 -3
- package/HTMLElementType.js +0 -5
- package/capitalize.js +0 -4
- package/chainPropTypes.d.ts +2 -2
- package/chainPropTypes.js +0 -2
- package/composeClasses/composeClasses.d.ts +1 -1
- package/composeClasses/composeClasses.js +2 -4
- package/composeClasses/index.d.ts +1 -1
- package/composeClasses/index.js +0 -2
- package/createChainedFunction.d.ts +7 -7
- package/createChainedFunction.js +0 -2
- package/debounce.js +0 -5
- package/deepmerge.d.ts +5 -5
- package/deepmerge.js +0 -7
- package/deprecatedPropType.js +0 -4
- package/elementAcceptingRef.d.ts +3 -3
- package/elementAcceptingRef.js +2 -12
- package/elementTypeAcceptingRef.d.ts +3 -3
- package/elementTypeAcceptingRef.js +3 -13
- package/esm/ClassNameGenerator/ClassNameGenerator.js +0 -5
- package/esm/HTMLElementType.js +0 -4
- package/esm/capitalize.js +0 -1
- package/esm/chainPropTypes.js +0 -1
- package/esm/composeClasses/composeClasses.js +2 -3
- package/esm/createChainedFunction.js +0 -1
- package/esm/debounce.js +0 -4
- package/esm/deepmerge.js +0 -3
- package/esm/deprecatedPropType.js +0 -3
- package/esm/elementAcceptingRef.js +2 -9
- package/esm/elementTypeAcceptingRef.js +3 -9
- package/esm/exactProp.js +1 -3
- package/esm/formatMuiErrorMessage.js +0 -3
- package/esm/getDisplayName.js +6 -13
- package/esm/integerPropType.js +2 -17
- package/esm/requirePropFactory.js +2 -8
- package/esm/resolveProps.js +0 -2
- package/esm/scrollLeft.js +5 -11
- package/esm/unsupportedProp.js +0 -3
- package/esm/useControlled.js +0 -2
- package/esm/useEventCallback.js +3 -2
- package/esm/useForkRef.js +2 -2
- package/esm/useId.js +4 -7
- package/esm/useIsFocusVisible.js +10 -26
- package/esm/usePreviousProps.js +0 -2
- package/exactProp.d.ts +2 -2
- package/exactProp.js +1 -7
- package/formatMuiErrorMessage.d.ts +6 -6
- package/formatMuiErrorMessage.js +0 -4
- package/generateUtilityClass/generateUtilityClass.d.ts +2 -2
- package/generateUtilityClass/generateUtilityClass.js +0 -4
- package/generateUtilityClass/index.d.ts +2 -2
- package/generateUtilityClass/index.js +0 -4
- package/generateUtilityClasses/generateUtilityClasses.d.ts +1 -1
- package/generateUtilityClasses/generateUtilityClasses.js +0 -3
- package/generateUtilityClasses/index.d.ts +1 -1
- package/generateUtilityClasses/index.js +0 -2
- package/getDisplayName.d.ts +8 -8
- package/getDisplayName.js +3 -14
- package/getScrollbarSize.d.ts +1 -1
- package/getScrollbarSize.js +0 -1
- package/index.d.ts +38 -38
- package/index.js +1 -41
- package/integerPropType.d.ts +7 -7
- package/integerPropType.js +2 -21
- package/isMuiElement.d.ts +1 -1
- package/isMuiElement.js +0 -4
- package/legacy/ClassNameGenerator/ClassNameGenerator.js +0 -2
- package/legacy/HTMLElementType.js +0 -4
- package/legacy/capitalize.js +0 -1
- package/legacy/chainPropTypes.js +0 -1
- package/legacy/composeClasses/composeClasses.js +2 -3
- package/legacy/createChainedFunction.js +0 -3
- package/legacy/debounce.js +0 -6
- package/legacy/deepmerge.js +0 -3
- package/legacy/deprecatedPropType.js +0 -3
- package/legacy/elementAcceptingRef.js +3 -10
- package/legacy/elementTypeAcceptingRef.js +4 -10
- package/legacy/exactProp.js +1 -3
- package/legacy/formatMuiErrorMessage.js +0 -3
- package/legacy/getDisplayName.js +6 -13
- package/legacy/index.js +1 -1
- package/legacy/integerPropType.js +2 -18
- package/legacy/requirePropFactory.js +2 -9
- package/legacy/resolveProps.js +0 -2
- package/legacy/scrollLeft.js +5 -11
- package/legacy/unsupportedProp.js +0 -3
- package/legacy/useControlled.js +8 -15
- package/legacy/useEventCallback.js +3 -2
- package/legacy/useForkRef.js +2 -3
- package/legacy/useId.js +6 -10
- package/legacy/useIsFocusVisible.js +12 -28
- package/legacy/usePreviousProps.js +0 -2
- package/modern/ClassNameGenerator/ClassNameGenerator.js +0 -5
- package/modern/HTMLElementType.js +0 -4
- package/modern/capitalize.js +0 -1
- package/modern/chainPropTypes.js +0 -1
- package/modern/composeClasses/composeClasses.js +2 -3
- package/modern/createChainedFunction.js +0 -1
- package/modern/debounce.js +0 -4
- package/modern/deepmerge.js +0 -3
- package/modern/deprecatedPropType.js +0 -3
- package/modern/elementAcceptingRef.js +2 -9
- package/modern/elementTypeAcceptingRef.js +3 -9
- package/modern/exactProp.js +1 -3
- package/modern/formatMuiErrorMessage.js +0 -3
- package/modern/getDisplayName.js +6 -13
- package/modern/index.js +1 -1
- package/modern/integerPropType.js +2 -17
- package/modern/requirePropFactory.js +2 -8
- package/modern/resolveProps.js +0 -2
- package/modern/scrollLeft.js +5 -11
- package/modern/unsupportedProp.js +0 -3
- package/modern/useControlled.js +0 -2
- package/modern/useEventCallback.js +3 -2
- package/modern/useForkRef.js +2 -2
- package/modern/useId.js +4 -7
- package/modern/useIsFocusVisible.js +10 -26
- package/modern/usePreviousProps.js +0 -2
- package/ownerDocument.d.ts +1 -1
- package/ownerDocument.js +0 -1
- package/ownerWindow.d.ts +1 -1
- package/ownerWindow.js +0 -3
- package/package.json +2 -2
- package/ponyfillGlobal.d.ts +2 -2
- package/ponyfillGlobal.js +0 -2
- package/refType.d.ts +3 -3
- package/refType.js +0 -4
- package/requirePropFactory.js +2 -11
- package/resolveProps.d.ts +9 -9
- package/resolveProps.js +0 -3
- package/scrollLeft.js +5 -12
- package/setRef.d.ts +15 -15
- package/setRef.js +0 -1
- package/unsupportedProp.js +0 -4
- package/useControlled.js +1 -6
- package/useEnhancedEffect.js +0 -4
- package/useEventCallback.d.ts +4 -4
- package/useEventCallback.js +2 -7
- package/useEventCallback.spec.d.ts +1 -1
- package/useForkRef.d.ts +2 -2
- package/useForkRef.js +2 -8
- package/useId.d.ts +7 -7
- package/useId.js +4 -11
- package/useIsFocusVisible.d.ts +9 -9
- package/useIsFocusVisible.js +11 -30
- package/usePreviousProps.d.ts +2 -2
- package/usePreviousProps.js +0 -5
- package/visuallyHidden.d.ts +2 -2
package/useEventCallback.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
3
|
-
*/
|
|
4
|
-
export default function useEventCallback<Args extends unknown[], Return>(fn: (...args: Args) => Return): (...args: Args) => Return;
|
|
1
|
+
/**
|
|
2
|
+
* https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
3
|
+
*/
|
|
4
|
+
export default function useEventCallback<Args extends unknown[], Return>(fn: (...args: Args) => Return): (...args: Args) => Return;
|
package/useEventCallback.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = useEventCallback;
|
|
9
|
-
|
|
10
8
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _useEnhancedEffect = _interopRequireDefault(require("./useEnhancedEffect"));
|
|
13
|
-
|
|
14
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
|
|
16
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
20
14
|
*/
|
|
@@ -23,7 +17,8 @@ function useEventCallback(fn) {
|
|
|
23
17
|
(0, _useEnhancedEffect.default)(() => {
|
|
24
18
|
ref.current = fn;
|
|
25
19
|
});
|
|
26
|
-
return React.useCallback((...args) =>
|
|
20
|
+
return React.useCallback((...args) =>
|
|
21
|
+
// @ts-expect-error hide `this`
|
|
27
22
|
// tslint:disable-next-line:ban-comma-operator
|
|
28
23
|
(0, ref.current)(...args), []);
|
|
29
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
package/useForkRef.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export default function useForkRef<Instance>(...refs: Array<React.Ref<Instance> | undefined>): React.RefCallback<Instance> | null;
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export default function useForkRef<Instance>(...refs: Array<React.Ref<Instance> | undefined>): React.RefCallback<Instance> | null;
|
package/useForkRef.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = useForkRef;
|
|
9
|
-
|
|
10
8
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _setRef = _interopRequireDefault(require("./setRef"));
|
|
13
|
-
|
|
14
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
|
|
16
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
|
|
18
12
|
function useForkRef(...refs) {
|
|
19
13
|
/**
|
|
20
14
|
* This will create a new function if the refs passed to this hook change and are all defined.
|
|
@@ -25,11 +19,11 @@ function useForkRef(...refs) {
|
|
|
25
19
|
if (refs.every(ref => ref == null)) {
|
|
26
20
|
return null;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
return instance => {
|
|
30
23
|
refs.forEach(ref => {
|
|
31
24
|
(0, _setRef.default)(ref, instance);
|
|
32
25
|
});
|
|
33
|
-
};
|
|
26
|
+
};
|
|
27
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
28
|
}, refs);
|
|
35
29
|
}
|
package/useId.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @example <div id={useId()} />
|
|
4
|
-
* @param idOverride
|
|
5
|
-
* @returns {string}
|
|
6
|
-
*/
|
|
7
|
-
export default function useId(idOverride?: string): string | undefined;
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @example <div id={useId()} />
|
|
4
|
+
* @param idOverride
|
|
5
|
+
* @returns {string}
|
|
6
|
+
*/
|
|
7
|
+
export default function useId(idOverride?: string): string | undefined;
|
package/useId.js
CHANGED
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = useId;
|
|
7
|
-
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
|
|
12
9
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
|
|
14
10
|
let globalId = 0;
|
|
15
|
-
|
|
16
11
|
function useGlobalId(idOverride) {
|
|
17
12
|
const [defaultId, setDefaultId] = React.useState(idOverride);
|
|
18
13
|
const id = idOverride || defaultId;
|
|
@@ -27,9 +22,9 @@ function useGlobalId(idOverride) {
|
|
|
27
22
|
}
|
|
28
23
|
}, [defaultId]);
|
|
29
24
|
return id;
|
|
30
|
-
}
|
|
31
|
-
|
|
25
|
+
}
|
|
32
26
|
|
|
27
|
+
// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814
|
|
33
28
|
const maybeReactUseId = React['useId' + ''];
|
|
34
29
|
/**
|
|
35
30
|
*
|
|
@@ -37,13 +32,11 @@ const maybeReactUseId = React['useId' + ''];
|
|
|
37
32
|
* @param idOverride
|
|
38
33
|
* @returns {string}
|
|
39
34
|
*/
|
|
40
|
-
|
|
41
35
|
function useId(idOverride) {
|
|
42
36
|
if (maybeReactUseId !== undefined) {
|
|
43
37
|
const reactId = maybeReactUseId();
|
|
44
38
|
return idOverride != null ? idOverride : reactId;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
}
|
|
40
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.
|
|
48
41
|
return useGlobalId(idOverride);
|
|
49
42
|
}
|
package/useIsFocusVisible.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export declare function teardown(doc: Document): void;
|
|
3
|
-
export interface UseIsFocusVisibleResult {
|
|
4
|
-
isFocusVisibleRef: React.MutableRefObject<boolean>;
|
|
5
|
-
onBlur: (event: React.FocusEvent<any>) => void;
|
|
6
|
-
onFocus: (event: React.FocusEvent<any>) => void;
|
|
7
|
-
ref: React.Ref<unknown>;
|
|
8
|
-
}
|
|
9
|
-
export default function useIsFocusVisible(): UseIsFocusVisibleResult;
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare function teardown(doc: Document): void;
|
|
3
|
+
export interface UseIsFocusVisibleResult {
|
|
4
|
+
isFocusVisibleRef: React.MutableRefObject<boolean>;
|
|
5
|
+
onBlur: (event: React.FocusEvent<any>) => void;
|
|
6
|
+
onFocus: (event: React.FocusEvent<any>) => void;
|
|
7
|
+
ref: React.Ref<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export default function useIsFocusVisible(): UseIsFocusVisibleResult;
|
package/useIsFocusVisible.js
CHANGED
|
@@ -5,14 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = useIsFocusVisible;
|
|
7
7
|
exports.teardown = teardown;
|
|
8
|
-
|
|
9
8
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
|
|
11
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
-
|
|
13
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
-
|
|
15
11
|
// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js
|
|
12
|
+
|
|
16
13
|
let hadKeyboardEvent = true;
|
|
17
14
|
let hadFocusVisibleRecently = false;
|
|
18
15
|
let hadFocusVisibleRecentlyTimeout;
|
|
@@ -31,6 +28,7 @@ const inputTypesWhitelist = {
|
|
|
31
28
|
datetime: true,
|
|
32
29
|
'datetime-local': true
|
|
33
30
|
};
|
|
31
|
+
|
|
34
32
|
/**
|
|
35
33
|
* Computes whether the given element should automatically trigger the
|
|
36
34
|
* `focus-visible` class being added, i.e. whether it should always match
|
|
@@ -38,27 +36,23 @@ const inputTypesWhitelist = {
|
|
|
38
36
|
* @param {Element} node
|
|
39
37
|
* @returns {boolean}
|
|
40
38
|
*/
|
|
41
|
-
|
|
42
39
|
function focusTriggersKeyboardModality(node) {
|
|
43
40
|
const {
|
|
44
41
|
type,
|
|
45
42
|
tagName
|
|
46
43
|
} = node;
|
|
47
|
-
|
|
48
44
|
if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {
|
|
49
45
|
return true;
|
|
50
46
|
}
|
|
51
|
-
|
|
52
47
|
if (tagName === 'TEXTAREA' && !node.readOnly) {
|
|
53
48
|
return true;
|
|
54
49
|
}
|
|
55
|
-
|
|
56
50
|
if (node.isContentEditable) {
|
|
57
51
|
return true;
|
|
58
52
|
}
|
|
59
|
-
|
|
60
53
|
return false;
|
|
61
54
|
}
|
|
55
|
+
|
|
62
56
|
/**
|
|
63
57
|
* Keep track of our keyboard modality state with `hadKeyboardEvent`.
|
|
64
58
|
* If the most recent user interaction was via the keyboard;
|
|
@@ -66,15 +60,13 @@ function focusTriggersKeyboardModality(node) {
|
|
|
66
60
|
* then the modality is keyboard. Otherwise, the modality is not keyboard.
|
|
67
61
|
* @param {KeyboardEvent} event
|
|
68
62
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
63
|
function handleKeyDown(event) {
|
|
72
64
|
if (event.metaKey || event.altKey || event.ctrlKey) {
|
|
73
65
|
return;
|
|
74
66
|
}
|
|
75
|
-
|
|
76
67
|
hadKeyboardEvent = true;
|
|
77
68
|
}
|
|
69
|
+
|
|
78
70
|
/**
|
|
79
71
|
* If at any point a user clicks with a pointing device, ensure that we change
|
|
80
72
|
* the modality away from keyboard.
|
|
@@ -82,12 +74,9 @@ function handleKeyDown(event) {
|
|
|
82
74
|
* element, and then clicks on a different element, focusing it with a
|
|
83
75
|
* pointing device, while we still think we're in keyboard modality.
|
|
84
76
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
77
|
function handlePointerDown() {
|
|
88
78
|
hadKeyboardEvent = false;
|
|
89
79
|
}
|
|
90
|
-
|
|
91
80
|
function handleVisibilityChange() {
|
|
92
81
|
if (this.visibilityState === 'hidden') {
|
|
93
82
|
// If the tab becomes active again, the browser will handle calling focus
|
|
@@ -99,7 +88,6 @@ function handleVisibilityChange() {
|
|
|
99
88
|
}
|
|
100
89
|
}
|
|
101
90
|
}
|
|
102
|
-
|
|
103
91
|
function prepare(doc) {
|
|
104
92
|
doc.addEventListener('keydown', handleKeyDown, true);
|
|
105
93
|
doc.addEventListener('mousedown', handlePointerDown, true);
|
|
@@ -107,7 +95,6 @@ function prepare(doc) {
|
|
|
107
95
|
doc.addEventListener('touchstart', handlePointerDown, true);
|
|
108
96
|
doc.addEventListener('visibilitychange', handleVisibilityChange, true);
|
|
109
97
|
}
|
|
110
|
-
|
|
111
98
|
function teardown(doc) {
|
|
112
99
|
doc.removeEventListener('keydown', handleKeyDown, true);
|
|
113
100
|
doc.removeEventListener('mousedown', handlePointerDown, true);
|
|
@@ -115,25 +102,23 @@ function teardown(doc) {
|
|
|
115
102
|
doc.removeEventListener('touchstart', handlePointerDown, true);
|
|
116
103
|
doc.removeEventListener('visibilitychange', handleVisibilityChange, true);
|
|
117
104
|
}
|
|
118
|
-
|
|
119
105
|
function isFocusVisible(event) {
|
|
120
106
|
const {
|
|
121
107
|
target
|
|
122
108
|
} = event;
|
|
123
|
-
|
|
124
109
|
try {
|
|
125
110
|
return target.matches(':focus-visible');
|
|
126
|
-
} catch (error) {
|
|
111
|
+
} catch (error) {
|
|
112
|
+
// Browsers not implementing :focus-visible will throw a SyntaxError.
|
|
127
113
|
// We use our own heuristic for those browsers.
|
|
128
114
|
// Rethrow might be better if it's not the expected error but do we really
|
|
129
115
|
// want to crash if focus-visible malfunctioned?
|
|
130
|
-
}
|
|
131
|
-
// focusable events only.
|
|
132
|
-
|
|
116
|
+
}
|
|
133
117
|
|
|
118
|
+
// No need for validFocusTarget check. The user does that by attaching it to
|
|
119
|
+
// focusable events only.
|
|
134
120
|
return hadKeyboardEvent || focusTriggersKeyboardModality(target);
|
|
135
121
|
}
|
|
136
|
-
|
|
137
122
|
function useIsFocusVisible() {
|
|
138
123
|
const ref = React.useCallback(node => {
|
|
139
124
|
if (node != null) {
|
|
@@ -141,10 +126,10 @@ function useIsFocusVisible() {
|
|
|
141
126
|
}
|
|
142
127
|
}, []);
|
|
143
128
|
const isFocusVisibleRef = React.useRef(false);
|
|
129
|
+
|
|
144
130
|
/**
|
|
145
131
|
* Should be called if a blur event is fired
|
|
146
132
|
*/
|
|
147
|
-
|
|
148
133
|
function handleBlurVisible() {
|
|
149
134
|
// checking against potential state variable does not suffice if we focus and blur synchronously.
|
|
150
135
|
// React wouldn't have time to trigger a re-render so `focusVisible` would be stale.
|
|
@@ -164,23 +149,19 @@ function useIsFocusVisible() {
|
|
|
164
149
|
isFocusVisibleRef.current = false;
|
|
165
150
|
return true;
|
|
166
151
|
}
|
|
167
|
-
|
|
168
152
|
return false;
|
|
169
153
|
}
|
|
154
|
+
|
|
170
155
|
/**
|
|
171
156
|
* Should be called if a blur event is fired
|
|
172
157
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
175
158
|
function handleFocusVisible(event) {
|
|
176
159
|
if (isFocusVisible(event)) {
|
|
177
160
|
isFocusVisibleRef.current = true;
|
|
178
161
|
return true;
|
|
179
162
|
}
|
|
180
|
-
|
|
181
163
|
return false;
|
|
182
164
|
}
|
|
183
|
-
|
|
184
165
|
return {
|
|
185
166
|
isFocusVisibleRef,
|
|
186
167
|
onFocus: handleFocusVisible,
|
package/usePreviousProps.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const usePreviousProps: (value: object) => object;
|
|
2
|
-
export default usePreviousProps;
|
|
1
|
+
declare const usePreviousProps: (value: object) => object;
|
|
2
|
+
export default usePreviousProps;
|
package/usePreviousProps.js
CHANGED
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
|
|
12
9
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
|
|
14
10
|
const usePreviousProps = value => {
|
|
15
11
|
const ref = React.useRef({});
|
|
16
12
|
React.useEffect(() => {
|
|
@@ -18,6 +14,5 @@ const usePreviousProps = value => {
|
|
|
18
14
|
});
|
|
19
15
|
return ref.current;
|
|
20
16
|
};
|
|
21
|
-
|
|
22
17
|
var _default = usePreviousProps;
|
|
23
18
|
exports.default = _default;
|
package/visuallyHidden.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const visuallyHidden: import('react').CSSProperties;
|
|
2
|
-
export default visuallyHidden;
|
|
1
|
+
declare const visuallyHidden: import('react').CSSProperties;
|
|
2
|
+
export default visuallyHidden;
|