@react-aria/focus
Advanced tools
Comparing version 3.0.0-nightly-10a43de88-241127 to 3.0.0-nightly-1286a652e-250116
var $1c7f9157d722357d$exports = require("./focusSafely.main.js"); | ||
var $d5156037ad898a4d$exports = require("./isElementVisible.main.js"); | ||
var $euGna$reactariainteractions = require("@react-aria/interactions"); | ||
var $euGna$reactariautils = require("@react-aria/utils"); | ||
@@ -35,2 +36,3 @@ var $euGna$react = require("react"); | ||
const $a7a032acae3ddda9$var$FocusContext = /*#__PURE__*/ (0, ($parcel$interopDefault($euGna$react))).createContext(null); | ||
@@ -230,3 +232,3 @@ const $a7a032acae3ddda9$var$RESTORE_FOCUS_EVENT = 'react-aria-focus-scope-restore'; | ||
'video[controls]', | ||
'[contenteditable]' | ||
'[contenteditable]:not([contenteditable^="false"])' | ||
]; | ||
@@ -301,4 +303,9 @@ const $a7a032acae3ddda9$var$FOCUSABLE_ELEMENT_SELECTOR = $a7a032acae3ddda9$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])'; | ||
raf.current = requestAnimationFrame(()=>{ | ||
// Patches infinite focus coersion loop for Android Talkback where the user isn't able to move the virtual cursor | ||
// if within a containing focus scope. Bug filed against Chrome: https://issuetracker.google.com/issues/384844019. | ||
// Note that this means focus can leave focus containing modals due to this, but it is isolated to Chrome Talkback. | ||
let modality = (0, $euGna$reactariainteractions.getInteractionModality)(); | ||
let shouldSkipFocusRestore = (modality === 'virtual' || modality === null) && (0, $euGna$reactariautils.isAndroid)() && (0, $euGna$reactariautils.isChrome)(); | ||
// Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe | ||
if (ownerDocument.activeElement && $a7a032acae3ddda9$var$shouldContainFocus(scopeRef) && !$a7a032acae3ddda9$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) { | ||
if (!shouldSkipFocusRestore && ownerDocument.activeElement && $a7a032acae3ddda9$var$shouldContainFocus(scopeRef) && !$a7a032acae3ddda9$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) { | ||
$a7a032acae3ddda9$var$activeScope = scopeRef; | ||
@@ -305,0 +312,0 @@ if (ownerDocument.body.contains(e.target)) { |
import {focusSafely as $6a99195332edec8b$export$80f3e147d781571c} from "./focusSafely.module.js"; | ||
import {isElementVisible as $645f2e67b85a24c9$export$e989c0fffaa6b27a} from "./isElementVisible.module.js"; | ||
import {useLayoutEffect as $cgawC$useLayoutEffect, getOwnerDocument as $cgawC$getOwnerDocument} from "@react-aria/utils"; | ||
import {getInteractionModality as $cgawC$getInteractionModality} from "@react-aria/interactions"; | ||
import {useLayoutEffect as $cgawC$useLayoutEffect, getOwnerDocument as $cgawC$getOwnerDocument, isAndroid as $cgawC$isAndroid, isChrome as $cgawC$isChrome} from "@react-aria/utils"; | ||
import $cgawC$react, {useRef as $cgawC$useRef, useContext as $cgawC$useContext, useMemo as $cgawC$useMemo, useEffect as $cgawC$useEffect} from "react"; | ||
@@ -20,2 +21,3 @@ | ||
const $9bf71ea28793e738$var$FocusContext = /*#__PURE__*/ (0, $cgawC$react).createContext(null); | ||
@@ -215,3 +217,3 @@ const $9bf71ea28793e738$var$RESTORE_FOCUS_EVENT = 'react-aria-focus-scope-restore'; | ||
'video[controls]', | ||
'[contenteditable]' | ||
'[contenteditable]:not([contenteditable^="false"])' | ||
]; | ||
@@ -286,4 +288,9 @@ const $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])'; | ||
raf.current = requestAnimationFrame(()=>{ | ||
// Patches infinite focus coersion loop for Android Talkback where the user isn't able to move the virtual cursor | ||
// if within a containing focus scope. Bug filed against Chrome: https://issuetracker.google.com/issues/384844019. | ||
// Note that this means focus can leave focus containing modals due to this, but it is isolated to Chrome Talkback. | ||
let modality = (0, $cgawC$getInteractionModality)(); | ||
let shouldSkipFocusRestore = (modality === 'virtual' || modality === null) && (0, $cgawC$isAndroid)() && (0, $cgawC$isChrome)(); | ||
// Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe | ||
if (ownerDocument.activeElement && $9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) { | ||
if (!shouldSkipFocusRestore && ownerDocument.activeElement && $9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) { | ||
$9bf71ea28793e738$var$activeScope = scopeRef; | ||
@@ -290,0 +297,0 @@ if (ownerDocument.body.contains(e.target)) { |
{ | ||
"name": "@react-aria/focus", | ||
"version": "3.0.0-nightly-10a43de88-241127", | ||
"version": "3.0.0-nightly-1286a652e-250116", | ||
"description": "Spectrum UI components in React", | ||
@@ -25,5 +25,5 @@ "license": "Apache-2.0", | ||
"dependencies": { | ||
"@react-aria/interactions": "^3.0.0-nightly-10a43de88-241127", | ||
"@react-aria/utils": "^3.0.0-nightly-10a43de88-241127", | ||
"@react-types/shared": "^3.0.0-nightly-10a43de88-241127", | ||
"@react-aria/interactions": "3.0.0-nightly-1286a652e-250116", | ||
"@react-aria/utils": "3.0.0-nightly-1286a652e-250116", | ||
"@react-types/shared": "3.0.0-nightly-1286a652e-250116", | ||
"@swc/helpers": "^0.5.0", | ||
@@ -33,8 +33,8 @@ "clsx": "^2.0.0" | ||
"peerDependencies": { | ||
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" | ||
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", | ||
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" | ||
}, | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"stableVersion": "3.19.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
387977
4443
7
+ Added@react-aria/interactions@3.0.0-nightly-1286a652e-250116(transitive)
+ Added@react-aria/ssr@3.0.0-nightly-1286a652e-250116(transitive)
+ Added@react-aria/utils@3.0.0-nightly-1286a652e-250116(transitive)
+ Added@react-stately/utils@3.0.0-nightly-1286a652e-250116(transitive)
+ Added@react-types/shared@3.0.0-nightly-1286a652e-250116(transitive)
- Removed@react-aria/interactions@3.23.0(transitive)
- Removed@react-aria/ssr@3.9.7(transitive)
- Removed@react-aria/utils@3.27.0(transitive)
- Removed@react-stately/utils@3.10.5(transitive)
- Removed@react-types/shared@3.27.0(transitive)
Updated@react-aria/interactions@3.0.0-nightly-1286a652e-250116