@react-aria/interactions 3.9.0 → 3.11.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/dist/main.js CHANGED
@@ -1,35 +1,31 @@
1
1
  var $goTMa$reactariautils = require("@react-aria/utils");
2
2
  var $goTMa$react = require("react");
3
3
 
4
- function $parcel$exportWildcard(dest, source) {
5
- Object.keys(source).forEach(function(key) {
6
- if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
7
- return;
8
- }
9
-
10
- Object.defineProperty(dest, key, {
11
- enumerable: true,
12
- get: function get() {
13
- return source[key];
14
- }
15
- });
16
- });
17
-
18
- return dest;
4
+ function $parcel$export(e, n, v, s) {
5
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
19
6
  }
20
7
  function $parcel$interopDefault(a) {
21
8
  return a && a.__esModule ? a.default : a;
22
9
  }
23
- function $parcel$export(e, n, v, s) {
24
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
25
- }
26
- var $e1dbec26039c051d$exports = {};
27
10
 
28
- $parcel$export($e1dbec26039c051d$exports, "Pressable", () => $e1dbec26039c051d$export$27c701ed9e449e99);
11
+ $parcel$export(module.exports, "Pressable", () => $e1dbec26039c051d$export$27c701ed9e449e99);
12
+ $parcel$export(module.exports, "PressResponder", () => $3596bae48579386f$export$3351871ee4b288b8);
13
+ $parcel$export(module.exports, "useFocus", () => $5cb73d0ce355b0dc$export$f8168d8dd8fd66e6);
14
+ $parcel$export(module.exports, "isFocusVisible", () => $e77252a287ef94ab$export$b9b3dfddab17db27);
15
+ $parcel$export(module.exports, "getInteractionModality", () => $e77252a287ef94ab$export$630ff653c5ada6a9);
16
+ $parcel$export(module.exports, "setInteractionModality", () => $e77252a287ef94ab$export$8397ddfc504fdb9a);
17
+ $parcel$export(module.exports, "useInteractionModality", () => $e77252a287ef94ab$export$98e20ec92f614cfe);
18
+ $parcel$export(module.exports, "useFocusVisible", () => $e77252a287ef94ab$export$ffd9e5021c1fb2d6);
19
+ $parcel$export(module.exports, "useFocusVisibleListener", () => $e77252a287ef94ab$export$ec71b4b83ac08ec3);
20
+ $parcel$export(module.exports, "useFocusWithin", () => $d16842bbd0359d1b$export$420e68273165f4ec);
21
+ $parcel$export(module.exports, "useHover", () => $ffbc150311c75f01$export$ae780daf29e6d456);
22
+ $parcel$export(module.exports, "useInteractOutside", () => $edcfa848c42f94f4$export$872b660ac5a1ff98);
23
+ $parcel$export(module.exports, "useKeyboard", () => $892d64db2a3c53b0$export$8f71654801c2f7cd);
24
+ $parcel$export(module.exports, "useMove", () => $c09386fc48fa427d$export$36da96379f79f245);
25
+ $parcel$export(module.exports, "usePress", () => $0294ea432cd92340$export$45712eceda6fad21);
26
+ $parcel$export(module.exports, "useScrollWheel", () => $a3dbce0aed7087e2$export$2123ff2b87c81ca);
27
+ $parcel$export(module.exports, "useLongPress", () => $3cd7b5d0eebf0ca9$export$c24ed0104d07eab9);
29
28
 
30
- var $0294ea432cd92340$exports = {};
31
-
32
- $parcel$export($0294ea432cd92340$exports, "usePress", () => $0294ea432cd92340$export$45712eceda6fad21);
33
29
 
34
30
  // Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element
35
31
  // rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually
@@ -43,7 +39,7 @@ function $f7e14e656343df57$export$16a4697467175487(target) {
43
39
  document.documentElement.style.webkitUserSelect = 'none';
44
40
  }
45
41
  $f7e14e656343df57$var$state = 'disabled';
46
- } else if (target) {
42
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) {
47
43
  // If not iOS, store the target's original user-select and change to user-select: none
48
44
  // Ignore state since it doesn't apply for non iOS
49
45
  $f7e14e656343df57$var$modifiedElementMap.set(target, target.style.userSelect);
@@ -70,13 +66,15 @@ function $f7e14e656343df57$export$b0d6fa1ab32e3295(target) {
70
66
  }
71
67
  });
72
68
  }, 300);
73
- } else // If not iOS, restore the target's original user-select if any
69
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any
74
70
  // Ignore state since it doesn't apply for non iOS
75
- if (target && $f7e14e656343df57$var$modifiedElementMap.has(target)) {
76
- let targetOldUserSelect = $f7e14e656343df57$var$modifiedElementMap.get(target);
77
- if (target.style.userSelect === 'none') target.style.userSelect = targetOldUserSelect;
78
- if (target.getAttribute('style') === '') target.removeAttribute('style');
79
- $f7e14e656343df57$var$modifiedElementMap.delete(target);
71
+ {
72
+ if (target && $f7e14e656343df57$var$modifiedElementMap.has(target)) {
73
+ let targetOldUserSelect = $f7e14e656343df57$var$modifiedElementMap.get(target);
74
+ if (target.style.userSelect === 'none') target.style.userSelect = targetOldUserSelect;
75
+ if (target.getAttribute('style') === '') target.removeAttribute('style');
76
+ $f7e14e656343df57$var$modifiedElementMap.delete(target);
77
+ }
80
78
  }
81
79
  }
82
80
 
@@ -84,7 +82,6 @@ function $f7e14e656343df57$export$b0d6fa1ab32e3295(target) {
84
82
 
85
83
 
86
84
 
87
-
88
85
  function $625cf83917e112ad$export$60278871457622de(event) {
89
86
  // JAWS/NVDA with Firefox.
90
87
  if (event.mozInputSource === 0 && event.isTrusted) return true;
@@ -188,6 +185,7 @@ const $01d3f539e91688c8$export$5165eccb35aaadb5 = ($parcel$interopDefault($goTMa
188
185
  $01d3f539e91688c8$export$5165eccb35aaadb5.displayName = 'PressResponderContext';
189
186
 
190
187
 
188
+
191
189
  function $0294ea432cd92340$var$usePressResponderContext(props) {
192
190
  // Consume context from <PressResponder> and merge with props.
193
191
  let context = $goTMa$react.useContext($01d3f539e91688c8$export$5165eccb35aaadb5);
@@ -294,8 +292,8 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
294
292
  };
295
293
  let pressProps = {
296
294
  onKeyDown (e) {
297
- if ($0294ea432cd92340$var$isValidKeyboardEvent(e.nativeEvent) && e.currentTarget.contains(e.target)) {
298
- if ($0294ea432cd92340$var$shouldPreventDefaultKeyboard(e.target)) e.preventDefault();
295
+ if ($0294ea432cd92340$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {
296
+ if ($0294ea432cd92340$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();
299
297
  e.stopPropagation();
300
298
  // If the event is repeating, it may have started on a different element
301
299
  // after which focus moved to the current element. Ignore these events and
@@ -308,10 +306,13 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
308
306
  // instead of the same element where the key down event occurred.
309
307
  addGlobalListener(document, 'keyup', onKeyUp, false);
310
308
  }
311
- }
309
+ } else if (e.key === 'Enter' && $0294ea432cd92340$var$isHTMLAnchorLink(e.currentTarget)) // If the target is a link, we won't have handled this above because we want the default
310
+ // browser behavior to open the link when pressing Enter. But we still need to prevent
311
+ // default so that elements above do not also handle it (e.g. table row).
312
+ e.stopPropagation();
312
313
  },
313
314
  onKeyUp (e) {
314
- if ($0294ea432cd92340$var$isValidKeyboardEvent(e.nativeEvent) && !e.repeat && e.currentTarget.contains(e.target)) triggerPressUp($0294ea432cd92340$var$createEvent(state.target, e), 'keyboard');
315
+ if ($0294ea432cd92340$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target)) triggerPressUp($0294ea432cd92340$var$createEvent(state.target, e), 'keyboard');
315
316
  },
316
317
  onClick (e) {
317
318
  if (e && !e.currentTarget.contains(e.target)) return;
@@ -333,8 +334,8 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
333
334
  }
334
335
  };
335
336
  let onKeyUp = (e)=>{
336
- if (state.isPressed && $0294ea432cd92340$var$isValidKeyboardEvent(e)) {
337
- if ($0294ea432cd92340$var$shouldPreventDefaultKeyboard(e.target)) e.preventDefault();
337
+ if (state.isPressed && $0294ea432cd92340$var$isValidKeyboardEvent(e, state.target)) {
338
+ if ($0294ea432cd92340$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();
338
339
  e.stopPropagation();
339
340
  state.isPressed = false;
340
341
  let target = e.target;
@@ -342,7 +343,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
342
343
  removeAllGlobalListeners();
343
344
  // If the target is a link, trigger the click method to open the URL,
344
345
  // but defer triggering pressEnd until onClick event handler.
345
- if (state.target.contains(target) && $0294ea432cd92340$var$isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link') state.target.click();
346
+ if (state.target instanceof HTMLElement && state.target.contains(target) && ($0294ea432cd92340$var$isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link')) state.target.click();
346
347
  }
347
348
  };
348
349
  if (typeof PointerEvent !== 'undefined') {
@@ -574,14 +575,13 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
574
575
  function $0294ea432cd92340$var$isHTMLAnchorLink(target) {
575
576
  return target.tagName === 'A' && target.hasAttribute('href');
576
577
  }
577
- function $0294ea432cd92340$var$isValidKeyboardEvent(event) {
578
- const { key: key , code: code , target: target } = event;
579
- const element = target;
580
- const { tagName: tagName , isContentEditable: isContentEditable } = element;
578
+ function $0294ea432cd92340$var$isValidKeyboardEvent(event, currentTarget) {
579
+ const { key: key , code: code } = event;
580
+ const element = currentTarget;
581
581
  const role = element.getAttribute('role');
582
582
  // Accessibility for keyboards. Space and Enter only.
583
583
  // "Spacebar" is for IE 11
584
- return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && tagName !== 'INPUT' && tagName !== 'TEXTAREA' && isContentEditable !== true && (!$0294ea432cd92340$var$isHTMLAnchorLink(element) || role === 'button' && key !== 'Enter') && // An element with role='link' should only trigger with Enter key
584
+ return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof HTMLInputElement && !$0294ea432cd92340$var$isValidInputKey(element, key) || element instanceof HTMLTextAreaElement || element.isContentEditable) && (!$0294ea432cd92340$var$isHTMLAnchorLink(element) || role === 'button' && key !== 'Enter') && // An element with role='link' should only trigger with Enter key
585
585
  !(role === 'link' && key !== 'Enter');
586
586
  }
587
587
  function $0294ea432cd92340$var$getTouchFromEvent(event) {
@@ -630,10 +630,27 @@ function $0294ea432cd92340$var$isOverTarget(point, target) {
630
630
  }
631
631
  function $0294ea432cd92340$var$shouldPreventDefault(target) {
632
632
  // We cannot prevent default if the target is a draggable element.
633
- return !target.draggable;
633
+ return !(target instanceof HTMLElement) || !target.draggable;
634
+ }
635
+ function $0294ea432cd92340$var$shouldPreventDefaultKeyboard(target, key) {
636
+ if (target instanceof HTMLInputElement) return !$0294ea432cd92340$var$isValidInputKey(target, key);
637
+ if (target instanceof HTMLButtonElement) return target.type !== 'submit';
638
+ return true;
634
639
  }
635
- function $0294ea432cd92340$var$shouldPreventDefaultKeyboard(target) {
636
- return !((target.tagName === 'INPUT' || target.tagName === 'BUTTON') && target.type === 'submit');
640
+ const $0294ea432cd92340$var$nonTextInputTypes = new Set([
641
+ 'checkbox',
642
+ 'radio',
643
+ 'range',
644
+ 'color',
645
+ 'file',
646
+ 'image',
647
+ 'button',
648
+ 'submit',
649
+ 'reset'
650
+ ]);
651
+ function $0294ea432cd92340$var$isValidInputKey(target, key) {
652
+ // Only space should toggle checkboxes and radios, not enter.
653
+ return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : $0294ea432cd92340$var$nonTextInputTypes.has(target.type);
637
654
  }
638
655
  function $0294ea432cd92340$var$isVirtualPointerEvent(event) {
639
656
  // If the pointer size is zero, then we assume it's from a screen reader.
@@ -663,9 +680,6 @@ const $e1dbec26039c051d$export$27c701ed9e449e99 = /*#__PURE__*/ ($parcel$interop
663
680
  });
664
681
 
665
682
 
666
- var $3596bae48579386f$exports = {};
667
-
668
- $parcel$export($3596bae48579386f$exports, "PressResponder", () => $3596bae48579386f$export$3351871ee4b288b8);
669
683
 
670
684
 
671
685
 
@@ -691,9 +705,6 @@ const $3596bae48579386f$export$3351871ee4b288b8 = /*#__PURE__*/ ($parcel$interop
691
705
  });
692
706
 
693
707
 
694
- var $5cb73d0ce355b0dc$exports = {};
695
-
696
- $parcel$export($5cb73d0ce355b0dc$exports, "useFocus", () => $5cb73d0ce355b0dc$export$f8168d8dd8fd66e6);
697
708
 
698
709
 
699
710
  function $5cb73d0ce355b0dc$export$f8168d8dd8fd66e6(props) {
@@ -729,14 +740,6 @@ function $5cb73d0ce355b0dc$export$f8168d8dd8fd66e6(props) {
729
740
  }
730
741
 
731
742
 
732
- var $e77252a287ef94ab$exports = {};
733
-
734
- $parcel$export($e77252a287ef94ab$exports, "isFocusVisible", () => $e77252a287ef94ab$export$b9b3dfddab17db27);
735
- $parcel$export($e77252a287ef94ab$exports, "getInteractionModality", () => $e77252a287ef94ab$export$630ff653c5ada6a9);
736
- $parcel$export($e77252a287ef94ab$exports, "setInteractionModality", () => $e77252a287ef94ab$export$8397ddfc504fdb9a);
737
- $parcel$export($e77252a287ef94ab$exports, "useInteractionModality", () => $e77252a287ef94ab$export$98e20ec92f614cfe);
738
- $parcel$export($e77252a287ef94ab$exports, "useFocusVisible", () => $e77252a287ef94ab$export$ffd9e5021c1fb2d6);
739
- $parcel$export($e77252a287ef94ab$exports, "useFocusVisibleListener", () => $e77252a287ef94ab$export$ec71b4b83ac08ec3);
740
743
 
741
744
 
742
745
 
@@ -894,9 +897,6 @@ function $e77252a287ef94ab$export$ec71b4b83ac08ec3(fn, deps, opts) {
894
897
  }
895
898
 
896
899
 
897
- var $d16842bbd0359d1b$exports = {};
898
-
899
- $parcel$export($d16842bbd0359d1b$exports, "useFocusWithin", () => $d16842bbd0359d1b$export$420e68273165f4ec);
900
900
 
901
901
 
902
902
  function $d16842bbd0359d1b$export$420e68273165f4ec(props) {
@@ -946,9 +946,6 @@ function $d16842bbd0359d1b$export$420e68273165f4ec(props) {
946
946
  }
947
947
 
948
948
 
949
- var $ffbc150311c75f01$exports = {};
950
-
951
- $parcel$export($ffbc150311c75f01$exports, "useHover", () => $ffbc150311c75f01$export$ae780daf29e6d456);
952
949
 
953
950
  // iOS fires onPointerEnter twice: once with pointerType="touch" and again with pointerType="mouse".
954
951
  // We want to ignore these emulated events so they do not trigger hover behavior.
@@ -1068,9 +1065,6 @@ function $ffbc150311c75f01$export$ae780daf29e6d456(props) {
1068
1065
  }
1069
1066
 
1070
1067
 
1071
- var $edcfa848c42f94f4$exports = {};
1072
-
1073
- $parcel$export($edcfa848c42f94f4$exports, "useInteractOutside", () => $edcfa848c42f94f4$export$872b660ac5a1ff98);
1074
1068
 
1075
1069
  function $edcfa848c42f94f4$export$872b660ac5a1ff98(props) {
1076
1070
  let { ref: ref , onInteractOutside: onInteractOutside , isDisabled: isDisabled , onInteractOutsideStart: onInteractOutsideStart } = props;
@@ -1149,9 +1143,6 @@ function $edcfa848c42f94f4$var$isValidEvent(event, ref) {
1149
1143
  }
1150
1144
 
1151
1145
 
1152
- var $892d64db2a3c53b0$exports = {};
1153
-
1154
- $parcel$export($892d64db2a3c53b0$exports, "useKeyboard", () => $892d64db2a3c53b0$export$8f71654801c2f7cd);
1155
1146
  function $951fbcbbca8db6ce$export$48d1ea6320830260(handler) {
1156
1147
  if (!handler) return;
1157
1148
  let shouldStopPropagation = true;
@@ -1188,9 +1179,6 @@ function $892d64db2a3c53b0$export$8f71654801c2f7cd(props) {
1188
1179
  }
1189
1180
 
1190
1181
 
1191
- var $c09386fc48fa427d$exports = {};
1192
-
1193
- $parcel$export($c09386fc48fa427d$exports, "useMove", () => $c09386fc48fa427d$export$36da96379f79f245);
1194
1182
 
1195
1183
 
1196
1184
 
@@ -1405,9 +1393,6 @@ function $c09386fc48fa427d$export$36da96379f79f245(props) {
1405
1393
 
1406
1394
 
1407
1395
 
1408
- var $a3dbce0aed7087e2$exports = {};
1409
-
1410
- $parcel$export($a3dbce0aed7087e2$exports, "useScrollWheel", () => $a3dbce0aed7087e2$export$2123ff2b87c81ca);
1411
1396
 
1412
1397
 
1413
1398
  function $a3dbce0aed7087e2$export$2123ff2b87c81ca(props, ref) {
@@ -1429,9 +1414,6 @@ function $a3dbce0aed7087e2$export$2123ff2b87c81ca(props, ref) {
1429
1414
  }
1430
1415
 
1431
1416
 
1432
- var $3cd7b5d0eebf0ca9$exports = {};
1433
-
1434
- $parcel$export($3cd7b5d0eebf0ca9$exports, "useLongPress", () => $3cd7b5d0eebf0ca9$export$c24ed0104d07eab9);
1435
1417
 
1436
1418
 
1437
1419
 
@@ -1494,18 +1476,6 @@ function $3cd7b5d0eebf0ca9$export$c24ed0104d07eab9(props) {
1494
1476
  }
1495
1477
 
1496
1478
 
1497
- $parcel$exportWildcard(module.exports, $e1dbec26039c051d$exports);
1498
- $parcel$exportWildcard(module.exports, $3596bae48579386f$exports);
1499
- $parcel$exportWildcard(module.exports, $5cb73d0ce355b0dc$exports);
1500
- $parcel$exportWildcard(module.exports, $e77252a287ef94ab$exports);
1501
- $parcel$exportWildcard(module.exports, $d16842bbd0359d1b$exports);
1502
- $parcel$exportWildcard(module.exports, $ffbc150311c75f01$exports);
1503
- $parcel$exportWildcard(module.exports, $edcfa848c42f94f4$exports);
1504
- $parcel$exportWildcard(module.exports, $892d64db2a3c53b0$exports);
1505
- $parcel$exportWildcard(module.exports, $c09386fc48fa427d$exports);
1506
- $parcel$exportWildcard(module.exports, $0294ea432cd92340$exports);
1507
- $parcel$exportWildcard(module.exports, $a3dbce0aed7087e2$exports);
1508
- $parcel$exportWildcard(module.exports, $3cd7b5d0eebf0ca9$exports);
1509
1479
 
1510
1480
 
1511
1481
  //# sourceMappingURL=main.js.map