@react-aria/utils 3.23.0 → 3.23.2

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 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
- var focusElem = document.createElement("div");
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
- var parent = element.parentNode;
343
- var scrollableElements = [];
344
- var rootScrollingElement = document.scrollingElement || document.documentElement;
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
- if ($62d8ded9296f3872$export$2bb74740c4e19def(node, checkForOverflow)) node = node.parentElement;
952
- while(node && !$62d8ded9296f3872$export$2bb74740c4e19def(node, checkForOverflow))node = node.parentElement;
953
- return node || document.scrollingElement || document.documentElement;
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)(undefined);
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
- var focusElem = document.createElement("div");
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
- var parent = element.parentNode;
401
- var scrollableElements = [];
402
- var rootScrollingElement = document.scrollingElement || document.documentElement;
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
- if ($d796e7157ac96470$export$2bb74740c4e19def(node, checkForOverflow)) node = node.parentElement;
1010
- while(node && !$d796e7157ac96470$export$2bb74740c4e19def(node, checkForOverflow))node = node.parentElement;
1011
- return node || document.scrollingElement || document.documentElement;
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)(undefined);
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 ()=>{