@tamagui/focus-scope 3.0.0-beta.669.1 → 3.0.0-beta.728.1
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 +0 -1
- package/dist/cjs/FocusScope.native.cjs +0 -1
- package/dist/cjs/FocusScope.native.js +0 -1
- package/dist/cjs/FocusScope.native.js.map +1 -1
- package/dist/cjs/FocusScopeController.cjs +0 -1
- package/dist/cjs/FocusScopeController.native.cjs +0 -1
- package/dist/cjs/FocusScopeController.native.js +0 -1
- package/dist/cjs/FocusScopeController.native.js.map +1 -1
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/index.native.cjs +0 -1
- package/dist/cjs/index.native.js +0 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/types.cjs +0 -1
- package/dist/cjs/types.native.cjs +0 -1
- package/dist/cjs/types.native.js +0 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/FocusScope.mjs.map +1 -1
- package/dist/jsx/FocusScope.mjs.map +1 -1
- package/dist/jsx/FocusScope.native.cjs +0 -1
- package/dist/jsx/FocusScope.native.js +0 -1
- package/dist/jsx/FocusScope.native.js.map +1 -1
- package/dist/jsx/FocusScopeController.native.cjs +0 -1
- package/dist/jsx/FocusScopeController.native.js +0 -1
- package/dist/jsx/FocusScopeController.native.js.map +1 -1
- package/dist/jsx/index.native.cjs +0 -1
- package/dist/jsx/index.native.js +0 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/types.native.cjs +0 -1
- package/dist/jsx/types.native.js +0 -1
- package/dist/jsx/types.native.js.map +1 -1
- package/package.json +10 -10
package/dist/cjs/FocusScope.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScope.native.js","names":[],"sources":["cjs/FocusScope.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScope_native_exports = {};\n__export(FocusScope_native_exports, {\n FocusScope: () => FocusScope\n});\nmodule.exports = __toCommonJS(FocusScope_native_exports);\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar FocusScope = (0, import_compose_refs.createRefComponent)(function(props, _ref) {\n return props.children;\n});\n//# sourceMappingURL=FocusScope.native.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FocusScope.native.js","names":[],"sources":["cjs/FocusScope.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScope_native_exports = {};\n__export(FocusScope_native_exports, {\n FocusScope: () => FocusScope\n});\nmodule.exports = __toCommonJS(FocusScope_native_exports);\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar FocusScope = (0, import_compose_refs.createRefComponent)(function(props, _ref) {\n return props.children;\n});\n//# sourceMappingURL=FocusScope.native.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,4BAA4B,CAAC;AACjC,SAAS,2BAA2B,EAClC,kBAAkB,WACpB,CAAC;AACD,OAAO,UAAU,aAAa,yBAAyB;AACvD,IAAI,sBAAsB,QAAQ,uBAAuB;AACzD,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,cAAc,GAAG,oBAAoB,mBAAkB,CAAE,SAAS,OAAO,MAAM;CACjF,OAAO,MAAM;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScopeController.native.js","names":[],"sources":["cjs/FocusScopeController.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScopeController_exports = {};\n__export(FocusScopeController_exports, {\n FocusScopeController: () => FocusScopeControllerComponent,\n FocusScopeControllerProvider: () => FocusScopeControllerProvider,\n createFocusScopeControllerScope: () => createFocusScopeControllerScope,\n useFocusScopeControllerContext: () => useFocusScopeControllerContext\n});\nmodule.exports = __toCommonJS(FocusScopeController_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_create_context = require(\"@tamagui/create-context\");\nvar import_use_event = require(\"@tamagui/use-event\");\nvar React = __toESM(require(\"react\"), 1);\nvar FOCUS_SCOPE_CONTROLLER_NAME = \"FocusScopeController\";\nvar [createFocusScopeControllerContext, createFocusScopeControllerScope] = (0, import_create_context.createContextScope)(FOCUS_SCOPE_CONTROLLER_NAME);\nvar [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);\nfunction FocusScopeController(props) {\n var { __scopeFocusScope, children, enabled, loop, trapped, noFocus, onMountAutoFocus, onUnmountAutoFocus, forceUnmount, focusOnIdle } = props;\n var stableOnMountAutoFocus = (0, import_use_event.useEvent)(onMountAutoFocus);\n var stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus);\n var contextValue = React.useMemo(function() {\n return {\n enabled,\n loop,\n trapped,\n noFocus,\n onMountAutoFocus: stableOnMountAutoFocus,\n onUnmountAutoFocus: stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n };\n }, [\n enabled,\n loop,\n trapped,\n noFocus,\n stableOnMountAutoFocus,\n stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FocusScopeControllerProvider, {\n scope: __scopeFocusScope,\n ...contextValue,\n children\n });\n}\nvar FocusScopeControllerComponent = FocusScopeController;\n//# sourceMappingURL=FocusScopeController.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FocusScopeController.native.js","names":[],"sources":["cjs/FocusScopeController.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScopeController_exports = {};\n__export(FocusScopeController_exports, {\n FocusScopeController: () => FocusScopeControllerComponent,\n FocusScopeControllerProvider: () => FocusScopeControllerProvider,\n createFocusScopeControllerScope: () => createFocusScopeControllerScope,\n useFocusScopeControllerContext: () => useFocusScopeControllerContext\n});\nmodule.exports = __toCommonJS(FocusScopeController_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_create_context = require(\"@tamagui/create-context\");\nvar import_use_event = require(\"@tamagui/use-event\");\nvar React = __toESM(require(\"react\"), 1);\nvar FOCUS_SCOPE_CONTROLLER_NAME = \"FocusScopeController\";\nvar [createFocusScopeControllerContext, createFocusScopeControllerScope] = (0, import_create_context.createContextScope)(FOCUS_SCOPE_CONTROLLER_NAME);\nvar [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);\nfunction FocusScopeController(props) {\n var { __scopeFocusScope, children, enabled, loop, trapped, noFocus, onMountAutoFocus, onUnmountAutoFocus, forceUnmount, focusOnIdle } = props;\n var stableOnMountAutoFocus = (0, import_use_event.useEvent)(onMountAutoFocus);\n var stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus);\n var contextValue = React.useMemo(function() {\n return {\n enabled,\n loop,\n trapped,\n noFocus,\n onMountAutoFocus: stableOnMountAutoFocus,\n onUnmountAutoFocus: stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n };\n }, [\n enabled,\n loop,\n trapped,\n noFocus,\n stableOnMountAutoFocus,\n stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FocusScopeControllerProvider, {\n scope: __scopeFocusScope,\n ...contextValue,\n children\n });\n}\nvar FocusScopeControllerComponent = FocusScopeController;\n//# sourceMappingURL=FocusScopeController.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,+BAA+B,CAAC;AACpC,SAAS,8BAA8B;CACrC,4BAA4B;CAC5B,oCAAoC;CACpC,uCAAuC;CACvC,sCAAsC;AACxC,CAAC;AACD,OAAO,UAAU,aAAa,4BAA4B;AAC1D,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,wBAAwB,QAAQ,yBAAyB;AAC7D,IAAI,mBAAmB,QAAQ,oBAAoB;AACnD,IAAI,QAAQ,QAAQ,QAAQ,OAAO,GAAG,CAAC;AACvC,IAAI,8BAA8B;AAClC,IAAI,CAAC,mCAAmC,oCAAoC,GAAG,sBAAsB,mBAAkB,CAAE,2BAA2B;AACpJ,IAAI,CAAC,8BAA8B,kCAAkC,kCAAkC,2BAA2B;AAClI,SAAS,qBAAqB,OAAO;CACnC,IAAI,EAAE,mBAAmB,UAAU,SAAS,MAAM,SAAS,SAAS,kBAAkB,oBAAoB,cAAc,gBAAgB;CACxI,IAAI,0BAA0B,GAAG,iBAAiB,SAAQ,CAAE,gBAAgB;CAC5E,IAAI,4BAA4B,GAAG,iBAAiB,SAAQ,CAAE,kBAAkB;CAChF,IAAI,eAAe,MAAM,QAAQ,WAAW;EAC1C,OAAO;GACL;GACA;GACA;GACA;GACA,kBAAkB;GAClB,oBAAoB;GACpB;GACA;EACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,8BAA8B;EAC/E,OAAO;EACP,GAAG;EACH;CACF,CAAC;AACH;AACA,IAAI,gCAAgC"}
|
package/dist/cjs/index.cjs
CHANGED
package/dist/cjs/index.native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./FocusScope\"), module.exports);\n__reExport(index_exports, require(\"./FocusScopeController\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./FocusScope\"), module.exports);\n__reExport(index_exports, require(\"./FocusScopeController\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,cAAc,QAAQ,KAAK,kBAAkB,YAAY,QAAQ,KAAK,SAAS,GAAG,gBAAgB,YAAY,cAAc,KAAK,SAAS;AAC9I,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,OAAO,UAAU,aAAa,aAAa;AAC3C,WAAW,eAAe,QAAQ,wBAAc,GAAG,OAAO,OAAO;AACjE,WAAW,eAAe,QAAQ,kCAAwB,GAAG,OAAO,OAAO"}
|
package/dist/cjs/types.cjs
CHANGED
package/dist/cjs/types.native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.native.js","names":[],"sources":["cjs/types.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar types_exports = {};\nmodule.exports = __toCommonJS(types_exports);\n//# sourceMappingURL=types.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.native.js","names":[],"sources":["cjs/types.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar types_exports = {};\nmodule.exports = __toCommonJS(types_exports);\n//# sourceMappingURL=types.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,OAAO,UAAU,aAAa,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScope.js","names":[],"sources":["esm/FocusScope.js"],"sourcesContent":["import { createRefComponent, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createChangeEventDetails } from \"@tamagui/core\";\nimport { idle, useAsyncEffect } from \"@tamagui/use-async\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport * as React from \"react\";\nimport { useFocusScopeControllerContext } from \"./FocusScopeController\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FOCUS_SCOPE_STYLE = { display: \"contents\" };\nconst FocusScope = createRefComponent(\n function FocusScope2({ __scopeFocusScope, ...props }, forwardedRef) {\n const context = useFocusScopeControllerContext(\"FocusScope\", __scopeFocusScope, {\n warn: false,\n fallback: {}\n });\n const mergedProps = {\n ...props,\n enabled: context.enabled ?? props.enabled,\n loop: context.loop ?? props.loop,\n trapped: context.trapped ?? props.trapped,\n noFocus: context.noFocus ?? props.noFocus,\n onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,\n onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,\n forceUnmount: context.forceUnmount ?? props.forceUnmount,\n focusOnIdle: context.focusOnIdle ?? props.focusOnIdle\n };\n const childProps = useFocusScope(mergedProps, forwardedRef);\n const { ref, style, ...scopeProps } = childProps;\n const children = mergedProps.children;\n return /* @__PURE__ */ jsx(\"div\", { ...scopeProps, ref, style: getFocusScopeStyle(style), children });\n }\n);\nfunction getFocusScopeStyle(style) {\n if (!style) return FOCUS_SCOPE_STYLE;\n return {\n ...style,\n display: \"contents\"\n };\n}\nfunction setupFocusTrap(container, lastFocusedElementRef, focusScope) {\n const controller = new AbortController();\n let rafId = null;\n function scheduleRefocus() {\n if (rafId) return;\n const elementToFocus = lastFocusedElementRef.current;\n rafId = requestAnimationFrame(() => {\n rafId = null;\n if (focusScope.paused) return;\n if (focusScope.stopped) return;\n if (!container.isConnected) return;\n if (!container.contains(document.activeElement)) {\n focus(elementToFocus);\n }\n });\n }\n function handleFocusIn(event) {\n if (focusScope.paused) return;\n const target = event.target;\n if (container.contains(target)) {\n target?.addEventListener(\"blur\", handleBlur, { signal: controller.signal });\n lastFocusedElementRef.current = target;\n } else if (target?.contains(container)) {\n } else {\n scheduleRefocus();\n }\n }\n function handleFocusOut(event) {\n controller.abort();\n if (focusScope.paused) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (relatedTarget.contains(container)) return;\n if (!container.contains(relatedTarget)) {\n scheduleRefocus();\n }\n }\n function handleBlur() {\n }\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n controller.abort();\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n}\nfunction useFocusScope(props, forwardedRef) {\n const {\n loop = false,\n enabled = true,\n trapped: trappedProp = false,\n noFocus = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n forceUnmount,\n focusOnIdle = true,\n children: _children,\n asChild: _asChild,\n ...scopeProps\n } = props;\n const trapped = noFocus ? false : trappedProp;\n const [container, setContainer] = React.useState(null);\n const containerRef = React.useRef(null);\n const onMountAutoFocus = useEvent(onMountAutoFocusProp);\n const onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const focusScopeRef = React.useRef({\n paused: false,\n stopped: false,\n // set to true when cleanup starts, signals trap to stop\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n stop() {\n this.stopped = true;\n }\n });\n const focusScope = focusScopeRef.current;\n const trapCleanupRef = React.useRef(null);\n const setContainerRef = React.useCallback(\n (node) => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n containerRef.current = node;\n if (isWeb && node && enabled && trapped) {\n trapCleanupRef.current = setupFocusTrap(\n node,\n lastFocusedElementRef,\n focusScopeRef.current\n );\n }\n setContainer(node);\n },\n [enabled, trapped]\n );\n const composedRefs = useComposedRefs(forwardedRef, setContainerRef);\n useIsomorphicLayoutEffect(() => {\n if (!trapped) {\n focusScope.stopped = true;\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n }\n return () => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n };\n }, [trapped, focusScope]);\n useIsomorphicLayoutEffect(() => {\n if (!isWeb) return;\n if (!enabled || !noFocus || !container) return;\n const blurActiveElement = () => {\n const active = document.activeElement;\n if (active && active !== document.body && typeof active.blur === \"function\") {\n active.blur();\n }\n };\n blurActiveElement();\n document.addEventListener(\"focusin\", blurActiveElement, true);\n return () => {\n document.removeEventListener(\"focusin\", blurActiveElement, true);\n };\n }, [enabled, noFocus, container]);\n useAsyncEffect(\n async (signal) => {\n if (!enabled) return;\n if (!container) return;\n if (forceUnmount) return;\n if (noFocus) return;\n if (trapped) {\n focusScope.stopped = false;\n }\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, { upTo: container });\n if (!hasFocusedCandidate) {\n const details = createChangeEventDetails(\"trigger-focus\");\n onMountAutoFocus?.(details);\n if (!details.isCanceled) {\n if (focusOnIdle) {\n await idle(\n signal,\n typeof focusOnIdle == \"object\" ? focusOnIdle : {\n // we can't wait too long or else user can take an action and then we focus\n max: 200,\n min: typeof focusOnIdle == \"number\" ? focusOnIdle : 16\n }\n );\n }\n const allCandidates = getTabbableCandidates(container);\n const linkedRemoved = removeLinks(allCandidates);\n const visibleCandidates = linkedRemoved.filter(\n (candidate) => !isHidden(candidate, { upTo: container })\n );\n focusFirst(visibleCandidates, { select: true });\n if (visibleCandidates.length > 0) {\n lastFocusedElementRef.current = visibleCandidates[0];\n } else {\n lastFocusedElementRef.current = container;\n }\n if (document.activeElement === previouslyFocusedElement && visibleCandidates.length === 0) {\n focus(container);\n }\n }\n }\n return () => {\n focusScope.stop();\n const details = createChangeEventDetails(\"focus-out\");\n onUnmountAutoFocus?.(details);\n if (!details.isCanceled) {\n const currentFocus = document.activeElement;\n const focusHasMovedOutside = currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus);\n if (!focusHasMovedOutside) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n }\n focusScopesStack.remove(focusScope);\n };\n },\n [\n enabled,\n container,\n forceUnmount,\n noFocus,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope,\n focusOnIdle\n ]\n );\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!trapped) return;\n if (!loop) return;\n if (focusScope.paused) return;\n if (!enabled) return;\n if (!container) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused, enabled, container]\n );\n React.useEffect(() => {\n if (!container) return;\n if (!trapped) return;\n if (!loop) return;\n if (!enabled) return;\n const handleKeyDownCapture = (event) => {\n if (event.key === \"Tab\") {\n handleKeyDown(event);\n }\n };\n container.addEventListener(\"keydown\", handleKeyDownCapture, true);\n return () => {\n container.removeEventListener(\"keydown\", handleKeyDownCapture, true);\n };\n }, [container, trapped, loop, enabled, handleKeyDown]);\n const existingOnKeyDown = scopeProps.onKeyDown;\n const composedOnKeyDown = React.useCallback(\n (event) => {\n existingOnKeyDown?.(event);\n },\n [existingOnKeyDown]\n );\n return {\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: composedOnKeyDown\n };\n}\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element?.focus) {\n const previouslyFocusedElement = document.activeElement;\n try {\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n } catch (error) {\n }\n }\n}\nconst focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nexport {\n FocusScope,\n useFocusScope\n};\n//# sourceMappingURL=FocusScope.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FocusScope.js","names":[],"sources":["esm/FocusScope.js"],"sourcesContent":["import { createRefComponent, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createChangeEventDetails } from \"@tamagui/core\";\nimport { idle, useAsyncEffect } from \"@tamagui/use-async\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport * as React from \"react\";\nimport { useFocusScopeControllerContext } from \"./FocusScopeController\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FOCUS_SCOPE_STYLE = { display: \"contents\" };\nconst FocusScope = createRefComponent(\n function FocusScope2({ __scopeFocusScope, ...props }, forwardedRef) {\n const context = useFocusScopeControllerContext(\"FocusScope\", __scopeFocusScope, {\n warn: false,\n fallback: {}\n });\n const mergedProps = {\n ...props,\n enabled: context.enabled ?? props.enabled,\n loop: context.loop ?? props.loop,\n trapped: context.trapped ?? props.trapped,\n noFocus: context.noFocus ?? props.noFocus,\n onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,\n onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,\n forceUnmount: context.forceUnmount ?? props.forceUnmount,\n focusOnIdle: context.focusOnIdle ?? props.focusOnIdle\n };\n const childProps = useFocusScope(mergedProps, forwardedRef);\n const { ref, style, ...scopeProps } = childProps;\n const children = mergedProps.children;\n return /* @__PURE__ */ jsx(\"div\", { ...scopeProps, ref, style: getFocusScopeStyle(style), children });\n }\n);\nfunction getFocusScopeStyle(style) {\n if (!style) return FOCUS_SCOPE_STYLE;\n return {\n ...style,\n display: \"contents\"\n };\n}\nfunction setupFocusTrap(container, lastFocusedElementRef, focusScope) {\n const controller = new AbortController();\n let rafId = null;\n function scheduleRefocus() {\n if (rafId) return;\n const elementToFocus = lastFocusedElementRef.current;\n rafId = requestAnimationFrame(() => {\n rafId = null;\n if (focusScope.paused) return;\n if (focusScope.stopped) return;\n if (!container.isConnected) return;\n if (!container.contains(document.activeElement)) {\n focus(elementToFocus);\n }\n });\n }\n function handleFocusIn(event) {\n if (focusScope.paused) return;\n const target = event.target;\n if (container.contains(target)) {\n target?.addEventListener(\"blur\", handleBlur, { signal: controller.signal });\n lastFocusedElementRef.current = target;\n } else if (target?.contains(container)) {\n } else {\n scheduleRefocus();\n }\n }\n function handleFocusOut(event) {\n controller.abort();\n if (focusScope.paused) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (relatedTarget.contains(container)) return;\n if (!container.contains(relatedTarget)) {\n scheduleRefocus();\n }\n }\n function handleBlur() {\n }\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n controller.abort();\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n}\nfunction useFocusScope(props, forwardedRef) {\n const {\n loop = false,\n enabled = true,\n trapped: trappedProp = false,\n noFocus = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n forceUnmount,\n focusOnIdle = true,\n children: _children,\n asChild: _asChild,\n ...scopeProps\n } = props;\n const trapped = noFocus ? false : trappedProp;\n const [container, setContainer] = React.useState(null);\n const containerRef = React.useRef(null);\n const onMountAutoFocus = useEvent(onMountAutoFocusProp);\n const onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const focusScopeRef = React.useRef({\n paused: false,\n stopped: false,\n // set to true when cleanup starts, signals trap to stop\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n stop() {\n this.stopped = true;\n }\n });\n const focusScope = focusScopeRef.current;\n const trapCleanupRef = React.useRef(null);\n const setContainerRef = React.useCallback(\n (node) => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n containerRef.current = node;\n if (isWeb && node && enabled && trapped) {\n trapCleanupRef.current = setupFocusTrap(\n node,\n lastFocusedElementRef,\n focusScopeRef.current\n );\n }\n setContainer(node);\n },\n [enabled, trapped]\n );\n const composedRefs = useComposedRefs(forwardedRef, setContainerRef);\n useIsomorphicLayoutEffect(() => {\n if (!trapped) {\n focusScope.stopped = true;\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n }\n return () => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n };\n }, [trapped, focusScope]);\n useIsomorphicLayoutEffect(() => {\n if (!isWeb) return;\n if (!enabled || !noFocus || !container) return;\n const blurActiveElement = () => {\n const active = document.activeElement;\n if (active && active !== document.body && typeof active.blur === \"function\") {\n active.blur();\n }\n };\n blurActiveElement();\n document.addEventListener(\"focusin\", blurActiveElement, true);\n return () => {\n document.removeEventListener(\"focusin\", blurActiveElement, true);\n };\n }, [enabled, noFocus, container]);\n useAsyncEffect(\n async (signal) => {\n if (!enabled) return;\n if (!container) return;\n if (forceUnmount) return;\n if (noFocus) return;\n if (trapped) {\n focusScope.stopped = false;\n }\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, { upTo: container });\n if (!hasFocusedCandidate) {\n const details = createChangeEventDetails(\"trigger-focus\");\n onMountAutoFocus?.(details);\n if (!details.isCanceled) {\n if (focusOnIdle) {\n await idle(\n signal,\n typeof focusOnIdle == \"object\" ? focusOnIdle : {\n // we can't wait too long or else user can take an action and then we focus\n max: 200,\n min: typeof focusOnIdle == \"number\" ? focusOnIdle : 16\n }\n );\n }\n const allCandidates = getTabbableCandidates(container);\n const linkedRemoved = removeLinks(allCandidates);\n const visibleCandidates = linkedRemoved.filter(\n (candidate) => !isHidden(candidate, { upTo: container })\n );\n focusFirst(visibleCandidates, { select: true });\n if (visibleCandidates.length > 0) {\n lastFocusedElementRef.current = visibleCandidates[0];\n } else {\n lastFocusedElementRef.current = container;\n }\n if (document.activeElement === previouslyFocusedElement && visibleCandidates.length === 0) {\n focus(container);\n }\n }\n }\n return () => {\n focusScope.stop();\n const details = createChangeEventDetails(\"focus-out\");\n onUnmountAutoFocus?.(details);\n if (!details.isCanceled) {\n const currentFocus = document.activeElement;\n const focusHasMovedOutside = currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus);\n if (!focusHasMovedOutside) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n }\n focusScopesStack.remove(focusScope);\n };\n },\n [\n enabled,\n container,\n forceUnmount,\n noFocus,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope,\n focusOnIdle\n ]\n );\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!trapped) return;\n if (!loop) return;\n if (focusScope.paused) return;\n if (!enabled) return;\n if (!container) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused, enabled, container]\n );\n React.useEffect(() => {\n if (!container) return;\n if (!trapped) return;\n if (!loop) return;\n if (!enabled) return;\n const handleKeyDownCapture = (event) => {\n if (event.key === \"Tab\") {\n handleKeyDown(event);\n }\n };\n container.addEventListener(\"keydown\", handleKeyDownCapture, true);\n return () => {\n container.removeEventListener(\"keydown\", handleKeyDownCapture, true);\n };\n }, [container, trapped, loop, enabled, handleKeyDown]);\n const existingOnKeyDown = scopeProps.onKeyDown;\n const composedOnKeyDown = React.useCallback(\n (event) => {\n existingOnKeyDown?.(event);\n },\n [existingOnKeyDown]\n );\n return {\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: composedOnKeyDown\n };\n}\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element?.focus) {\n const previouslyFocusedElement = document.activeElement;\n try {\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n } catch (error) {\n }\n }\n}\nconst focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nexport {\n FocusScope,\n useFocusScope\n};\n//# sourceMappingURL=FocusScope.js.map\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScope.js","names":[],"sources":["jsx/FocusScope.js"],"sourcesContent":["import { createRefComponent, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createChangeEventDetails } from \"@tamagui/core\";\nimport { idle, useAsyncEffect } from \"@tamagui/use-async\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport * as React from \"react\";\nimport { useFocusScopeControllerContext } from \"./FocusScopeController\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FOCUS_SCOPE_STYLE = { display: \"contents\" };\nconst FocusScope = createRefComponent(\n function FocusScope2({ __scopeFocusScope, ...props }, forwardedRef) {\n const context = useFocusScopeControllerContext(\"FocusScope\", __scopeFocusScope, {\n warn: false,\n fallback: {}\n });\n const mergedProps = {\n ...props,\n enabled: context.enabled ?? props.enabled,\n loop: context.loop ?? props.loop,\n trapped: context.trapped ?? props.trapped,\n noFocus: context.noFocus ?? props.noFocus,\n onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,\n onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,\n forceUnmount: context.forceUnmount ?? props.forceUnmount,\n focusOnIdle: context.focusOnIdle ?? props.focusOnIdle\n };\n const childProps = useFocusScope(mergedProps, forwardedRef);\n const { ref, style, ...scopeProps } = childProps;\n const children = mergedProps.children;\n return /* @__PURE__ */ jsx(\"div\", { ...scopeProps, ref, style: getFocusScopeStyle(style), children });\n }\n);\nfunction getFocusScopeStyle(style) {\n if (!style) return FOCUS_SCOPE_STYLE;\n return {\n ...style,\n display: \"contents\"\n };\n}\nfunction setupFocusTrap(container, lastFocusedElementRef, focusScope) {\n const controller = new AbortController();\n let rafId = null;\n function scheduleRefocus() {\n if (rafId) return;\n const elementToFocus = lastFocusedElementRef.current;\n rafId = requestAnimationFrame(() => {\n rafId = null;\n if (focusScope.paused) return;\n if (focusScope.stopped) return;\n if (!container.isConnected) return;\n if (!container.contains(document.activeElement)) {\n focus(elementToFocus);\n }\n });\n }\n function handleFocusIn(event) {\n if (focusScope.paused) return;\n const target = event.target;\n if (container.contains(target)) {\n target?.addEventListener(\"blur\", handleBlur, { signal: controller.signal });\n lastFocusedElementRef.current = target;\n } else if (target?.contains(container)) {\n } else {\n scheduleRefocus();\n }\n }\n function handleFocusOut(event) {\n controller.abort();\n if (focusScope.paused) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (relatedTarget.contains(container)) return;\n if (!container.contains(relatedTarget)) {\n scheduleRefocus();\n }\n }\n function handleBlur() {\n }\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n controller.abort();\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n}\nfunction useFocusScope(props, forwardedRef) {\n const {\n loop = false,\n enabled = true,\n trapped: trappedProp = false,\n noFocus = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n forceUnmount,\n focusOnIdle = true,\n children: _children,\n asChild: _asChild,\n ...scopeProps\n } = props;\n const trapped = noFocus ? false : trappedProp;\n const [container, setContainer] = React.useState(null);\n const containerRef = React.useRef(null);\n const onMountAutoFocus = useEvent(onMountAutoFocusProp);\n const onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const focusScopeRef = React.useRef({\n paused: false,\n stopped: false,\n // set to true when cleanup starts, signals trap to stop\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n stop() {\n this.stopped = true;\n }\n });\n const focusScope = focusScopeRef.current;\n const trapCleanupRef = React.useRef(null);\n const setContainerRef = React.useCallback(\n (node) => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n containerRef.current = node;\n if (isWeb && node && enabled && trapped) {\n trapCleanupRef.current = setupFocusTrap(\n node,\n lastFocusedElementRef,\n focusScopeRef.current\n );\n }\n setContainer(node);\n },\n [enabled, trapped]\n );\n const composedRefs = useComposedRefs(forwardedRef, setContainerRef);\n useIsomorphicLayoutEffect(() => {\n if (!trapped) {\n focusScope.stopped = true;\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n }\n return () => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n };\n }, [trapped, focusScope]);\n useIsomorphicLayoutEffect(() => {\n if (!isWeb) return;\n if (!enabled || !noFocus || !container) return;\n const blurActiveElement = () => {\n const active = document.activeElement;\n if (active && active !== document.body && typeof active.blur === \"function\") {\n active.blur();\n }\n };\n blurActiveElement();\n document.addEventListener(\"focusin\", blurActiveElement, true);\n return () => {\n document.removeEventListener(\"focusin\", blurActiveElement, true);\n };\n }, [enabled, noFocus, container]);\n useAsyncEffect(\n async (signal) => {\n if (!enabled) return;\n if (!container) return;\n if (forceUnmount) return;\n if (noFocus) return;\n if (trapped) {\n focusScope.stopped = false;\n }\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, { upTo: container });\n if (!hasFocusedCandidate) {\n const details = createChangeEventDetails(\"trigger-focus\");\n onMountAutoFocus?.(details);\n if (!details.isCanceled) {\n if (focusOnIdle) {\n await idle(\n signal,\n typeof focusOnIdle == \"object\" ? focusOnIdle : {\n // we can't wait too long or else user can take an action and then we focus\n max: 200,\n min: typeof focusOnIdle == \"number\" ? focusOnIdle : 16\n }\n );\n }\n const allCandidates = getTabbableCandidates(container);\n const linkedRemoved = removeLinks(allCandidates);\n const visibleCandidates = linkedRemoved.filter(\n (candidate) => !isHidden(candidate, { upTo: container })\n );\n focusFirst(visibleCandidates, { select: true });\n if (visibleCandidates.length > 0) {\n lastFocusedElementRef.current = visibleCandidates[0];\n } else {\n lastFocusedElementRef.current = container;\n }\n if (document.activeElement === previouslyFocusedElement && visibleCandidates.length === 0) {\n focus(container);\n }\n }\n }\n return () => {\n focusScope.stop();\n const details = createChangeEventDetails(\"focus-out\");\n onUnmountAutoFocus?.(details);\n if (!details.isCanceled) {\n const currentFocus = document.activeElement;\n const focusHasMovedOutside = currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus);\n if (!focusHasMovedOutside) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n }\n focusScopesStack.remove(focusScope);\n };\n },\n [\n enabled,\n container,\n forceUnmount,\n noFocus,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope,\n focusOnIdle\n ]\n );\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!trapped) return;\n if (!loop) return;\n if (focusScope.paused) return;\n if (!enabled) return;\n if (!container) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused, enabled, container]\n );\n React.useEffect(() => {\n if (!container) return;\n if (!trapped) return;\n if (!loop) return;\n if (!enabled) return;\n const handleKeyDownCapture = (event) => {\n if (event.key === \"Tab\") {\n handleKeyDown(event);\n }\n };\n container.addEventListener(\"keydown\", handleKeyDownCapture, true);\n return () => {\n container.removeEventListener(\"keydown\", handleKeyDownCapture, true);\n };\n }, [container, trapped, loop, enabled, handleKeyDown]);\n const existingOnKeyDown = scopeProps.onKeyDown;\n const composedOnKeyDown = React.useCallback(\n (event) => {\n existingOnKeyDown?.(event);\n },\n [existingOnKeyDown]\n );\n return {\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: composedOnKeyDown\n };\n}\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element?.focus) {\n const previouslyFocusedElement = document.activeElement;\n try {\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n } catch (error) {\n }\n }\n}\nconst focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nexport {\n FocusScope,\n useFocusScope\n};\n//# sourceMappingURL=FocusScope.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FocusScope.js","names":[],"sources":["jsx/FocusScope.js"],"sourcesContent":["import { createRefComponent, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createChangeEventDetails } from \"@tamagui/core\";\nimport { idle, useAsyncEffect } from \"@tamagui/use-async\";\nimport { useEvent } from \"@tamagui/use-event\";\nimport * as React from \"react\";\nimport { useFocusScopeControllerContext } from \"./FocusScopeController\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FOCUS_SCOPE_STYLE = { display: \"contents\" };\nconst FocusScope = createRefComponent(\n function FocusScope2({ __scopeFocusScope, ...props }, forwardedRef) {\n const context = useFocusScopeControllerContext(\"FocusScope\", __scopeFocusScope, {\n warn: false,\n fallback: {}\n });\n const mergedProps = {\n ...props,\n enabled: context.enabled ?? props.enabled,\n loop: context.loop ?? props.loop,\n trapped: context.trapped ?? props.trapped,\n noFocus: context.noFocus ?? props.noFocus,\n onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,\n onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,\n forceUnmount: context.forceUnmount ?? props.forceUnmount,\n focusOnIdle: context.focusOnIdle ?? props.focusOnIdle\n };\n const childProps = useFocusScope(mergedProps, forwardedRef);\n const { ref, style, ...scopeProps } = childProps;\n const children = mergedProps.children;\n return /* @__PURE__ */ jsx(\"div\", { ...scopeProps, ref, style: getFocusScopeStyle(style), children });\n }\n);\nfunction getFocusScopeStyle(style) {\n if (!style) return FOCUS_SCOPE_STYLE;\n return {\n ...style,\n display: \"contents\"\n };\n}\nfunction setupFocusTrap(container, lastFocusedElementRef, focusScope) {\n const controller = new AbortController();\n let rafId = null;\n function scheduleRefocus() {\n if (rafId) return;\n const elementToFocus = lastFocusedElementRef.current;\n rafId = requestAnimationFrame(() => {\n rafId = null;\n if (focusScope.paused) return;\n if (focusScope.stopped) return;\n if (!container.isConnected) return;\n if (!container.contains(document.activeElement)) {\n focus(elementToFocus);\n }\n });\n }\n function handleFocusIn(event) {\n if (focusScope.paused) return;\n const target = event.target;\n if (container.contains(target)) {\n target?.addEventListener(\"blur\", handleBlur, { signal: controller.signal });\n lastFocusedElementRef.current = target;\n } else if (target?.contains(container)) {\n } else {\n scheduleRefocus();\n }\n }\n function handleFocusOut(event) {\n controller.abort();\n if (focusScope.paused) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (relatedTarget.contains(container)) return;\n if (!container.contains(relatedTarget)) {\n scheduleRefocus();\n }\n }\n function handleBlur() {\n }\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n controller.abort();\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n}\nfunction useFocusScope(props, forwardedRef) {\n const {\n loop = false,\n enabled = true,\n trapped: trappedProp = false,\n noFocus = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n forceUnmount,\n focusOnIdle = true,\n children: _children,\n asChild: _asChild,\n ...scopeProps\n } = props;\n const trapped = noFocus ? false : trappedProp;\n const [container, setContainer] = React.useState(null);\n const containerRef = React.useRef(null);\n const onMountAutoFocus = useEvent(onMountAutoFocusProp);\n const onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const focusScopeRef = React.useRef({\n paused: false,\n stopped: false,\n // set to true when cleanup starts, signals trap to stop\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n stop() {\n this.stopped = true;\n }\n });\n const focusScope = focusScopeRef.current;\n const trapCleanupRef = React.useRef(null);\n const setContainerRef = React.useCallback(\n (node) => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n containerRef.current = node;\n if (isWeb && node && enabled && trapped) {\n trapCleanupRef.current = setupFocusTrap(\n node,\n lastFocusedElementRef,\n focusScopeRef.current\n );\n }\n setContainer(node);\n },\n [enabled, trapped]\n );\n const composedRefs = useComposedRefs(forwardedRef, setContainerRef);\n useIsomorphicLayoutEffect(() => {\n if (!trapped) {\n focusScope.stopped = true;\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n }\n return () => {\n if (trapCleanupRef.current) {\n trapCleanupRef.current();\n trapCleanupRef.current = null;\n }\n };\n }, [trapped, focusScope]);\n useIsomorphicLayoutEffect(() => {\n if (!isWeb) return;\n if (!enabled || !noFocus || !container) return;\n const blurActiveElement = () => {\n const active = document.activeElement;\n if (active && active !== document.body && typeof active.blur === \"function\") {\n active.blur();\n }\n };\n blurActiveElement();\n document.addEventListener(\"focusin\", blurActiveElement, true);\n return () => {\n document.removeEventListener(\"focusin\", blurActiveElement, true);\n };\n }, [enabled, noFocus, container]);\n useAsyncEffect(\n async (signal) => {\n if (!enabled) return;\n if (!container) return;\n if (forceUnmount) return;\n if (noFocus) return;\n if (trapped) {\n focusScope.stopped = false;\n }\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement) && previouslyFocusedElement !== null && !isHidden(previouslyFocusedElement, { upTo: container });\n if (!hasFocusedCandidate) {\n const details = createChangeEventDetails(\"trigger-focus\");\n onMountAutoFocus?.(details);\n if (!details.isCanceled) {\n if (focusOnIdle) {\n await idle(\n signal,\n typeof focusOnIdle == \"object\" ? focusOnIdle : {\n // we can't wait too long or else user can take an action and then we focus\n max: 200,\n min: typeof focusOnIdle == \"number\" ? focusOnIdle : 16\n }\n );\n }\n const allCandidates = getTabbableCandidates(container);\n const linkedRemoved = removeLinks(allCandidates);\n const visibleCandidates = linkedRemoved.filter(\n (candidate) => !isHidden(candidate, { upTo: container })\n );\n focusFirst(visibleCandidates, { select: true });\n if (visibleCandidates.length > 0) {\n lastFocusedElementRef.current = visibleCandidates[0];\n } else {\n lastFocusedElementRef.current = container;\n }\n if (document.activeElement === previouslyFocusedElement && visibleCandidates.length === 0) {\n focus(container);\n }\n }\n }\n return () => {\n focusScope.stop();\n const details = createChangeEventDetails(\"focus-out\");\n onUnmountAutoFocus?.(details);\n if (!details.isCanceled) {\n const currentFocus = document.activeElement;\n const focusHasMovedOutside = currentFocus && currentFocus !== document.body && currentFocus !== container && !container.contains(currentFocus);\n if (!focusHasMovedOutside) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n }\n focusScopesStack.remove(focusScope);\n };\n },\n [\n enabled,\n container,\n forceUnmount,\n noFocus,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope,\n focusOnIdle\n ]\n );\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!trapped) return;\n if (!loop) return;\n if (focusScope.paused) return;\n if (!enabled) return;\n if (!container) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused, enabled, container]\n );\n React.useEffect(() => {\n if (!container) return;\n if (!trapped) return;\n if (!loop) return;\n if (!enabled) return;\n const handleKeyDownCapture = (event) => {\n if (event.key === \"Tab\") {\n handleKeyDown(event);\n }\n };\n container.addEventListener(\"keydown\", handleKeyDownCapture, true);\n return () => {\n container.removeEventListener(\"keydown\", handleKeyDownCapture, true);\n };\n }, [container, trapped, loop, enabled, handleKeyDown]);\n const existingOnKeyDown = scopeProps.onKeyDown;\n const composedOnKeyDown = React.useCallback(\n (event) => {\n existingOnKeyDown?.(event);\n },\n [existingOnKeyDown]\n );\n return {\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: composedOnKeyDown\n };\n}\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element?.focus) {\n const previouslyFocusedElement = document.activeElement;\n try {\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n } catch (error) {\n }\n }\n}\nconst focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nexport {\n FocusScope,\n useFocusScope\n};\n//# sourceMappingURL=FocusScope.js.map\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScope.native.js","names":[],"sources":["jsx/FocusScope.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScope_native_exports = {};\n__export(FocusScope_native_exports, {\n FocusScope: () => FocusScope\n});\nmodule.exports = __toCommonJS(FocusScope_native_exports);\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar FocusScope = (0, import_compose_refs.createRefComponent)(function(props, _ref) {\n return props.children;\n});\n//# sourceMappingURL=FocusScope.native.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FocusScope.native.js","names":[],"sources":["jsx/FocusScope.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScope_native_exports = {};\n__export(FocusScope_native_exports, {\n FocusScope: () => FocusScope\n});\nmodule.exports = __toCommonJS(FocusScope_native_exports);\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar FocusScope = (0, import_compose_refs.createRefComponent)(function(props, _ref) {\n return props.children;\n});\n//# sourceMappingURL=FocusScope.native.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,4BAA4B,CAAC;AACjC,SAAS,2BAA2B,EAClC,kBAAkB,WACpB,CAAC;AACD,OAAO,UAAU,aAAa,yBAAyB;AACvD,IAAI,sBAAsB,QAAQ,uBAAuB;AACzD,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,cAAc,GAAG,oBAAoB,mBAAkB,CAAE,SAAS,OAAO,MAAM;CACjF,OAAO,MAAM;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScopeController.native.js","names":[],"sources":["jsx/FocusScopeController.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScopeController_exports = {};\n__export(FocusScopeController_exports, {\n FocusScopeController: () => FocusScopeControllerComponent,\n FocusScopeControllerProvider: () => FocusScopeControllerProvider,\n createFocusScopeControllerScope: () => createFocusScopeControllerScope,\n useFocusScopeControllerContext: () => useFocusScopeControllerContext\n});\nmodule.exports = __toCommonJS(FocusScopeController_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_create_context = require(\"@tamagui/create-context\");\nvar import_use_event = require(\"@tamagui/use-event\");\nvar React = __toESM(require(\"react\"), 1);\nvar FOCUS_SCOPE_CONTROLLER_NAME = \"FocusScopeController\";\nvar [createFocusScopeControllerContext, createFocusScopeControllerScope] = (0, import_create_context.createContextScope)(FOCUS_SCOPE_CONTROLLER_NAME);\nvar [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);\nfunction FocusScopeController(props) {\n var { __scopeFocusScope, children, enabled, loop, trapped, noFocus, onMountAutoFocus, onUnmountAutoFocus, forceUnmount, focusOnIdle } = props;\n var stableOnMountAutoFocus = (0, import_use_event.useEvent)(onMountAutoFocus);\n var stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus);\n var contextValue = React.useMemo(function() {\n return {\n enabled,\n loop,\n trapped,\n noFocus,\n onMountAutoFocus: stableOnMountAutoFocus,\n onUnmountAutoFocus: stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n };\n }, [\n enabled,\n loop,\n trapped,\n noFocus,\n stableOnMountAutoFocus,\n stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FocusScopeControllerProvider, {\n scope: __scopeFocusScope,\n ...contextValue,\n children\n });\n}\nvar FocusScopeControllerComponent = FocusScopeController;\n//# sourceMappingURL=FocusScopeController.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FocusScopeController.native.js","names":[],"sources":["jsx/FocusScopeController.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FocusScopeController_exports = {};\n__export(FocusScopeController_exports, {\n FocusScopeController: () => FocusScopeControllerComponent,\n FocusScopeControllerProvider: () => FocusScopeControllerProvider,\n createFocusScopeControllerScope: () => createFocusScopeControllerScope,\n useFocusScopeControllerContext: () => useFocusScopeControllerContext\n});\nmodule.exports = __toCommonJS(FocusScopeController_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_create_context = require(\"@tamagui/create-context\");\nvar import_use_event = require(\"@tamagui/use-event\");\nvar React = __toESM(require(\"react\"), 1);\nvar FOCUS_SCOPE_CONTROLLER_NAME = \"FocusScopeController\";\nvar [createFocusScopeControllerContext, createFocusScopeControllerScope] = (0, import_create_context.createContextScope)(FOCUS_SCOPE_CONTROLLER_NAME);\nvar [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);\nfunction FocusScopeController(props) {\n var { __scopeFocusScope, children, enabled, loop, trapped, noFocus, onMountAutoFocus, onUnmountAutoFocus, forceUnmount, focusOnIdle } = props;\n var stableOnMountAutoFocus = (0, import_use_event.useEvent)(onMountAutoFocus);\n var stableOnUnmountAutoFocus = (0, import_use_event.useEvent)(onUnmountAutoFocus);\n var contextValue = React.useMemo(function() {\n return {\n enabled,\n loop,\n trapped,\n noFocus,\n onMountAutoFocus: stableOnMountAutoFocus,\n onUnmountAutoFocus: stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n };\n }, [\n enabled,\n loop,\n trapped,\n noFocus,\n stableOnMountAutoFocus,\n stableOnUnmountAutoFocus,\n forceUnmount,\n focusOnIdle\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FocusScopeControllerProvider, {\n scope: __scopeFocusScope,\n ...contextValue,\n children\n });\n}\nvar FocusScopeControllerComponent = FocusScopeController;\n//# sourceMappingURL=FocusScopeController.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,+BAA+B,CAAC;AACpC,SAAS,8BAA8B;CACrC,4BAA4B;CAC5B,oCAAoC;CACpC,uCAAuC;CACvC,sCAAsC;AACxC,CAAC;AACD,OAAO,UAAU,aAAa,4BAA4B;AAC1D,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,wBAAwB,QAAQ,yBAAyB;AAC7D,IAAI,mBAAmB,QAAQ,oBAAoB;AACnD,IAAI,QAAQ,QAAQ,QAAQ,OAAO,GAAG,CAAC;AACvC,IAAI,8BAA8B;AAClC,IAAI,CAAC,mCAAmC,oCAAoC,GAAG,sBAAsB,mBAAkB,CAAE,2BAA2B;AACpJ,IAAI,CAAC,8BAA8B,kCAAkC,kCAAkC,2BAA2B;AAClI,SAAS,qBAAqB,OAAO;CACnC,IAAI,EAAE,mBAAmB,UAAU,SAAS,MAAM,SAAS,SAAS,kBAAkB,oBAAoB,cAAc,gBAAgB;CACxI,IAAI,0BAA0B,GAAG,iBAAiB,SAAQ,CAAE,gBAAgB;CAC5E,IAAI,4BAA4B,GAAG,iBAAiB,SAAQ,CAAE,kBAAkB;CAChF,IAAI,eAAe,MAAM,QAAQ,WAAW;EAC1C,OAAO;GACL;GACA;GACA;GACA;GACA,kBAAkB;GAClB,oBAAoB;GACpB;GACA;EACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,8BAA8B;EAC/E,OAAO;EACP,GAAG;EACH;CACF,CAAC;AACH;AACA,IAAI,gCAAgC"}
|
package/dist/jsx/index.native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":[],"sources":["jsx/index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./FocusScope\"), module.exports);\n__reExport(index_exports, require(\"./FocusScopeController\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.native.js","names":[],"sources":["jsx/index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./FocusScope\"), module.exports);\n__reExport(index_exports, require(\"./FocusScopeController\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,cAAc,QAAQ,KAAK,kBAAkB,YAAY,QAAQ,KAAK,SAAS,GAAG,gBAAgB,YAAY,cAAc,KAAK,SAAS;AAC9I,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,OAAO,UAAU,aAAa,aAAa;AAC3C,WAAW,eAAe,QAAQ,wBAAc,GAAG,OAAO,OAAO;AACjE,WAAW,eAAe,QAAQ,kCAAwB,GAAG,OAAO,OAAO"}
|
package/dist/jsx/types.native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.native.js","names":[],"sources":["jsx/types.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar types_exports = {};\nmodule.exports = __toCommonJS(types_exports);\n//# sourceMappingURL=types.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.native.js","names":[],"sources":["jsx/types.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar types_exports = {};\nmodule.exports = __toCommonJS(types_exports);\n//# sourceMappingURL=types.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,OAAO,UAAU,aAAa,aAAa"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/focus-scope",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.728.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
"clean:build": "tamagui-build clean:build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@tamagui/compose-refs": "3.0.0-beta.
|
|
38
|
-
"@tamagui/constants": "3.0.0-beta.
|
|
39
|
-
"@tamagui/core": "3.0.0-beta.
|
|
40
|
-
"@tamagui/create-context": "3.0.0-beta.
|
|
41
|
-
"@tamagui/start-transition": "3.0.0-beta.
|
|
42
|
-
"@tamagui/use-async": "3.0.0-beta.
|
|
43
|
-
"@tamagui/use-event": "3.0.0-beta.
|
|
37
|
+
"@tamagui/compose-refs": "3.0.0-beta.728.1",
|
|
38
|
+
"@tamagui/constants": "3.0.0-beta.728.1",
|
|
39
|
+
"@tamagui/core": "3.0.0-beta.728.1",
|
|
40
|
+
"@tamagui/create-context": "3.0.0-beta.728.1",
|
|
41
|
+
"@tamagui/start-transition": "3.0.0-beta.728.1",
|
|
42
|
+
"@tamagui/use-async": "3.0.0-beta.728.1",
|
|
43
|
+
"@tamagui/use-event": "3.0.0-beta.728.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@tamagui/build": "3.0.0-beta.
|
|
47
|
-
"react": "
|
|
46
|
+
"@tamagui/build": "3.0.0-beta.728.1",
|
|
47
|
+
"react": "19.2.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"react": ">=19"
|