@react-aria/utils 3.23.0 → 3.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/import.mjs +25 -16
- package/dist/main.js +25 -16
- package/dist/main.js.map +1 -1
- package/dist/module.js +25 -16
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/focusWithoutScrolling.ts +5 -5
- package/src/getScrollParent.ts +6 -5
- package/src/mergeRefs.ts +1 -1
- package/src/openLink.tsx +6 -6
- package/src/runAfterTransition.ts +15 -3
- package/src/useDeepMemo.ts +1 -1
- package/src/useDescription.ts +2 -2
- package/src/useEffectEvent.ts +3 -3
- package/src/useEvent.ts +3 -3
- package/src/useObjectRef.ts +3 -3
- package/src/useSyncRef.ts +4 -2
- package/src/useValueEffect.ts +5 -2
- package/src/useViewportSize.ts +2 -2
package/dist/import.mjs
CHANGED
|
@@ -72,7 +72,7 @@ function $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {
|
|
|
72
72
|
// @ts-ignore
|
|
73
73
|
return (0, $12uGp$useCallback)((...args)=>{
|
|
74
74
|
const f = ref.current;
|
|
75
|
-
return f(...args);
|
|
75
|
+
return f === null || f === void 0 ? void 0 : f(...args);
|
|
76
76
|
}, []);
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -83,6 +83,7 @@ function $1dbecbe27a04f9af$export$14d238f342723f25(defaultValue) {
|
|
|
83
83
|
// Store the function in a ref so we can always access the current version
|
|
84
84
|
// which has the proper `value` in scope.
|
|
85
85
|
let nextRef = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(()=>{
|
|
86
|
+
if (!effect.current) return;
|
|
86
87
|
// Run the generator to the next yield.
|
|
87
88
|
let newValue = effect.current.next();
|
|
88
89
|
// If the generator is done, reset the effect.
|
|
@@ -325,7 +326,7 @@ function $7215afc6de606d6b$var$supportsPreventScroll() {
|
|
|
325
326
|
if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
|
|
326
327
|
$7215afc6de606d6b$var$supportsPreventScrollCached = false;
|
|
327
328
|
try {
|
|
328
|
-
|
|
329
|
+
let focusElem = document.createElement("div");
|
|
329
330
|
focusElem.focus({
|
|
330
331
|
get preventScroll () {
|
|
331
332
|
$7215afc6de606d6b$var$supportsPreventScrollCached = true;
|
|
@@ -339,9 +340,9 @@ function $7215afc6de606d6b$var$supportsPreventScroll() {
|
|
|
339
340
|
return $7215afc6de606d6b$var$supportsPreventScrollCached;
|
|
340
341
|
}
|
|
341
342
|
function $7215afc6de606d6b$var$getScrollableElements(element) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
343
|
+
let parent = element.parentNode;
|
|
344
|
+
let scrollableElements = [];
|
|
345
|
+
let rootScrollingElement = document.scrollingElement || document.documentElement;
|
|
345
346
|
while(parent instanceof HTMLElement && parent !== rootScrollingElement){
|
|
346
347
|
if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
|
|
347
348
|
element: parent,
|
|
@@ -560,7 +561,11 @@ let $bbed8b41f857bcc0$var$transitionsByElement = new Map();
|
|
|
560
561
|
let $bbed8b41f857bcc0$var$transitionCallbacks = new Set();
|
|
561
562
|
function $bbed8b41f857bcc0$var$setupGlobalEvents() {
|
|
562
563
|
if (typeof window === "undefined") return;
|
|
564
|
+
function isTransitionEvent(event) {
|
|
565
|
+
return "propertyName" in event;
|
|
566
|
+
}
|
|
563
567
|
let onTransitionStart = (e)=>{
|
|
568
|
+
if (!isTransitionEvent(e) || !e.target) return;
|
|
564
569
|
// Add the transitioning property to the list for this element.
|
|
565
570
|
let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
|
|
566
571
|
if (!transitions) {
|
|
@@ -569,11 +574,14 @@ function $bbed8b41f857bcc0$var$setupGlobalEvents() {
|
|
|
569
574
|
// The transitioncancel event must be registered on the element itself, rather than as a global
|
|
570
575
|
// event. This enables us to handle when the node is deleted from the document while it is transitioning.
|
|
571
576
|
// In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
|
|
572
|
-
e.target.addEventListener("transitioncancel", onTransitionEnd
|
|
577
|
+
e.target.addEventListener("transitioncancel", onTransitionEnd, {
|
|
578
|
+
once: true
|
|
579
|
+
});
|
|
573
580
|
}
|
|
574
581
|
transitions.add(e.propertyName);
|
|
575
582
|
};
|
|
576
583
|
let onTransitionEnd = (e)=>{
|
|
584
|
+
if (!isTransitionEvent(e) || !e.target) return;
|
|
577
585
|
// Remove property from list of transitioning properties.
|
|
578
586
|
let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
|
|
579
587
|
if (!properties) return;
|
|
@@ -837,7 +845,7 @@ function $313b98861ee5dd6c$export$d6875122194c7b44(props, defaultLabel) {
|
|
|
837
845
|
* governing permissions and limitations under the License.
|
|
838
846
|
*/
|
|
839
847
|
function $df56164dff5785e2$export$4338b53315abf666(forwardedRef) {
|
|
840
|
-
const objRef = (0, $12uGp$useRef)();
|
|
848
|
+
const objRef = (0, $12uGp$useRef)(null);
|
|
841
849
|
return (0, $12uGp$useMemo)(()=>({
|
|
842
850
|
get current () {
|
|
843
851
|
return objRef.current;
|
|
@@ -930,7 +938,7 @@ function $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {
|
|
|
930
938
|
if (context && context.ref && ref) {
|
|
931
939
|
context.ref.current = ref.current;
|
|
932
940
|
return ()=>{
|
|
933
|
-
context.ref.current = null;
|
|
941
|
+
if (context.ref) context.ref.current = null;
|
|
934
942
|
};
|
|
935
943
|
}
|
|
936
944
|
});
|
|
@@ -948,9 +956,10 @@ function $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {
|
|
|
948
956
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
949
957
|
* governing permissions and limitations under the License.
|
|
950
958
|
*/ function $62d8ded9296f3872$export$cfa2225e87938781(node, checkForOverflow) {
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
959
|
+
let scrollableNode = node;
|
|
960
|
+
if ($62d8ded9296f3872$export$2bb74740c4e19def(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
|
|
961
|
+
while(scrollableNode && !$62d8ded9296f3872$export$2bb74740c4e19def(scrollableNode, checkForOverflow))scrollableNode = scrollableNode.parentElement;
|
|
962
|
+
return scrollableNode || document.scrollingElement || document.documentElement;
|
|
954
963
|
}
|
|
955
964
|
function $62d8ded9296f3872$export$2bb74740c4e19def(node, checkForOverflow) {
|
|
956
965
|
let style = window.getComputedStyle(node);
|
|
@@ -1000,8 +1009,8 @@ function $5df64b3807dc15ee$export$d699905dd57c73ca() {
|
|
|
1000
1009
|
}
|
|
1001
1010
|
function $5df64b3807dc15ee$var$getViewportSize() {
|
|
1002
1011
|
return {
|
|
1003
|
-
width: ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.width) || window.innerWidth,
|
|
1004
|
-
height: ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.height) || window.innerHeight
|
|
1012
|
+
width: $5df64b3807dc15ee$var$visualViewport && ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.width) || window.innerWidth,
|
|
1013
|
+
height: $5df64b3807dc15ee$var$visualViewport && ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.height) || window.innerHeight
|
|
1005
1014
|
};
|
|
1006
1015
|
}
|
|
1007
1016
|
|
|
@@ -1021,7 +1030,7 @@ function $5df64b3807dc15ee$var$getViewportSize() {
|
|
|
1021
1030
|
let $ef06256079686ba0$var$descriptionId = 0;
|
|
1022
1031
|
const $ef06256079686ba0$var$descriptionNodes = new Map();
|
|
1023
1032
|
function $ef06256079686ba0$export$f8aeda7b10753fa1(description) {
|
|
1024
|
-
let [id, setId] = (0, $12uGp$useState)(
|
|
1033
|
+
let [id, setId] = (0, $12uGp$useState)();
|
|
1025
1034
|
(0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
|
|
1026
1035
|
if (!description) return;
|
|
1027
1036
|
let desc = $ef06256079686ba0$var$descriptionNodes.get(description);
|
|
@@ -1041,7 +1050,7 @@ function $ef06256079686ba0$export$f8aeda7b10753fa1(description) {
|
|
|
1041
1050
|
} else setId(desc.element.id);
|
|
1042
1051
|
desc.refCount++;
|
|
1043
1052
|
return ()=>{
|
|
1044
|
-
if (--desc.refCount === 0) {
|
|
1053
|
+
if (desc && --desc.refCount === 0) {
|
|
1045
1054
|
desc.element.remove();
|
|
1046
1055
|
$ef06256079686ba0$var$descriptionNodes.delete(description);
|
|
1047
1056
|
}
|
|
@@ -1072,7 +1081,7 @@ function $e9faafb641e167db$export$90fc3a17d93f704c(ref, event, handler, options)
|
|
|
1072
1081
|
let handleEvent = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(handler);
|
|
1073
1082
|
let isDisabled = handler == null;
|
|
1074
1083
|
(0, $12uGp$useEffect)(()=>{
|
|
1075
|
-
if (isDisabled) return;
|
|
1084
|
+
if (isDisabled || !ref.current) return;
|
|
1076
1085
|
let element = ref.current;
|
|
1077
1086
|
element.addEventListener(event, handleEvent, options);
|
|
1078
1087
|
return ()=>{
|
package/dist/main.js
CHANGED
|
@@ -130,7 +130,7 @@ function $1254e5bb94ac8761$export$7f54fc3180508a52(fn) {
|
|
|
130
130
|
// @ts-ignore
|
|
131
131
|
return (0, $1Yh1N$react.useCallback)((...args)=>{
|
|
132
132
|
const f = ref.current;
|
|
133
|
-
return f(...args);
|
|
133
|
+
return f === null || f === void 0 ? void 0 : f(...args);
|
|
134
134
|
}, []);
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -141,6 +141,7 @@ function $19a2307bfabafaf1$export$14d238f342723f25(defaultValue) {
|
|
|
141
141
|
// Store the function in a ref so we can always access the current version
|
|
142
142
|
// which has the proper `value` in scope.
|
|
143
143
|
let nextRef = (0, $1254e5bb94ac8761$export$7f54fc3180508a52)(()=>{
|
|
144
|
+
if (!effect.current) return;
|
|
144
145
|
// Run the generator to the next yield.
|
|
145
146
|
let newValue = effect.current.next();
|
|
146
147
|
// If the generator is done, reset the effect.
|
|
@@ -383,7 +384,7 @@ function $1117b6c0d4c4c164$var$supportsPreventScroll() {
|
|
|
383
384
|
if ($1117b6c0d4c4c164$var$supportsPreventScrollCached == null) {
|
|
384
385
|
$1117b6c0d4c4c164$var$supportsPreventScrollCached = false;
|
|
385
386
|
try {
|
|
386
|
-
|
|
387
|
+
let focusElem = document.createElement("div");
|
|
387
388
|
focusElem.focus({
|
|
388
389
|
get preventScroll () {
|
|
389
390
|
$1117b6c0d4c4c164$var$supportsPreventScrollCached = true;
|
|
@@ -397,9 +398,9 @@ function $1117b6c0d4c4c164$var$supportsPreventScroll() {
|
|
|
397
398
|
return $1117b6c0d4c4c164$var$supportsPreventScrollCached;
|
|
398
399
|
}
|
|
399
400
|
function $1117b6c0d4c4c164$var$getScrollableElements(element) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
401
|
+
let parent = element.parentNode;
|
|
402
|
+
let scrollableElements = [];
|
|
403
|
+
let rootScrollingElement = document.scrollingElement || document.documentElement;
|
|
403
404
|
while(parent instanceof HTMLElement && parent !== rootScrollingElement){
|
|
404
405
|
if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
|
|
405
406
|
element: parent,
|
|
@@ -618,7 +619,11 @@ let $e8117ebcab55be6a$var$transitionsByElement = new Map();
|
|
|
618
619
|
let $e8117ebcab55be6a$var$transitionCallbacks = new Set();
|
|
619
620
|
function $e8117ebcab55be6a$var$setupGlobalEvents() {
|
|
620
621
|
if (typeof window === "undefined") return;
|
|
622
|
+
function isTransitionEvent(event) {
|
|
623
|
+
return "propertyName" in event;
|
|
624
|
+
}
|
|
621
625
|
let onTransitionStart = (e)=>{
|
|
626
|
+
if (!isTransitionEvent(e) || !e.target) return;
|
|
622
627
|
// Add the transitioning property to the list for this element.
|
|
623
628
|
let transitions = $e8117ebcab55be6a$var$transitionsByElement.get(e.target);
|
|
624
629
|
if (!transitions) {
|
|
@@ -627,11 +632,14 @@ function $e8117ebcab55be6a$var$setupGlobalEvents() {
|
|
|
627
632
|
// The transitioncancel event must be registered on the element itself, rather than as a global
|
|
628
633
|
// event. This enables us to handle when the node is deleted from the document while it is transitioning.
|
|
629
634
|
// In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
|
|
630
|
-
e.target.addEventListener("transitioncancel", onTransitionEnd
|
|
635
|
+
e.target.addEventListener("transitioncancel", onTransitionEnd, {
|
|
636
|
+
once: true
|
|
637
|
+
});
|
|
631
638
|
}
|
|
632
639
|
transitions.add(e.propertyName);
|
|
633
640
|
};
|
|
634
641
|
let onTransitionEnd = (e)=>{
|
|
642
|
+
if (!isTransitionEvent(e) || !e.target) return;
|
|
635
643
|
// Remove property from list of transitioning properties.
|
|
636
644
|
let properties = $e8117ebcab55be6a$var$transitionsByElement.get(e.target);
|
|
637
645
|
if (!properties) return;
|
|
@@ -895,7 +903,7 @@ function $6ec78bde395c477d$export$d6875122194c7b44(props, defaultLabel) {
|
|
|
895
903
|
* governing permissions and limitations under the License.
|
|
896
904
|
*/
|
|
897
905
|
function $475b35fe72ba49b3$export$4338b53315abf666(forwardedRef) {
|
|
898
|
-
const objRef = (0, $1Yh1N$react.useRef)();
|
|
906
|
+
const objRef = (0, $1Yh1N$react.useRef)(null);
|
|
899
907
|
return (0, $1Yh1N$react.useMemo)(()=>({
|
|
900
908
|
get current () {
|
|
901
909
|
return objRef.current;
|
|
@@ -988,7 +996,7 @@ function $6fc733991a9f977c$export$4debdb1a3f0fa79e(context, ref) {
|
|
|
988
996
|
if (context && context.ref && ref) {
|
|
989
997
|
context.ref.current = ref.current;
|
|
990
998
|
return ()=>{
|
|
991
|
-
context.ref.current = null;
|
|
999
|
+
if (context.ref) context.ref.current = null;
|
|
992
1000
|
};
|
|
993
1001
|
}
|
|
994
1002
|
});
|
|
@@ -1006,9 +1014,10 @@ function $6fc733991a9f977c$export$4debdb1a3f0fa79e(context, ref) {
|
|
|
1006
1014
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
1007
1015
|
* governing permissions and limitations under the License.
|
|
1008
1016
|
*/ function $d796e7157ac96470$export$cfa2225e87938781(node, checkForOverflow) {
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1017
|
+
let scrollableNode = node;
|
|
1018
|
+
if ($d796e7157ac96470$export$2bb74740c4e19def(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
|
|
1019
|
+
while(scrollableNode && !$d796e7157ac96470$export$2bb74740c4e19def(scrollableNode, checkForOverflow))scrollableNode = scrollableNode.parentElement;
|
|
1020
|
+
return scrollableNode || document.scrollingElement || document.documentElement;
|
|
1012
1021
|
}
|
|
1013
1022
|
function $d796e7157ac96470$export$2bb74740c4e19def(node, checkForOverflow) {
|
|
1014
1023
|
let style = window.getComputedStyle(node);
|
|
@@ -1058,8 +1067,8 @@ function $8b24bab62f5c65ad$export$d699905dd57c73ca() {
|
|
|
1058
1067
|
}
|
|
1059
1068
|
function $8b24bab62f5c65ad$var$getViewportSize() {
|
|
1060
1069
|
return {
|
|
1061
|
-
width: ($8b24bab62f5c65ad$var$visualViewport === null || $8b24bab62f5c65ad$var$visualViewport === void 0 ? void 0 : $8b24bab62f5c65ad$var$visualViewport.width) || window.innerWidth,
|
|
1062
|
-
height: ($8b24bab62f5c65ad$var$visualViewport === null || $8b24bab62f5c65ad$var$visualViewport === void 0 ? void 0 : $8b24bab62f5c65ad$var$visualViewport.height) || window.innerHeight
|
|
1070
|
+
width: $8b24bab62f5c65ad$var$visualViewport && ($8b24bab62f5c65ad$var$visualViewport === null || $8b24bab62f5c65ad$var$visualViewport === void 0 ? void 0 : $8b24bab62f5c65ad$var$visualViewport.width) || window.innerWidth,
|
|
1071
|
+
height: $8b24bab62f5c65ad$var$visualViewport && ($8b24bab62f5c65ad$var$visualViewport === null || $8b24bab62f5c65ad$var$visualViewport === void 0 ? void 0 : $8b24bab62f5c65ad$var$visualViewport.height) || window.innerHeight
|
|
1063
1072
|
};
|
|
1064
1073
|
}
|
|
1065
1074
|
|
|
@@ -1079,7 +1088,7 @@ function $8b24bab62f5c65ad$var$getViewportSize() {
|
|
|
1079
1088
|
let $34da4502ea8120db$var$descriptionId = 0;
|
|
1080
1089
|
const $34da4502ea8120db$var$descriptionNodes = new Map();
|
|
1081
1090
|
function $34da4502ea8120db$export$f8aeda7b10753fa1(description) {
|
|
1082
|
-
let [id, setId] = (0, $1Yh1N$react.useState)(
|
|
1091
|
+
let [id, setId] = (0, $1Yh1N$react.useState)();
|
|
1083
1092
|
(0, $78605a5d7424e31b$export$e5c5a5f917a5871c)(()=>{
|
|
1084
1093
|
if (!description) return;
|
|
1085
1094
|
let desc = $34da4502ea8120db$var$descriptionNodes.get(description);
|
|
@@ -1099,7 +1108,7 @@ function $34da4502ea8120db$export$f8aeda7b10753fa1(description) {
|
|
|
1099
1108
|
} else setId(desc.element.id);
|
|
1100
1109
|
desc.refCount++;
|
|
1101
1110
|
return ()=>{
|
|
1102
|
-
if (--desc.refCount === 0) {
|
|
1111
|
+
if (desc && --desc.refCount === 0) {
|
|
1103
1112
|
desc.element.remove();
|
|
1104
1113
|
$34da4502ea8120db$var$descriptionNodes.delete(description);
|
|
1105
1114
|
}
|
|
@@ -1130,7 +1139,7 @@ function $2a8c0bb1629926c8$export$90fc3a17d93f704c(ref, event, handler, options)
|
|
|
1130
1139
|
let handleEvent = (0, $1254e5bb94ac8761$export$7f54fc3180508a52)(handler);
|
|
1131
1140
|
let isDisabled = handler == null;
|
|
1132
1141
|
(0, $1Yh1N$react.useEffect)(()=>{
|
|
1133
|
-
if (isDisabled) return;
|
|
1142
|
+
if (isDisabled || !ref.current) return;
|
|
1134
1143
|
let element = ref.current;
|
|
1135
1144
|
element.addEventListener(event, handleEvent, options);
|
|
1136
1145
|
return ()=>{
|