@tamagui/focus-scope 2.0.0-rc.4 → 2.0.0-rc.40
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/cjs/FocusScope.cjs +284 -167
- package/dist/cjs/FocusScope.native.js +28 -26
- package/dist/cjs/FocusScope.native.js.map +1 -1
- package/dist/cjs/FocusScopeController.cjs +52 -50
- package/dist/cjs/FocusScopeController.native.js +49 -47
- package/dist/cjs/FocusScopeController.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/FocusScope.mjs +253 -138
- package/dist/esm/FocusScope.mjs.map +1 -1
- package/dist/esm/FocusScopeController.mjs +24 -24
- package/dist/esm/FocusScopeController.mjs.map +1 -1
- package/dist/esm/FocusScopeController.native.js +21 -21
- package/dist/esm/FocusScopeController.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -6
- package/dist/jsx/FocusScope.mjs +253 -138
- package/dist/jsx/FocusScope.mjs.map +1 -1
- package/dist/jsx/FocusScope.native.js +28 -26
- package/dist/jsx/FocusScope.native.js.map +1 -1
- package/dist/jsx/FocusScopeController.mjs +24 -24
- package/dist/jsx/FocusScopeController.mjs.map +1 -1
- package/dist/jsx/FocusScopeController.native.js +49 -47
- package/dist/jsx/FocusScopeController.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -6
- package/dist/jsx/index.native.js +7 -5
- package/dist/jsx/types.native.js +7 -5
- package/package.json +11 -14
- package/src/FocusScope.tsx +33 -6
- package/types/FocusScope.d.ts.map +1 -1
- package/dist/cjs/FocusScope.js +0 -245
- package/dist/cjs/FocusScope.js.map +0 -6
- package/dist/cjs/FocusScopeController.js +0 -69
- package/dist/cjs/FocusScopeController.js.map +0 -6
- package/dist/cjs/index.js +0 -16
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/esm/FocusScope.js +0 -227
- package/dist/esm/FocusScope.js.map +0 -6
- package/dist/esm/FocusScopeController.js +0 -48
- package/dist/esm/FocusScopeController.js.map +0 -6
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/dist/jsx/FocusScope.js +0 -227
- package/dist/jsx/FocusScope.js.map +0 -6
- package/dist/jsx/FocusScopeController.js +0 -48
- package/dist/jsx/FocusScopeController.js.map +0 -6
- package/dist/jsx/types.js +0 -1
- package/dist/jsx/types.js.map +0 -6
|
@@ -4,40 +4,42 @@ var __create = Object.create;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
8
|
-
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
18
|
get: () => from[key],
|
|
18
19
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
22
24
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
34
36
|
var FocusScope_native_exports = {};
|
|
35
37
|
__export(FocusScope_native_exports, {
|
|
36
38
|
FocusScope: () => FocusScope
|
|
37
39
|
});
|
|
38
40
|
module.exports = __toCommonJS(FocusScope_native_exports);
|
|
39
|
-
var import_react = __toESM(require("react"), 1)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
var import_react = __toESM(require("react"), 1);
|
|
42
|
+
var FocusScope = /* @__PURE__ */import_react.default.forwardRef(function (props, _ref) {
|
|
43
|
+
return props.children;
|
|
44
|
+
});
|
|
43
45
|
//# sourceMappingURL=FocusScope.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FocusScope_native_exports","__export","FocusScope","module","exports","__toCommonJS","import_react","__toESM","require","default","forwardRef","props","_ref","children"],"sources":["../../src/FocusScope.native.tsx"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["FocusScope_native_exports","__export","FocusScope","module","exports","__toCommonJS","import_react","__toESM","require","default","forwardRef","props","_ref","children"],"sources":["../../src/FocusScope.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,yBAAA;AAAAC,QAAA,CAAAD,yBAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAL,yBAAA;AAAA,IAAAM,YAAA,GAAkBC,OAAA,CAAAC,OAAA;AACX,IAAIN,UAAA,GAA2B,eAAAI,YAAA,CAAAG,OAAA,CAAMC,UAAA,CAAW,UAASC,KAAA,EAAOC,IAAA,EAAM;EACzE,OAAOD,KAAA,CAAME,QAAA;AACjB,CAAC","ignoreList":[]}
|
|
@@ -2,32 +2,32 @@ import { createContextScope } from "@tamagui/create-context";
|
|
|
2
2
|
import { useEvent } from "@tamagui/use-event";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
const FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController"
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController";
|
|
6
|
+
const [createFocusScopeControllerContext, createFocusScopeControllerScope] = createContextScope(FOCUS_SCOPE_CONTROLLER_NAME);
|
|
7
|
+
const [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);
|
|
8
8
|
function FocusScopeController(props) {
|
|
9
9
|
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
10
|
+
__scopeFocusScope,
|
|
11
|
+
children,
|
|
12
|
+
enabled,
|
|
13
|
+
loop,
|
|
14
|
+
trapped,
|
|
15
|
+
onMountAutoFocus,
|
|
16
|
+
onUnmountAutoFocus,
|
|
17
|
+
forceUnmount,
|
|
18
|
+
focusOnIdle
|
|
19
|
+
} = props;
|
|
20
|
+
const stableOnMountAutoFocus = useEvent(onMountAutoFocus);
|
|
21
|
+
const stableOnUnmountAutoFocus = useEvent(onUnmountAutoFocus);
|
|
22
|
+
const contextValue = React.useMemo(() => ({
|
|
23
|
+
enabled,
|
|
24
|
+
loop,
|
|
25
|
+
trapped,
|
|
26
|
+
onMountAutoFocus: stableOnMountAutoFocus,
|
|
27
|
+
onUnmountAutoFocus: stableOnUnmountAutoFocus,
|
|
28
|
+
forceUnmount,
|
|
29
|
+
focusOnIdle
|
|
30
|
+
}), [enabled, loop, trapped, stableOnMountAutoFocus, stableOnUnmountAutoFocus, forceUnmount, focusOnIdle]);
|
|
31
31
|
return /* @__PURE__ */jsx(FocusScopeControllerProvider, {
|
|
32
32
|
scope: __scopeFocusScope,
|
|
33
33
|
...contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContextScope","useEvent","React","jsx","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createFocusScopeControllerScope","FocusScopeControllerProvider","useFocusScopeControllerContext","FocusScopeController","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","stableOnUnmountAutoFocus","contextValue","useMemo","scope","FocusScopeControllerComponent"],"sources":["../../src/FocusScopeController.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AA8DnB,SAAAC,GAAA;AA1DJ,MAAMC,2BAAA,GAA8B;
|
|
1
|
+
{"version":3,"names":["createContextScope","useEvent","React","jsx","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createFocusScopeControllerScope","FocusScopeControllerProvider","useFocusScopeControllerContext","FocusScopeController","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","stableOnUnmountAutoFocus","contextValue","useMemo","scope","FocusScopeControllerComponent"],"sources":["../../src/FocusScopeController.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AA8DnB,SAAAC,GAAA;AA1DJ,MAAMC,2BAAA,GAA8B;AAEpC,MAAM,CAACC,iCAAA,EAAmCC,+BAA+B,IACvEN,kBAAA,CAAmBI,2BAA2B;AAIhD,MAAM,CAACG,4BAAA,EAA8BC,8BAA8B,IACjEH,iCAAA,CACED,2BACF;AAUF,SAASK,qBAAqBC,KAAA,EAA+C;EAC3E,MAAM;IACJC,iBAAA;IACAC,QAAA;IACAC,OAAA;IACAC,IAAA;IACAC,OAAA;IACAC,gBAAA;IACAC,kBAAA;IACAC,YAAA;IACAC;EACF,IAAIT,KAAA;EAEJ,MAAMU,sBAAA,GAAyBnB,QAAA,CAASe,gBAAgB;EACxD,MAAMK,wBAAA,GAA2BpB,QAAA,CAASgB,kBAAkB;EAE5D,MAAMK,YAAA,GAAepB,KAAA,CAAMqB,OAAA,CACzB,OAAO;IACLV,OAAA;IACAC,IAAA;IACAC,OAAA;IACAC,gBAAA,EAAkBI,sBAAA;IAClBH,kBAAA,EAAoBI,wBAAA;IACpBH,YAAA;IACAC;EACF,IACA,CACEN,OAAA,EACAC,IAAA,EACAC,OAAA,EACAK,sBAAA,EACAC,wBAAA,EACAH,YAAA,EACAC,WAAA,CAEJ;EAEA,OACE,eAAAhB,GAAA,CAACI,4BAAA;IAA6BiB,KAAA,EAAOb,iBAAA;IAAoB,GAAGW,YAAA;IACzDV;EAAA,CACH;AAEJ;AAEA,MAAMa,6BAAA,GAAgChB,oBAAA","ignoreList":[]}
|
|
@@ -4,33 +4,35 @@ var __create = Object.create;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
8
|
-
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
18
|
get: () => from[key],
|
|
18
19
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
22
24
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
34
36
|
var FocusScopeController_exports = {};
|
|
35
37
|
__export(FocusScopeController_exports, {
|
|
36
38
|
FocusScopeController: () => FocusScopeControllerComponent,
|
|
@@ -39,38 +41,38 @@ __export(FocusScopeController_exports, {
|
|
|
39
41
|
useFocusScopeControllerContext: () => useFocusScopeControllerContext
|
|
40
42
|
});
|
|
41
43
|
module.exports = __toCommonJS(FocusScopeController_exports);
|
|
42
|
-
var import_jsx_runtime = require("react/jsx-runtime")
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
45
|
+
var import_create_context = require("@tamagui/create-context");
|
|
46
|
+
var import_use_event = require("@tamagui/use-event");
|
|
47
|
+
var React = __toESM(require("react"), 1);
|
|
48
|
+
var FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController";
|
|
49
|
+
var [createFocusScopeControllerContext, createFocusScopeControllerScope] = (0, import_create_context.createContextScope)(FOCUS_SCOPE_CONTROLLER_NAME);
|
|
50
|
+
var [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);
|
|
49
51
|
function FocusScopeController(props) {
|
|
50
52
|
var {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
__scopeFocusScope,
|
|
54
|
+
children,
|
|
55
|
+
enabled,
|
|
56
|
+
loop,
|
|
57
|
+
trapped,
|
|
58
|
+
onMountAutoFocus,
|
|
59
|
+
onUnmountAutoFocus,
|
|
60
|
+
forceUnmount,
|
|
61
|
+
focusOnIdle
|
|
62
|
+
} = props;
|
|
63
|
+
var stableOnMountAutoFocus = (0, import_use_event.useEvent)(onMountAutoFocus);
|
|
64
|
+
var stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus);
|
|
65
|
+
var contextValue = React.useMemo(function () {
|
|
66
|
+
return {
|
|
53
67
|
enabled,
|
|
54
68
|
loop,
|
|
55
69
|
trapped,
|
|
56
|
-
onMountAutoFocus,
|
|
57
|
-
onUnmountAutoFocus,
|
|
70
|
+
onMountAutoFocus: stableOnMountAutoFocus,
|
|
71
|
+
onUnmountAutoFocus: stableOnUnmountAutoFocus,
|
|
58
72
|
forceUnmount,
|
|
59
73
|
focusOnIdle
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus),
|
|
63
|
-
contextValue = React.useMemo(function () {
|
|
64
|
-
return {
|
|
65
|
-
enabled,
|
|
66
|
-
loop,
|
|
67
|
-
trapped,
|
|
68
|
-
onMountAutoFocus: stableOnMountAutoFocus,
|
|
69
|
-
onUnmountAutoFocus: stableOnUnmountAutoFocus,
|
|
70
|
-
forceUnmount,
|
|
71
|
-
focusOnIdle
|
|
72
|
-
};
|
|
73
|
-
}, [enabled, loop, trapped, stableOnMountAutoFocus, stableOnUnmountAutoFocus, forceUnmount, focusOnIdle]);
|
|
74
|
+
};
|
|
75
|
+
}, [enabled, loop, trapped, stableOnMountAutoFocus, stableOnUnmountAutoFocus, forceUnmount, focusOnIdle]);
|
|
74
76
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(FocusScopeControllerProvider, {
|
|
75
77
|
scope: __scopeFocusScope,
|
|
76
78
|
...contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","FocusScopeController_exports","FocusScopeController","FocusScopeControllerComponent","FocusScopeControllerProvider","createFocusScopeControllerScope","useFocusScopeControllerContext","module","exports","import_jsx_runtime","require","import_create_context","import_use_event","React","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createContextScope","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","useEvent"
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","FocusScopeController_exports","FocusScopeController","FocusScopeControllerComponent","FocusScopeControllerProvider","createFocusScopeControllerScope","useFocusScopeControllerContext","module","exports","import_jsx_runtime","require","import_create_context","import_use_event","React","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createContextScope","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","useEvent"],"sources":["../../src/FocusScopeController.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,QAAS,GAAAC,MAAA,CAAAC,MAAgB;AACzB,IAAAC,SAAY,GAAAF,MAAA,CAAWG,cAAA;AA8DnB,IAAAC,gBAAA,GAAAJ,MAAA,CAAAK,wBAAA;AA1DJ,IAAAC,iBAAM,GAAAN,MAAA,CAAAO,mBAA8B;AAEpC,IAAAC,YAAO,GAAAR,MAAA,CAAAS,cAAA;AAKP,IAAAC,YAAO,GAAAV,MAAA,CAAAW,SAAA,CAAAC,cAA8B;AACnC,IACEC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACF,SAAAC,IAAA,IAAAD,GAAA,EAUFb,SAAS,CAAAY,MAAA,EAAAE,IAAA;IAAqBC,GAAA,EAAAF,GAA+C,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAC3E;AAAM,IACJC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAlB,iBAAA,CAAAe,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACApB,SAAA,CAAAkB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAnB,gBAAA,CAAAiB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACA,OACAE,EAAA;AAAA;AACA,IACAM,OAAA,GAAAA,CAAAC,GAAA,EAAAC,UAAA,EAAAd,MAAA,MAAAA,MAAA,GAAAa,GAAA,WAAA5B,QAAA,CAAAS,YAAA,CAAAmB,GAAA,SAAAR,WAAA;AACF;AAEA;AACA;AAEA;AAA2BS,UAClB,KAAAD,GAAA,KAAAA,GAAA,CAAAE,UAAA,GAAA3B,SAAA,CAAAY,MAAA;EAAAgB,KAAA,EAAAH,GAAA;EAAAT,UAAA;AAAA,KAAAJ,MAAA,EAAAa,GACL;AACA,IAAAI,YACA,GAAAJ,GAAA,IAAAR,WAAA,CAAAjB,SAAA;EAAA4B,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAK,4BACkB;AAAAnB,QAClB,CAAAmB,4BAAoB;EAAAC,oBACpB,EAAAA,CAAA,KAAAC,6BAAA;EAAAC,4BACA,EAAAA,CAAA,KAAAA,4BAAA;EAAAC,+BACF,EAAAA,CAAA,KAAAA,+BAAA;EAAAC,8BACA,EAAAA,CAAA,KAAAA;AAAA;AACEC,MACA,CAAAC,OAAA,GAAAR,YAAA,CAAAC,4BAAA;AAAA,IAAAQ,kBACA,GAAAC,OAAA;AAAA,IAAAC,qBACA,GAAAD,OAAA;AAAA,IAAAE,gBACA,GAAAF,OAAA;AAAA,IAAAG,KACA,GAAAlB,OAAA,CAAAe,OAAA;AAAA,IAAAI,2BACA;AAAA,IACF,CAAAC,iCAAA,EAAAV,+BAAA,QAAAM,qBAAA,CAAAK,kBAAA,EAAAF,2BAAA;AAAA,IACF,CAAAV,4BAAA,EAAAE,8BAAA,IAAAS,iCAAA,CAAAD,2BAAA;AAEA,SACEZ,oBAACA,CAAAe,KAAA;EAIL;IAAAC,iBAAA;IAAAC,QAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,OAAA;IAAAC,gBAAA;IAAAC,kBAAA;IAAAC,YAAA;IAAAC;EAAA,IAAAT,KAAA;EAEA,IAAMU,sBAAA,OAAAf,gBAAgC,CAAAgB,QAAA,EAAAL,gBAAA","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
|
package/dist/jsx/index.js.map
CHANGED
package/dist/jsx/index.native.js
CHANGED
|
@@ -5,15 +5,17 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __copyProps = (to, from, except, desc) => {
|
|
8
|
-
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
9
10
|
get: () => from[key],
|
|
10
11
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
11
12
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
17
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
-
value:
|
|
18
|
+
value: true
|
|
17
19
|
}), mod);
|
|
18
20
|
var index_exports = {};
|
|
19
21
|
module.exports = __toCommonJS(index_exports);
|
package/dist/jsx/types.native.js
CHANGED
|
@@ -5,14 +5,16 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __copyProps = (to, from, except, desc) => {
|
|
8
|
-
if (from && typeof from
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
+
get: () => from[key],
|
|
11
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
+
});
|
|
13
|
+
}
|
|
12
14
|
return to;
|
|
13
15
|
};
|
|
14
16
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
15
|
-
value:
|
|
17
|
+
value: true
|
|
16
18
|
}), mod);
|
|
17
19
|
var types_exports = {};
|
|
18
20
|
module.exports = __toCommonJS(types_exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/focus-scope",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.40",
|
|
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
|
-
|
|
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/
|
|
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.
|
|
41
|
-
"@tamagui/constants": "2.0.0-rc.
|
|
42
|
-
"@tamagui/create-context": "2.0.0-rc.
|
|
43
|
-
"@tamagui/start-transition": "2.0.0-rc.
|
|
44
|
-
"@tamagui/use-async": "2.0.0-rc.
|
|
45
|
-
"@tamagui/use-event": "2.0.0-rc.
|
|
37
|
+
"@tamagui/compose-refs": "2.0.0-rc.40",
|
|
38
|
+
"@tamagui/constants": "2.0.0-rc.40",
|
|
39
|
+
"@tamagui/create-context": "2.0.0-rc.40",
|
|
40
|
+
"@tamagui/start-transition": "2.0.0-rc.40",
|
|
41
|
+
"@tamagui/use-async": "2.0.0-rc.40",
|
|
42
|
+
"@tamagui/use-event": "2.0.0-rc.40"
|
|
46
43
|
},
|
|
47
44
|
"devDependencies": {
|
|
48
|
-
"@tamagui/build": "2.0.0-rc.
|
|
45
|
+
"@tamagui/build": "2.0.0-rc.40",
|
|
49
46
|
"react": ">=19"
|
|
50
47
|
},
|
|
51
48
|
"peerDependencies": {
|
package/src/FocusScope.tsx
CHANGED
|
@@ -201,15 +201,23 @@ export function useFocusScope(
|
|
|
201
201
|
)
|
|
202
202
|
const composedRefs = useComposedRefs(forwardedRef, setContainerRef)
|
|
203
203
|
|
|
204
|
-
// Clean up trap
|
|
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
|
|
221
|
-
|
|
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 =
|
|
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
|
|
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;;
|
|
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"}
|