@tamagui/focus-scope 2.0.0-rc.3 → 2.0.0-rc.30

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.
@@ -133,13 +133,15 @@ function useFocusScope(props, forwardedRef) {
133
133
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null), containerRef.current = node, import_constants.isWeb && node && enabled && trapped && (trapCleanupRef.current = setupFocusTrap(node, lastFocusedElementRef, focusScopeRef.current)), setContainer(node);
134
134
  }, [enabled, trapped]),
135
135
  composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, setContainerRef);
136
- (0, import_constants.useIsomorphicLayoutEffect)(() => () => {
136
+ (0, import_constants.useIsomorphicLayoutEffect)(() => (trapped || (focusScope.stopped = !0, trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null)), () => {
137
137
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null);
138
- }, []), (0, import_use_async.useAsyncEffect)(async signal => {
138
+ }), [trapped, focusScope]), (0, import_use_async.useAsyncEffect)(async signal => {
139
139
  if (!enabled || !container || forceUnmount) return;
140
- focusScope.stopped = !1, focusScopesStack.add(focusScope);
140
+ trapped && (focusScope.stopped = !1), focusScopesStack.add(focusScope);
141
141
  const previouslyFocusedElement = document.activeElement;
142
- if (!container.contains(previouslyFocusedElement)) {
142
+ if (!(container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, {
143
+ upTo: container
144
+ }))) {
143
145
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
144
146
  if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
145
147
  focusOnIdle && (await (0, import_use_async.idle)(signal, typeof focusOnIdle == "object" ? focusOnIdle : {
@@ -159,9 +161,13 @@ function useFocusScope(props, forwardedRef) {
159
161
  return () => {
160
162
  focusScope.stop(), container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
161
163
  const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
162
- container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, {
163
- select: !0
164
- }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
164
+ if (container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), !unmountEvent.defaultPrevented) {
165
+ const currentFocus = document.activeElement;
166
+ currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus) || focus(previouslyFocusedElement ?? document.body, {
167
+ select: !0
168
+ });
169
+ }
170
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
165
171
  };
166
172
  }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope, focusOnIdle]);
167
173
  const handleKeyDown = React.useCallback(event => {
package/dist/cjs/index.js CHANGED
@@ -3,14 +3,17 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from == "object" || typeof from == "function")
7
- for (let key of __getOwnPropNames(from))
8
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
9
- return to;
10
- }, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
11
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
6
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
7
+ get: () => from[key],
8
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
9
+ });
10
+ return to;
11
+ },
12
+ __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
13
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
14
+ value: !0
15
+ }), mod);
12
16
  var index_exports = {};
13
17
  module.exports = __toCommonJS(index_exports);
14
- __reExport(index_exports, require("./FocusScope"), module.exports);
15
- __reExport(index_exports, require("./FocusScopeController"), module.exports);
16
- //# sourceMappingURL=index.js.map
18
+ __reExport(index_exports, require("./FocusScope.cjs"), module.exports);
19
+ __reExport(index_exports, require("./FocusScopeController.cjs"), module.exports);
@@ -96,13 +96,15 @@ function useFocusScope(props, forwardedRef) {
96
96
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null), containerRef.current = node, isWeb && node && enabled && trapped && (trapCleanupRef.current = setupFocusTrap(node, lastFocusedElementRef, focusScopeRef.current)), setContainer(node);
97
97
  }, [enabled, trapped]),
98
98
  composedRefs = useComposedRefs(forwardedRef, setContainerRef);
99
- useIsomorphicLayoutEffect(() => () => {
99
+ useIsomorphicLayoutEffect(() => (trapped || (focusScope.stopped = !0, trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null)), () => {
100
100
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null);
101
- }, []), useAsyncEffect(async signal => {
101
+ }), [trapped, focusScope]), useAsyncEffect(async signal => {
102
102
  if (!enabled || !container || forceUnmount) return;
103
- focusScope.stopped = !1, focusScopesStack.add(focusScope);
103
+ trapped && (focusScope.stopped = !1), focusScopesStack.add(focusScope);
104
104
  const previouslyFocusedElement = document.activeElement;
105
- if (!container.contains(previouslyFocusedElement)) {
105
+ if (!(container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, {
106
+ upTo: container
107
+ }))) {
106
108
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
107
109
  if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
108
110
  focusOnIdle && (await idle(signal, typeof focusOnIdle == "object" ? focusOnIdle : {
@@ -122,9 +124,13 @@ function useFocusScope(props, forwardedRef) {
122
124
  return () => {
123
125
  focusScope.stop(), container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
124
126
  const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
125
- container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, {
126
- select: !0
127
- }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
127
+ if (container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), !unmountEvent.defaultPrevented) {
128
+ const currentFocus = document.activeElement;
129
+ currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus) || focus(previouslyFocusedElement ?? document.body, {
130
+ select: !0
131
+ });
132
+ }
133
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
128
134
  };
129
135
  }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope, focusOnIdle]);
130
136
  const handleKeyDown = React.useCallback(event => {
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","isWeb","useIsomorphicLayoutEffect","idle","useAsyncEffect","useEvent","React","useFocusScopeControllerContext","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","__scopeFocusScope","props","forwardedRef","context","warn","fallback","mergedProps","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","childProps","useFocusScope","children","cloneElement","Children","only","setupFocusTrap","container","lastFocusedElementRef","focusScope","controller","AbortController","rafId","scheduleRefocus","elementToFocus","current","requestAnimationFrame","paused","stopped","isConnected","contains","document","activeElement","focus","handleFocusIn","event","target","addEventListener","handleBlur","signal","handleFocusOut","abort","relatedTarget","cancelAnimationFrame","removeEventListener","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","setContainer","useState","containerRef","useRef","focusScopeRef","pause","resume","stop","trapCleanupRef","setContainerRef","useCallback","node","composedRefs","focusScopesStack","add","previouslyFocusedElement","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","max","min","allCandidates","getTabbableCandidates","visibleCandidates","removeLinks","filter","candidate","isHidden","upTo","focusFirst","select","length","unmountEvent","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","first","last","getTabbableEdges","shiftKey","preventDefault","useEffect","handleKeyDownCapture","existingOnKeyDown","onKeyDown","composedOnKeyDown","ref","candidates","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","isWeb","useIsomorphicLayoutEffect","idle","useAsyncEffect","useEvent","React","useFocusScopeControllerContext","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","__scopeFocusScope","props","forwardedRef","context","warn","fallback","mergedProps","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","childProps","useFocusScope","children","cloneElement","Children","only","setupFocusTrap","container","lastFocusedElementRef","focusScope","controller","AbortController","rafId","scheduleRefocus","elementToFocus","current","requestAnimationFrame","paused","stopped","isConnected","contains","document","activeElement","focus","handleFocusIn","event","target","addEventListener","handleBlur","signal","handleFocusOut","abort","relatedTarget","cancelAnimationFrame","removeEventListener","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","setContainer","useState","containerRef","useRef","focusScopeRef","pause","resume","stop","trapCleanupRef","setContainerRef","useCallback","node","composedRefs","focusScopesStack","add","previouslyFocusedElement","isHidden","upTo","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","max","min","allCandidates","getTabbableCandidates","visibleCandidates","removeLinks","filter","candidate","focusFirst","select","length","unmountEvent","currentFocus","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","first","last","getTabbableEdges","shiftKey","preventDefault","useEffect","handleKeyDownCapture","existingOnKeyDown","onKeyDown","composedOnKeyDown","ref","candidates","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,KAAA,EAAOC,yBAAA,QAAiC;AACjD,SAASC,IAAA,EAAMC,cAAA,QAAsB;AACrC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AACvB,SAASC,8BAAA,QAAsC;AAwClC,SAAAC,QAAA,EAAAC,GAAA;AArCb,MAAMC,kBAAA,GAAqB;EACrBC,oBAAA,GAAuB;EACvBC,aAAA,GAAgB;IAAEC,OAAA,EAAS;IAAOC,UAAA,EAAY;EAAK;EAUnDC,UAAA,GAAaT,KAAA,CAAMU,UAAA,CACvB,UACE;IAAEC,iBAAA;IAAmB,GAAGC;EAAM,GAC9BC,YAAA,EACA;IAEA,MAAMC,OAAA,GAAUb,8BAAA,CAA+B,cAAcU,iBAAA,EAAmB;QAC9EI,IAAA,EAAM;QACNC,QAAA,EAAU,CAAC;MACb,CAAC;MAEKC,WAAA,GAA+B;QACnC,GAAGL,KAAA;QACHM,OAAA,EAASJ,OAAA,CAAQI,OAAA,IAAWN,KAAA,CAAMM,OAAA;QAClCC,IAAA,EAAML,OAAA,CAAQK,IAAA,IAAQP,KAAA,CAAMO,IAAA;QAC5BC,OAAA,EAASN,OAAA,CAAQM,OAAA,IAAWR,KAAA,CAAMQ,OAAA;QAClCC,gBAAA,EAAkBP,OAAA,CAAQO,gBAAA,IAAoBT,KAAA,CAAMS,gBAAA;QACpDC,kBAAA,EAAoBR,OAAA,CAAQQ,kBAAA,IAAsBV,KAAA,CAAMU,kBAAA;QACxDC,YAAA,EAAcT,OAAA,CAAQS,YAAA,IAAgBX,KAAA,CAAMW,YAAA;QAC5CC,WAAA,EAAaV,OAAA,CAAQU,WAAA,IAAeZ,KAAA,CAAMY;MAC5C;MAEMC,UAAA,GAAaC,aAAA,CAAcT,WAAA,EAAaJ,YAAY;IAE1D,OAAI,OAAOI,WAAA,CAAYU,QAAA,IAAa,aAC3B,eAAAxB,GAAA,CAAAD,QAAA;MAAGyB,QAAA,EAAAV,WAAA,CAAYU,QAAA,CAASF,UAAU;IAAA,CAAE,IAGtCzB,KAAA,CAAM4B,YAAA,CACX5B,KAAA,CAAM6B,QAAA,CAASC,IAAA,CAAKb,WAAA,CAAYU,QAAQ,GACxCF,UACF;EACF,CACF;AAcA,SAASM,eACPC,SAAA,EACAC,qBAAA,EACAC,UAAA,EACY;EACZ,MAAMC,UAAA,GAAa,IAAIC,eAAA,CAAgB;EAIvC,IAAIC,KAAA,GAAuB;EAE3B,SAASC,gBAAA,EAAkB;IACzB,IAAID,KAAA,EAAO;IACX,MAAME,cAAA,GAAiBN,qBAAA,CAAsBO,OAAA;IAC7CH,KAAA,GAAQI,qBAAA,CAAsB,MAAM;MAClCJ,KAAA,GAAQ,MACJ,CAAAH,UAAA,CAAWQ,MAAA,KAEXR,UAAA,CAAWS,OAAA,IAEVX,SAAA,CAAUY,WAAA,KAEVZ,SAAA,CAAUa,QAAA,CAASC,QAAA,CAASC,aAAa,KAC5CC,KAAA,CAAMT,cAAc;IAExB,CAAC;EACH;EAEA,SAASU,cAAcC,KAAA,EAAmB;IACxC,IAAIhB,UAAA,CAAWQ,MAAA,EAAQ;IACvB,MAAMS,MAAA,GAASD,KAAA,CAAMC,MAAA;IAEjBnB,SAAA,CAAUa,QAAA,CAASM,MAAM,KAE3BA,MAAA,EAAQC,gBAAA,CAAiB,QAAQC,UAAA,EAAY;MAAEC,MAAA,EAAQnB,UAAA,CAAWmB;IAAO,CAAC,GAC1ErB,qBAAA,CAAsBO,OAAA,GAAUW,MAAA,IAGhCb,eAAA,CAAgB;EAEpB;EAEA,SAASiB,eAAeL,KAAA,EAAmB;IACzCf,UAAA,CAAWqB,KAAA,CAAM,GACb,CAAAtB,UAAA,CAAWQ,MAAA,KACVV,SAAA,CAAUa,QAAA,CAASK,KAAA,CAAMO,aAAmC,KAE/DnB,eAAA,CAAgB;EAEpB;EAIA,SAASe,WAAA,EAAa,CAAC;EAEvB,OAAAP,QAAA,CAASM,gBAAA,CAAiB,WAAWH,aAAa,GAClDH,QAAA,CAASM,gBAAA,CAAiB,YAAYG,cAAc,GAE7C,MAAM;IACPlB,KAAA,KACFqB,oBAAA,CAAqBrB,KAAK,GAC1BA,KAAA,GAAQ,OAEVF,UAAA,CAAWqB,KAAA,CAAM,GACjBV,QAAA,CAASa,mBAAA,CAAoB,WAAWV,aAAa,GACrDH,QAAA,CAASa,mBAAA,CAAoB,YAAYJ,cAAc;EACzD;AACF;AAMO,SAAS7B,cACdd,KAAA,EACAC,YAAA,EACA;EACA,MAAM;MACJM,IAAA,GAAO;MACPD,OAAA,GAAU;MACVE,OAAA,GAAU;MACVC,gBAAA,EAAkBuC,oBAAA;MAClBtC,kBAAA,EAAoBuC,sBAAA;MACpBtC,YAAA;MACAC,WAAA,GAAc;MACdG,QAAA;MACA,GAAGmC;IACL,IAAIlD,KAAA;IACE,CAACoB,SAAA,EAAW+B,YAAY,IAAI/D,KAAA,CAAMgE,QAAA,CAA6B,IAAI;IACnEC,YAAA,GAAejE,KAAA,CAAMkE,MAAA,CAA2B,IAAI;IACpD7C,gBAAA,GAAmBtB,QAAA,CAAS6D,oBAAoB;IAChDtC,kBAAA,GAAqBvB,QAAA,CAAS8D,sBAAsB;IACpD5B,qBAAA,GAAwBjC,KAAA,CAAMkE,MAAA,CAA2B,IAAI;IAE7DC,aAAA,GAAgBnE,KAAA,CAAMkE,MAAA,CAAO;MACjCxB,MAAA,EAAQ;MACRC,OAAA,EAAS;MAAA;MACTyB,MAAA,EAAQ;QACN,KAAK1B,MAAA,GAAS;MAChB;MACA2B,OAAA,EAAS;QACP,KAAK3B,MAAA,GAAS;MAChB;MACA4B,KAAA,EAAO;QACL,KAAK3B,OAAA,GAAU;MACjB;IACF,CAAC;IACKT,UAAA,GAAaiC,aAAA,CAAc3B,OAAA;IAE3B+B,cAAA,GAAiBvE,KAAA,CAAMkE,MAAA,CAA4B,IAAI;IACvDM,eAAA,GAAkBxE,KAAA,CAAMyE,WAAA,CAC3BC,IAAA,IAA6B;MAExBH,cAAA,CAAe/B,OAAA,KACjB+B,cAAA,CAAe/B,OAAA,CAAQ,GACvB+B,cAAA,CAAe/B,OAAA,GAAU,OAG3ByB,YAAA,CAAazB,OAAA,GAAUkC,IAAA,EAInB/E,KAAA,IAAS+E,IAAA,IAAQxD,OAAA,IAAWE,OAAA,KAC9BmD,cAAA,CAAe/B,OAAA,GAAUT,cAAA,CACvB2C,IAAA,EACAzC,qBAAA,EACAkC,aAAA,CAAc3B,OAChB,IAGFuB,YAAA,CAAaW,IAAI;IACnB,GACA,CAACxD,OAAA,EAASE,OAAO,CACnB;IACMuD,YAAA,GAAejF,eAAA,CAAgBmB,YAAA,EAAc2D,eAAe;EAGlE5E,yBAAA,CAA0B,OACnBwB,OAAA,KAEHc,UAAA,CAAWS,OAAA,GAAU,IACjB4B,cAAA,CAAe/B,OAAA,KACjB+B,cAAA,CAAe/B,OAAA,CAAQ,GACvB+B,cAAA,CAAe/B,OAAA,GAAU,QAGtB,MAAM;IACP+B,cAAA,CAAe/B,OAAA,KACjB+B,cAAA,CAAe/B,OAAA,CAAQ,GACvB+B,cAAA,CAAe/B,OAAA,GAAU;EAE7B,IACC,CAACpB,OAAA,EAASc,UAAU,CAAC,GAExBpC,cAAA,CACE,MAAOwD,MAAA,IAAW;IAGhB,IAFI,CAACpC,OAAA,IACD,CAACc,SAAA,IACDT,YAAA,EAAc;IAKdH,OAAA,KACFc,UAAA,CAAWS,OAAA,GAAU,KAEvBiC,gBAAA,CAAiBC,GAAA,CAAI3C,UAAU;IAC/B,MAAM4C,wBAAA,GAA2BhC,QAAA,CAASC,aAAA;IAM1C,IAAI,EAJFf,SAAA,CAAUa,QAAA,CAASiC,wBAAwB,KAC3CA,wBAAA,KAA6B,QAC7B,CAACC,QAAA,CAASD,wBAAA,EAA0B;MAAEE,IAAA,EAAMhD;IAAU,CAAC,IAE/B;MACxB,MAAMiD,UAAA,GAAa,IAAIC,WAAA,CAAY9E,kBAAA,EAAoBE,aAAa;MAIpE,IAHA0B,SAAA,CAAUoB,gBAAA,CAAiBhD,kBAAA,EAAoBiB,gBAAgB,GAC/DW,SAAA,CAAUmD,aAAA,CAAcF,UAAU,GAE9B,CAACA,UAAA,CAAWG,gBAAA,EAAkB;QAE5B5D,WAAA,KACF,MAAM3B,IAAA,CACJyD,MAAA,EACA,OAAO9B,WAAA,IAAe,WAClBA,WAAA,GACA;UAAA;UAEE6D,GAAA,EAAK;UACLC,GAAA,EAAK,OAAO9D,WAAA,IAAe,WAAWA,WAAA,GAAc;QACtD,CACN;QAGF,MAAM+D,aAAA,GAAgBC,qBAAA,CAAsBxD,SAAS;UAE/CyD,iBAAA,GADgBC,WAAA,CAAYH,aAAa,EACPI,MAAA,CACrCC,SAAA,IAAc,CAACb,QAAA,CAASa,SAAA,EAAW;YAAEZ,IAAA,EAAMhD;UAAU,CAAC,CACzD;QAEA6D,UAAA,CAAWJ,iBAAA,EAAmB;UAAEK,MAAA,EAAQ;QAAK,CAAC,GAG1CL,iBAAA,CAAkBM,MAAA,GAAS,IAC7B9D,qBAAA,CAAsBO,OAAA,GAAUiD,iBAAA,CAAkB,CAAC,IAEnDxD,qBAAA,CAAsBO,OAAA,GAAUR,SAAA,EAKhCc,QAAA,CAASC,aAAA,KAAkB+B,wBAAA,IAC3BW,iBAAA,CAAkBM,MAAA,KAAW,KAE7B/C,KAAA,CAAMhB,SAAS;MAEnB;IACF;IAEA,OAAO,MAAM;MAEXE,UAAA,CAAWoC,IAAA,CAAK,GAEhBtC,SAAA,CAAU2B,mBAAA,CAAoBvD,kBAAA,EAAoBiB,gBAAgB;MAElE,MAAM2E,YAAA,GAAe,IAAId,WAAA,CAAY7E,oBAAA,EAAsBC,aAAa;MAGxE,IAFA0B,SAAA,CAAUoB,gBAAA,CAAiB/C,oBAAA,EAAsBiB,kBAAkB,GACnEU,SAAA,CAAUmD,aAAA,CAAca,YAAY,GAChC,CAACA,YAAA,CAAaZ,gBAAA,EAAkB;QAIlC,MAAMa,YAAA,GAAenD,QAAA,CAASC,aAAA;QAE5BkD,YAAA,IACAA,YAAA,KAAiBnD,QAAA,CAASoD,IAAA,IAC1BD,YAAA,KAAiBjE,SAAA,IACjB,CAACA,SAAA,CAAUa,QAAA,CAASoD,YAAY,KAGhCjD,KAAA,CAAM8B,wBAAA,IAA4BhC,QAAA,CAASoD,IAAA,EAAM;UAAEJ,MAAA,EAAQ;QAAK,CAAC;MAErE;MAEA9D,SAAA,CAAU2B,mBAAA,CAAoBtD,oBAAA,EAAsBiB,kBAAkB,GAEtEsD,gBAAA,CAAiBuB,MAAA,CAAOjE,UAAU;IACpC;EACF,GACA,CACEhB,OAAA,EACAc,SAAA,EACAT,YAAA,EACAF,gBAAA,EACAC,kBAAA,EACAY,UAAA,EACAV,WAAA,CAEJ;EAGA,MAAM4E,aAAA,GAAgBpG,KAAA,CAAMyE,WAAA,CACzBvB,KAAA,IAA+C;IAK9C,IAJI,CAAC9B,OAAA,IACD,CAACD,IAAA,IACDe,UAAA,CAAWQ,MAAA,IACX,CAACxB,OAAA,IACD,CAACc,SAAA,EAAW;IAEhB,MAAMqE,QAAA,GACJnD,KAAA,CAAMoD,GAAA,KAAQ,SAAS,CAACpD,KAAA,CAAMqD,MAAA,IAAU,CAACrD,KAAA,CAAMsD,OAAA,IAAW,CAACtD,KAAA,CAAMuD,OAAA;MAC7DC,cAAA,GAAiB5D,QAAA,CAASC,aAAA;IAEhC,IAAIsD,QAAA,IAAYK,cAAA,EAAgB;MAC9B,MAAM,CAACC,KAAA,EAAOC,IAAI,IAAIC,gBAAA,CAAiB7E,SAAS;MACd2E,KAAA,IAASC,IAAA,GAMrC,CAAC1D,KAAA,CAAM4D,QAAA,IAAYJ,cAAA,KAAmBE,IAAA,IACxC1D,KAAA,CAAM6D,cAAA,CAAe,GACjB5F,IAAA,IAAM6B,KAAA,CAAM2D,KAAA,EAAO;QAAEb,MAAA,EAAQ;MAAK,CAAC,KAC9B5C,KAAA,CAAM4D,QAAA,IAAYJ,cAAA,KAAmBC,KAAA,KAC9CzD,KAAA,CAAM6D,cAAA,CAAe,GACjB5F,IAAA,IAAM6B,KAAA,CAAM4D,IAAA,EAAM;QAAEd,MAAA,EAAQ;MAAK,CAAC,KAPpCY,cAAA,KAAmB1E,SAAA,IAAWkB,KAAA,CAAM6D,cAAA,CAAe;IAU3D;EACF,GACA,CAAC5F,IAAA,EAAMC,OAAA,EAASc,UAAA,CAAWQ,MAAA,EAAQxB,OAAA,EAASc,SAAS,CACvD;EAGAhC,KAAA,CAAMgH,SAAA,CAAU,MAAM;IAIpB,IAHI,CAAChF,SAAA,IACD,CAACZ,OAAA,IACD,CAACD,IAAA,IACD,CAACD,OAAA,EAAS;IAEd,MAAM+F,oBAAA,GAAwB/D,KAAA,IAAyB;MAEjDA,KAAA,CAAMoD,GAAA,KAAQ,SAChBF,aAAA,CAAclD,KAAK;IAEvB;IAGA,OAAAlB,SAAA,CAAUoB,gBAAA,CAAiB,WAAW6D,oBAAA,EAAsB,EAAI,GAEzD,MAAM;MACXjF,SAAA,CAAU2B,mBAAA,CAAoB,WAAWsD,oBAAA,EAAsB,EAAI;IACrE;EACF,GAAG,CAACjF,SAAA,EAAWZ,OAAA,EAASD,IAAA,EAAMD,OAAA,EAASkF,aAAa,CAAC;EAErD,MAAMc,iBAAA,GAAqBpD,UAAA,CAAmBqD,SAAA;IAExCC,iBAAA,GAAoBpH,KAAA,CAAMyE,WAAA,CAC7BvB,KAAA,IAA+B;MAC9BgE,iBAAA,GAAoBhE,KAAK;IAE3B,GACA,CAACgE,iBAAiB,CACpB;EAEA,OAAO;IACL,GAAGpD,UAAA;IACHuD,GAAA,EAAK1C,YAAA;IACLwC,SAAA,EAAWC;EACb;AACF;AAUA,SAASvB,WAAWyB,UAAA,EAA2B;EAAExB,MAAA,GAAS;AAAM,IAAI,CAAC,GAAG;EACtE,MAAMhB,wBAAA,GAA2BhC,QAAA,CAASC,aAAA;EAC1C,WAAW6C,SAAA,IAAa0B,UAAA,EAEtB,IADAtE,KAAA,CAAM4C,SAAA,EAAW;IAAEE;EAAO,CAAC,GACvBhD,QAAA,CAASC,aAAA,KAAkB+B,wBAAA,EAA0B;AAE7D;AAKA,SAAS+B,iBAAiB7E,SAAA,EAAwB;EAChD,MAAMsF,UAAA,GAAa9B,qBAAA,CAAsBxD,SAAS;IAC5C2E,KAAA,GAAQY,WAAA,CAAYD,UAAA,EAAYtF,SAAS;IACzC4E,IAAA,GAAOW,WAAA,CAAYD,UAAA,CAAWE,OAAA,CAAQ,GAAGxF,SAAS;EAExD,OAAO,CAAC2E,KAAA,EAAOC,IAAI;AACrB;AAYA,SAASpB,sBAAsBxD,SAAA,EAAwB;EACrD,MAAMyF,KAAA,GAAuB,EAAC;IACxBC,MAAA,GAAS5E,QAAA,CAAS6E,gBAAA,CAAiB3F,SAAA,EAAW4F,UAAA,CAAWC,YAAA,EAAc;MAC3EC,UAAA,EAAapD,IAAA,IAAc;QACzB,MAAMqD,aAAA,GAAgBrD,IAAA,CAAKsD,OAAA,KAAY,WAAWtD,IAAA,CAAKuD,IAAA,KAAS;QAChE,OAAIvD,IAAA,CAAKwD,QAAA,IAAYxD,IAAA,CAAKyD,MAAA,IAAUJ,aAAA,GAAsBH,UAAA,CAAWQ,WAAA,GAI9D1D,IAAA,CAAK2D,QAAA,IAAY,IAAIT,UAAA,CAAWU,aAAA,GAAgBV,UAAA,CAAWQ,WAAA;MACpE;IACF,CAAC;EACD,OAAOV,MAAA,CAAOa,QAAA,CAAS,IAAGd,KAAA,CAAMe,IAAA,CAAKd,MAAA,CAAOe,WAA0B;EAGtE,OAAOhB,KAAA;AACT;AAMA,SAASF,YAAYmB,QAAA,EAAyB1G,SAAA,EAAwB;EACpE,WAAW2G,OAAA,IAAWD,QAAA,EAEpB,IAAI,CAAC3D,QAAA,CAAS4D,OAAA,EAAS;IAAE3D,IAAA,EAAMhD;EAAU,CAAC,GAAG,OAAO2G,OAAA;AAExD;AAEA,SAAS5D,SAASL,IAAA,EAAmB;EAAEM;AAAK,GAA2B;EACrE,IAAI4D,gBAAA,CAAiBlE,IAAI,EAAEmE,UAAA,KAAe,UAAU,OAAO;EAC3D,OAAOnE,IAAA,GAAM;IAEX,IAAIM,IAAA,KAAS,UAAaN,IAAA,KAASM,IAAA,EAAM,OAAO;IAChD,IAAI4D,gBAAA,CAAiBlE,IAAI,EAAEoE,OAAA,KAAY,QAAQ,OAAO;IACtDpE,IAAA,GAAOA,IAAA,CAAKqE,aAAA;EACd;EACA,OAAO;AACT;AAEA,SAASC,kBACPL,OAAA,EACqD;EACrD,OAAOA,OAAA,YAAmBM,gBAAA,IAAoB,YAAYN,OAAA;AAC5D;AAEA,SAAS3F,MAAM2F,OAAA,EAAkC;EAAE7C,MAAA,GAAS;AAAM,IAAI,CAAC,GAAG;EAExE,IAAI6C,OAAA,EAAS3F,KAAA,EAAO;IAClB,MAAM8B,wBAAA,GAA2BhC,QAAA,CAASC,aAAA;IAE1C,IAAI;MACF4F,OAAA,CAAQ3F,KAAA,CAAM;QAAEkG,aAAA,EAAe;MAAK,CAAC,GAEjCP,OAAA,KAAY7D,wBAAA,IAA4BkE,iBAAA,CAAkBL,OAAO,KAAK7C,MAAA,IACxE6C,OAAA,CAAQ7C,MAAA,CAAO;IACnB,QAAgB,CAEhB;EACF;AACF;AAMA,MAAMlB,gBAAA,GAAmBuE,sBAAA,CAAuB;AAEhD,SAASA,uBAAA,EAAyB;EAEhC,IAAIC,KAAA,GAAyB,EAAC;EAE9B,OAAO;IACLvE,IAAI3C,UAAA,EAA2B;MAE7B,MAAMmH,gBAAA,GAAmBD,KAAA,CAAM,CAAC;MAC5BlH,UAAA,KAAemH,gBAAA,IACjBA,gBAAA,EAAkBjF,KAAA,CAAM,GAG1BgF,KAAA,GAAQE,WAAA,CAAYF,KAAA,EAAOlH,UAAU,GACrCkH,KAAA,CAAMG,OAAA,CAAQrH,UAAU;IAC1B;IAEAiE,OAAOjE,UAAA,EAA2B;MAChCkH,KAAA,GAAQE,WAAA,CAAYF,KAAA,EAAOlH,UAAU,GACrCkH,KAAA,CAAM,CAAC,GAAG/E,MAAA,CAAO;IACnB;EACF;AACF;AAEA,SAASiF,YAAeE,KAAA,EAAYC,IAAA,EAAS;EAC3C,MAAMC,YAAA,GAAe,CAAC,GAAGF,KAAK;IACxBG,KAAA,GAAQD,YAAA,CAAaE,OAAA,CAAQH,IAAI;EACvC,OAAIE,KAAA,KAAU,MACZD,YAAA,CAAaG,MAAA,CAAOF,KAAA,EAAO,CAAC,GAEvBD,YAAA;AACT;AAEA,SAAShE,YAAYoE,KAAA,EAAsB;EACzC,OAAOA,KAAA,CAAMnE,MAAA,CAAQ8D,IAAA,IAASA,IAAA,CAAKzB,OAAA,KAAY,GAAG;AACpD","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./FocusScope";
2
- export * from "./FocusScopeController";
1
+ export * from "./FocusScope.mjs";
2
+ export * from "./FocusScopeController.mjs";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
@@ -96,13 +96,15 @@ function useFocusScope(props, forwardedRef) {
96
96
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null), containerRef.current = node, isWeb && node && enabled && trapped && (trapCleanupRef.current = setupFocusTrap(node, lastFocusedElementRef, focusScopeRef.current)), setContainer(node);
97
97
  }, [enabled, trapped]),
98
98
  composedRefs = useComposedRefs(forwardedRef, setContainerRef);
99
- useIsomorphicLayoutEffect(() => () => {
99
+ useIsomorphicLayoutEffect(() => (trapped || (focusScope.stopped = !0, trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null)), () => {
100
100
  trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null);
101
- }, []), useAsyncEffect(async signal => {
101
+ }), [trapped, focusScope]), useAsyncEffect(async signal => {
102
102
  if (!enabled || !container || forceUnmount) return;
103
- focusScope.stopped = !1, focusScopesStack.add(focusScope);
103
+ trapped && (focusScope.stopped = !1), focusScopesStack.add(focusScope);
104
104
  const previouslyFocusedElement = document.activeElement;
105
- if (!container.contains(previouslyFocusedElement)) {
105
+ if (!(container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, {
106
+ upTo: container
107
+ }))) {
106
108
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
107
109
  if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
108
110
  focusOnIdle && (await idle(signal, typeof focusOnIdle == "object" ? focusOnIdle : {
@@ -122,9 +124,13 @@ function useFocusScope(props, forwardedRef) {
122
124
  return () => {
123
125
  focusScope.stop(), container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
124
126
  const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
125
- container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, {
126
- select: !0
127
- }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
127
+ if (container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), !unmountEvent.defaultPrevented) {
128
+ const currentFocus = document.activeElement;
129
+ currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus) || focus(previouslyFocusedElement ?? document.body, {
130
+ select: !0
131
+ });
132
+ }
133
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
128
134
  };
129
135
  }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope, focusOnIdle]);
130
136
  const handleKeyDown = React.useCallback(event => {
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","isWeb","useIsomorphicLayoutEffect","idle","useAsyncEffect","useEvent","React","useFocusScopeControllerContext","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","__scopeFocusScope","props","forwardedRef","context","warn","fallback","mergedProps","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","childProps","useFocusScope","children","cloneElement","Children","only","setupFocusTrap","container","lastFocusedElementRef","focusScope","controller","AbortController","rafId","scheduleRefocus","elementToFocus","current","requestAnimationFrame","paused","stopped","isConnected","contains","document","activeElement","focus","handleFocusIn","event","target","addEventListener","handleBlur","signal","handleFocusOut","abort","relatedTarget","cancelAnimationFrame","removeEventListener","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","setContainer","useState","containerRef","useRef","focusScopeRef","pause","resume","stop","trapCleanupRef","setContainerRef","useCallback","node","composedRefs","focusScopesStack","add","previouslyFocusedElement","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","max","min","allCandidates","getTabbableCandidates","visibleCandidates","removeLinks","filter","candidate","isHidden","upTo","focusFirst","select","length","unmountEvent","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","first","last","getTabbableEdges","shiftKey","preventDefault","useEffect","handleKeyDownCapture","existingOnKeyDown","onKeyDown","composedOnKeyDown","ref","candidates","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","isWeb","useIsomorphicLayoutEffect","idle","useAsyncEffect","useEvent","React","useFocusScopeControllerContext","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","__scopeFocusScope","props","forwardedRef","context","warn","fallback","mergedProps","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","childProps","useFocusScope","children","cloneElement","Children","only","setupFocusTrap","container","lastFocusedElementRef","focusScope","controller","AbortController","rafId","scheduleRefocus","elementToFocus","current","requestAnimationFrame","paused","stopped","isConnected","contains","document","activeElement","focus","handleFocusIn","event","target","addEventListener","handleBlur","signal","handleFocusOut","abort","relatedTarget","cancelAnimationFrame","removeEventListener","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","setContainer","useState","containerRef","useRef","focusScopeRef","pause","resume","stop","trapCleanupRef","setContainerRef","useCallback","node","composedRefs","focusScopesStack","add","previouslyFocusedElement","isHidden","upTo","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","max","min","allCandidates","getTabbableCandidates","visibleCandidates","removeLinks","filter","candidate","focusFirst","select","length","unmountEvent","currentFocus","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","first","last","getTabbableEdges","shiftKey","preventDefault","useEffect","handleKeyDownCapture","existingOnKeyDown","onKeyDown","composedOnKeyDown","ref","candidates","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","tabIndex","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/jsx/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./FocusScope";
2
- export * from "./FocusScopeController";
1
+ export * from "./FocusScope.mjs";
2
+ export * from "./FocusScopeController.mjs";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/focus-scope",
3
- "version": "2.0.0-rc.3",
3
+ "version": "2.0.0-rc.30",
4
4
  "source": "src/index.ts",
5
5
  "files": [
6
6
  "src",
@@ -16,15 +16,12 @@
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "react-native": {
20
- "module": "./dist/esm/index.native.js",
21
- "import": "./dist/esm/index.native.js",
22
- "require": "./dist/cjs/index.native.js"
23
- },
19
+ "react-native": "./dist/esm/index.native.js",
20
+ "browser": "./dist/esm/index.mjs",
24
21
  "module": "./dist/esm/index.mjs",
25
22
  "import": "./dist/esm/index.mjs",
26
23
  "require": "./dist/cjs/index.cjs",
27
- "default": "./dist/cjs/index.native.js"
24
+ "default": "./dist/esm/index.mjs"
28
25
  }
29
26
  },
30
27
  "publishConfig": {
@@ -37,15 +34,15 @@
37
34
  "clean:build": "tamagui-build clean:build"
38
35
  },
39
36
  "dependencies": {
40
- "@tamagui/compose-refs": "2.0.0-rc.3",
41
- "@tamagui/constants": "2.0.0-rc.3",
42
- "@tamagui/create-context": "2.0.0-rc.3",
43
- "@tamagui/start-transition": "2.0.0-rc.3",
44
- "@tamagui/use-async": "2.0.0-rc.3",
45
- "@tamagui/use-event": "2.0.0-rc.3"
37
+ "@tamagui/compose-refs": "2.0.0-rc.30",
38
+ "@tamagui/constants": "2.0.0-rc.30",
39
+ "@tamagui/create-context": "2.0.0-rc.30",
40
+ "@tamagui/start-transition": "2.0.0-rc.30",
41
+ "@tamagui/use-async": "2.0.0-rc.30",
42
+ "@tamagui/use-event": "2.0.0-rc.30"
46
43
  },
47
44
  "devDependencies": {
48
- "@tamagui/build": "2.0.0-rc.3",
45
+ "@tamagui/build": "2.0.0-rc.30",
49
46
  "react": ">=19"
50
47
  },
51
48
  "peerDependencies": {
@@ -201,15 +201,23 @@ export function useFocusScope(
201
201
  )
202
202
  const composedRefs = useComposedRefs(forwardedRef, setContainerRef)
203
203
 
204
- // Clean up trap on unmount only - trap setup is handled in ref callback
204
+ // Clean up trap when trapped becomes false or on unmount
205
205
  useIsomorphicLayoutEffect(() => {
206
+ if (!trapped) {
207
+ // immediately invalidate any pending rAFs
208
+ focusScope.stopped = true
209
+ if (trapCleanupRef.current) {
210
+ trapCleanupRef.current()
211
+ trapCleanupRef.current = null
212
+ }
213
+ }
206
214
  return () => {
207
215
  if (trapCleanupRef.current) {
208
216
  trapCleanupRef.current()
209
217
  trapCleanupRef.current = null
210
218
  }
211
219
  }
212
- }, [])
220
+ }, [trapped, focusScope])
213
221
 
214
222
  useAsyncEffect(
215
223
  async (signal) => {
@@ -217,11 +225,18 @@ export function useFocusScope(
217
225
  if (!container) return
218
226
  if (forceUnmount) return
219
227
 
220
- // reset stopped flag when effect starts
221
- focusScope.stopped = false
228
+ // only reset stopped flag when trap is actually active
229
+ // otherwise a prop change (trapped: true -> false) would reset it
230
+ // and allow a pending rAF to steal focus
231
+ if (trapped) {
232
+ focusScope.stopped = false
233
+ }
222
234
  focusScopesStack.add(focusScope)
223
235
  const previouslyFocusedElement = document.activeElement as HTMLElement | null
224
- const hasFocusedCandidate = container.contains(previouslyFocusedElement)
236
+ const hasFocusedCandidate =
237
+ container.contains(previouslyFocusedElement) &&
238
+ previouslyFocusedElement !== null &&
239
+ !isHidden(previouslyFocusedElement, { upTo: container })
225
240
 
226
241
  if (!hasFocusedCandidate) {
227
242
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS)
@@ -278,7 +293,19 @@ export function useFocusScope(
278
293
  container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus)
279
294
  container.dispatchEvent(unmountEvent)
280
295
  if (!unmountEvent.defaultPrevented) {
281
- focus(previouslyFocusedElement ?? document.body, { select: true })
296
+ // check if focus has already moved to a valid element outside this scope
297
+ // (e.g. another component's autoFocus ran during the same commit)
298
+ // if so, respect that focus rather than stealing it back
299
+ const currentFocus = document.activeElement as HTMLElement | null
300
+ const focusHasMovedOutside =
301
+ currentFocus &&
302
+ currentFocus !== document.body &&
303
+ currentFocus !== container &&
304
+ !container.contains(currentFocus)
305
+
306
+ if (!focusHasMovedOutside) {
307
+ focus(previouslyFocusedElement ?? document.body, { select: true })
308
+ }
282
309
  }
283
310
  // we need to remove the listener after we `dispatchEvent`
284
311
  container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus)
@@ -1 +1 @@
1
- {"version":3,"file":"FocusScope.d.ts","sourceRoot":"","sources":["../src/FocusScope.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,SAAS,CAAA;AAY3D,KAAK,iBAAiB,GAAG,cAAc,CAAA;AAEvC,QAAA,MAAM,UAAU,wFAiCf,CAAA;AAuFD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;;uBAwNzC,KAAK,CAAC,aAAa;;EAY9B;AA+ID,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,YAAY,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"FocusScope.d.ts","sourceRoot":"","sources":["../src/FocusScope.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,SAAS,CAAA;AAY3D,KAAK,iBAAiB,GAAG,cAAc,CAAA;AAEvC,QAAA,MAAM,UAAU,wFAiCf,CAAA;AAuFD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;;uBAmPzC,KAAK,CAAC,aAAa;;EAY9B;AA+ID,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,YAAY,EAAE,eAAe,EAAE,CAAA"}